jte*_*erm 10 quickfix fix-protocol
我是FIX协议的新手,希望有人可以帮助澄清一些条款.
特别是可能有人解释(也许用一个例子)的流动NewOrderSingle,ExecutionReport,CancelReplaceRequest以及如何领域ClOrdID,OrdID,OrigClOrdID在这些消息中使用?
rob*_*olf 17
关于字段用法的快速说明.我的经验是,许多实施FIX的人做的略有不同.所以请注意,虽然我试图解释正确的用法,但您可能会发现实现之间存在差异.当我连接到新的代理时,我得到了一个FIX规范,详细说明了它们如何使用协议.我必须非常小心,以确保他们偏离其他实现.
那说我会告诉你你所要求的内容.
有更复杂的订单,但NewOrderSingle是最常用的订单.它允许您为任何资产创建交易.您需要使用此对象/ msg类型创建新订单.然后,您将使用sendToTarget()方法通过会话发送它.您可以通过toApp()方法在此之后修改消息,假设您的应用程序实现了quickfix.Application接口.
经纪人(或与您有关的任何人)将以执行报告的形式向您发送回复.使用quickfix,回复将通过fromApp()回调进入您的应用程序.从那里,最好的办法是使用MessageCracker中的crack方法实现从MessageCracker类继承的应用程序(或在其他地方实现),然后它将回调相关的onMessage()方法调用.您将需要实现许多这些onMessage()方法(具体取决于您所需要的方法),主要是onMessage(ExecutionReport消息,SessionID会话).当您收到来自经纪人的执行报告时,消息破解者将调用此方法.这是对新订单的标准回复.
从那里你根据需要处理答复.
有些订单不会像限价订单那样立即被填补.他们可以改变.为此,您将需要CancelReplaceRequest.您的经纪人将为您提供有关如何专门为他们执行此操作的详细信息(同样存在差异,并非每个人都这样做).您必须先完成NewOrderSingle,然后使用此MsgType进行更新.
ClOrdID是客户端用于标识订单的ID.它与NewOrderSingle一起发送并在ExecutionReport中返回.OrdID标记位于ExecutionReport消息中,它是代理用于标识订单的ID.OrgClOrdID通常用于标识原始订单,当您执行和更新时(使用CancelReplaceRequest),它应该包含原始订单的ClOrdID.一些经纪人只想要原始订单,其他经纪人想要最后一次更新的ClOrdID,所以第一个OrigClOrdID或将是NewOrderSingle的ClOrdID,然后如果有相同订单的后续更新,那么它们将是最后一个CancelReplaceRequest的ClOrderID .一些经纪人想要最后的OrderID而不是ClOrderID.请注意,CancelReplaceRequest也需要ClOrdID.
| 归档时间: |
|
| 查看次数: |
3009 次 |
| 最近记录: |