gpt4 book ai didi

python - Python 中的 FIX 协议(protocol) - 实现流式报价的登录和请求

转载 作者:太空狗 更新时间:2023-10-29 18:07:34 24 4
gpt4 key购买 nike

我正在尝试使用 python quickfix (FIX 4.2) 实现基本的 FIX 请求,但是文档很少,我无法完全理解它(而且我做了很多研究,问题末尾的链接 - 所以请放心,这不是不做任何挖掘的问题)

登录请求---A

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 |

请求以欧元/美元表示的实时/流媒体报价 --- B

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 |

响应将是这样的,我需要通过保持套接字/流打开来处理它 --- STREAM

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 | 

每 60 秒发送心跳 - C

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

但是,文档和示例很少,我正在努力寻找方法谢谢

最佳答案

A -- 当您调用 initiator.start() 时,QuickFix 会自动发送登录请求。为此,您需要的关键文档是 here ,用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

( Cit.: ) ... sample code above shows how you might start up a FIX-protocol acceptor which listens on a socket. ...
If you rather wanted an initiator ( to setup a session from your side ) you would replace the acceptor in this code fragment with a SocketInitiator.

settings = quickfix.SessionSettings(fileName) 行加载配置文件,许多关键字段取自那里。 See config file docs.

B -- 为了请求实时数据,您需要向对方发送一条 35=V 消息。为此,您定义了一个包含一些变量的 MarketDataRequest 消息,并将该消息发送给您的交易对手。 See here .不过请注意,我认为此处的文档有误,要发送消息,您需要调用 fix.Session_sendToTarget(message)

C -- 您无需担心这一点,QuickFix 会自动处理心跳并在断开连接后重新登录等。您在配置文件 fileName 中设置心跳间隔(例如 60 秒)。 See config file docs.

关于python - Python 中的 FIX 协议(protocol) - 实现流式报价的登录和请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com