尝试使用python 3.7在quickfixengine中获取市场数据请求

时间:2020-04-14 09:01:31

标签: python python-3.x quickfix

我是Python 3.7的初学者,并且尝试使用快速修复引擎登录,任何人都请查看下面的代码并指导我如何登录快速修复引擎并执行命令。

我在配置文件中找不到要设置的用户名或密码参数,因此我猜需要使用登录命令登录。

import time
import quickfix as fix
import uuid


class Application(fix.Application):
    def onCreate(self, sessionID):
        self.sessionID = sessionID
        print('--------')
        print('onCreate')
        print(sessionID)
        print(self.sessionID)
        return

    def onLogon(self, sessionID):
        print('onLogon')
        return

    def onMessage(self, sessionID):
        print('onMessage')
        return

    def onLogout(self, sessionID):
        print('onLogout')
        return

    def toAdmin(self, message, sessionID):
        print('--------')
        # print(self.sessionID)
        print('toAdmin', message.toString())
        return

    def toApp(self, message, sessionID):
        print('--------')
        print('toApp', message.toString())
        return

    def fromAdmin(self, message, sessionID):
        print('fromAdmin')
        return

    def fromApp(self, message, sessionID):
        print('fromApp')
        return

    def LogonToServer(self):
        print('--------')
        print('LogonToServer')
        print(self.sessionID)
        message = fix.Message()
        header = message.getHeader()
        header.setField(fix.BeginString("FIX.4.4"))
        header.setField(fix.MsgType("A"))
        header.setField(fix.MsgSeqNum(1))
        header.setField(fix.SenderCompID("SENDER_COM_ID"))
        # header.setField(fix.SendingTime(_SendingTime))
        header.setField(fix.TargetCompID("TARGET_COMP_ID"))
        header.setField(fix.EncryptMethod(0))
        header.setField(fix.HeartBtInt(20))
        header.setField(fix.Username("USERNAME"))
        header.setField(fix.Password("PASSWORD"))

        print('--------')
        print('LogonToServer', message.toString())
        test = fix.Session.sendToTarget(message)
        print('--------')
        print('Response', test)
        return


try:
    file = 'Config/settings_live'
    settings = fix.SessionSettings(file)
    application = Application()
    storeFactory = fix.FileStoreFactory(settings)
    logFactory = fix.FileLogFactory(settings)

    initiator = fix.SocketInitiator(
        application, storeFactory, settings, logFactory)
    initiator.start()

    time.sleep(10)
    while 1:
        application.LogonToServer()
        time.sleep(10)

    initiator.stop()
except (fix.ConfigError, fix.RuntimeError) as e:
    print(e)

0 个答案:

没有答案