python quickfix(FIX 4.2)を使用して基本的なFIXリクエストを実装しようとしていますが、ドキュメントがまばらで、完全に理解できません(そして、かなりの調査を行っています。質問の終わり-ですから、掘り下げずに質問ではないことをご安心ください)
8=FIX.4.2 | 9=108 | 35=A | 34=1 | 49=ACCOUNTXXX | 52=20161116-00:00:15.281 | 56=CNX | 553=ACCOUNTXXXSTR1 | 554=Stater123 | 98=0 | 108=60 | 141=Y | 10=133 |
8=FIX.4.2 | 9=77 | 35=A | 49=CNX | 34=1 | 52=20161116-00:00:17.928 | 56= ACCOUNTXXXSTR1 | 98=0 | 108=60 | 141=Y | 10=140 |
8=FIX.4.2 | 9=142 | 35=V | 34=8 | 49=ACCOUNTXXX | 52=20161116-12:19:48.269 | 56=CNX | 146=1 | 55=EUR/USD | 262=2016110213351833862 | 263=2 | 264=1 | 265=1 | 266=Y | 267=2 | 269=0 | 269=1 | 10=110 |
8=FIX.4.2 | 9=227 | 35=X | 49=CNX | 34=241 | 52=20161116-12:20:03.651 | 56=ACCOUNTXXX | 262=2016110213351834170 | 268=2 | 279=0 | 269=0 | 278=141 | 55=EUR/USD | 270=1.76371 | 15=GBP | 271=1000000 | 346=1 | 279=0 | 269=1 | 278=142 | 55=EUR/USD | 270=1.76406 | 15=GBP | 271=1000000 | 346=1 | 10=223 |
8=FIX.4.2 | 9=59 | 35=0 | 34=3 | 49=ACCOUNTXXX | 52=20161116-00:01:15.868 | 56=CNX | 10=054 |
Pythonコードを設定してA、B、Cを送信し、ソケット/ストリームを開いてSTREAMのデータを読み取り、ログに記録する方法について、少しアドバイスと基本的なコード構造が必要でした。コンソールにそれ
もうどこを見たの?
https://github.com/quickfix/quickfix/blob/master/examples/executor/python/executor.py
https://futures.io/matlab-r-project-python/35213-python-quickfix.html
https://github.com/tianyilai/QuickFix-python-client/tree/master/spec
ただし、ドキュメントと例はまばらであり、Thanksを介して自分の道を見つけるのに苦労しています
A-initiator.start()
を呼び出すと、QuickFixによってログイン要求が自動的に送信されます。これに必要なドキュメントの重要な部分は ここ 、PYTHON翻訳例:
import quickfix
if len(sys.argv) < 2: return # FAIL to have a mandatory number of args
fileName = sys.argv[1] # .SET fileName ( a configuration file )
try:
settings = quickfix.SessionSettings( fileName )
application = quickfix.MyApplication()
storeFactory = quickfix.FileStoreFactory( settings )
logFactory = quickfix.FileLogFactory( settings )
acceptor = quickfix.SocketAcceptor( application, storeFactory, settings, logFactory )
# .SocketInitiator( ... ) # Ref. below
acceptor.start() #-------------------------------
# while condition == true: do something
#
# pass; # onEoLife:
acceptor.stop() #--------------------------------
except quickfix.ConfigError, e:
print e
(引用:) ...上記のサンプルコードは、ソケットでリッスンするFIXプロトコル
acceptor
を起動する方法を示しています。 .。
イニシエーター(自分の側からセッションをセットアップする)が必要な場合は、このコードフラグメントのacceptor
をSocketInitiator
に置き換えます。 。
行settings = quickfix.SessionSettings(fileName)
は構成ファイルをロードし、そこから多くのキーフィールドが取得されます。 Seeconfig file docs。
B-ライブデータを要求するには、相手に35 = Vメッセージを送信する必要があります。これを行うには、いくつかの変数を持つMarketDataRequest
メッセージを定義し、そのメッセージを相手に送信します。 Seehere 。ただし、ここではドキュメントが間違っていると思います。メッセージを送信するには、fix.Session_sendToTarget(message)
を呼び出す必要があります。
C-これについて心配する必要はありません。QuickFixはハートビートを処理し、切断後などに自動的にログオンします。設定ファイルfileName
でハートビート間隔(例:60秒)を設定します。 Seeconfig file docs。