簡體   English   中英

使用Java中的QuickFix / J查詢遠程服務器以獲取儀器的位置

[英]Query a remote server using QuickFix/J in Java to get position of an instrument

我正在建立一個客戶端,用於使用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

如您所見,我收到“無效消息”錯誤

檢查交易對手的文檔。

FIX是一個相當“愚蠢”的協議。 它只是提供了通信基礎設施。 最好將默認消息定義視為可以使用的建議消息的列表。 即使兩個交易對手支持一種消息類型,兩個交易對手中的每一個也可能以完全不同的方式使用它。

大多數連接提供程序僅使用這些消息的子集。 您應該檢查他們的文檔,以查看他們是否支持PositionRequest消息,並查看他們希望您如何設置其中的字段。

不,您不能使用Quickfix來做到這一點,除非並且直到交易對手被建模為可以根據您的喜好向您提供FIX確認。 因此,您可以將自定義的FIX字段添加到FIX XML配置文件中。

373 tag says 11  -> 11 = Invalid MsgType
58 confirms it for you again.

檢查您的FIX XML配置,並檢查您的消息是否完整以及對方是否允許使用AP類型的消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM