2012-11-12 74 views
0

的QuickFix登錄的麻煩:(使用QuickFix,與FIX 4.4在Python 2.7)的QuickFix登錄的麻煩:發送多個速射登錄嘗試

一旦我做initiator.start()建立連接,併發送登錄消息。但是,我從來沒有看到代理髮回的ACK和會話狀態消息(所有重載的應用程序方法都只是打印出他們收到的內容)。

的QuickFix立即重新嘗試(根據代理日誌文件)登錄,同樣的事情發生,但根據服務器,我已經登錄

的QuickFix然後發出退出命令,服務器符合。

我已經嘗試在設置文件中輸入超時值,但無濟於事。 (我是否需要在代碼中明確引用這些值才能使用,或者引擎會自動查看它們並自動採取相應措施?)

任何想法發生了什麼?

+0

檢查您的經紀商是否向您發送任何登錄確認消息?在C++中有從Admin/ toAdmin的方法,在Python中檢查其相關的對手方,並嘗試打印出所有的消息,而不是在任何消息處理程序中。如果可能,請在此處轉儲FIX消息的副本或自行檢查。你可能會得到一個指示什麼可能是錯誤的。 – DumbCoder

+0

謝謝@dumbcoder。我的經紀人能夠看到我的登錄嘗試,並表示他們使用確認和狀態消息進行響應,但我從來沒有看到這些消息(我在所有重載的quickfix函數中顯示消息以顯示傳入消息),並且quickfix似乎不響應它們或者是因爲它立即發送另一個登錄嘗試,然後是註銷消息 – gearhead

+0

您的配置中LogonTimeout的值是什麼。嘗試將其設置爲更高的數字,您不需要在消息中明確使用它們。它由QuickFIX爲您完成。你是否從經紀人收到任何類型的信息?並且是您的HeartBtInt集合,可能不是問題,但嘗試設置它。 – DumbCoder

回答

0

解決!我認爲我的datadictionary(FIX44.xml)文件有問題。之前我曾經看到過一個問題,但是我認爲我已經解決了它。我在網上獲得了一個新的副本,並將其刪除,現在一切似乎都在進行中。也許錯誤的字典不讓FIX接受登錄響應?

1

聽起來像您沒有啓用消息日誌。如果您的應用拒絕低於應用級別的消息(例如seq no錯誤或消息格式錯誤),那麼它會在您的自定義消息處理程序甚至看到它之前被拒絕。

如果您使用ScreenLogStore啓動啓動器,請將其更改爲FileLogStore。這將創建一個日誌文件,其中包含會話中發送和接收的每條消息,是否有效。美元甜甜圈你會看到你的登錄ack在那裏以及一些傳輸層拒絕。