我正在使用 FIX 协议和 QuickFix/J API 构建一个用于与远程服务器进行交易的客户端。
我可以发送订单、接收价格更新、取消订单等...
我现在被要求“查询 API 以获取仪器的当前位置”。
所以假设我可以提交一个购买工具的订单,但它没有被执行,我想从服务器接收一些信息,比如“你在数量 Y 的工具 X 上做多”。
是否可以使用 QuickFix/J API?
我写了一个这样的方法
static void positionReport() throws SessionNotFound{
quickfix.fix50.PositionReport order = new quickfix.fix50.PositionReport();
SessionID sessionId = (SessionID) initiator.getSessions().get(0);
order.set(new Account("1005390"));
order.set(new SecurityID("4663789"));
order.set(new SecurityExchange("XETR"));
order.set(new Symbol("SAP"));
Session.sendToTarget(order, sessionId);
}
它发送这样的 FIX 消息
8=FIX.4.29=9835=AP34=4949=HIQ6_ORDER52=20140324-
15:54:10.14256=HIQFIX1=100539048=466378955=SAP207=XETR10=199
并收到这样的消息:
8=FIX.4.29=9935=334=6949=HIQFIX52=20140324-15:54:10.89156=HIQ6_ORDER45=4958=无效的 MsgType372=AP373=1110=242
如您所见,我收到“无效消息”错误