Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import quickfix as fix
- import time
- print('Hello.... Starting')
- class Application(fix.Application):
- orderID = 0
- execID = 0
- def onCreate(self, sessionID):
- print('SESSION ID: ',sessionID)
- self.sessionID = sessionID
- return
- def onLogon(self, sessionID):
- #print("Successful Logon to session '{}'.".format(sessionID.toString()))
- print('SessionID: ', sessionID)
- print('Self.SessionID: ', self.sessionID)
- return
- def onLogout(self, sessionID):
- return
- def toAdmin(self,message, sessionID):
- msgType = fix.MsgType().getField()
- message.getHeader().getField(msgType)
- if (msgType == fix.MsgType_Logon):
- print('Logging On')
- username = fix.Username('BANTANDTS')
- mypass = fix.Password('12345678')
- mycompid = fix.TargetSubID('TTDEV17BO')
- message.setField(username)
- message.setField(mypass)
- message.setField(mycompid)
- def fromAdmin(self,message,sessionID):
- TradeID = fix.TradingSessionID
- message.getField(TradeID)
- print("Received the Admin following message: '{}'".format(message))
- print(message.getField(TradeID))
- return
- def toApp(self, message, sessionID):
- return
- def fromApp(self, message, sessionID):
- msgType = message.getHeader().getField(fix.MsgType().getField())
- print("Received the following message: '{}'.".format(sessionID.toString()))
- symbol = fix.Symbol()
- side = fix.Side()
- ordType = fix.OrdType() #2:limit, 4:stop limit 8:cross order, B:limit on close, O LSM, Q:Market Limit Market, R:Market to limit
- #U: best limit, W: limit if touched
- orderQty = fix.OrderQty()
- price = fix.price()
- clOrdID = fix.ClOrdID()
- orderID = fix.OrderID()
- execType = fix.ExecType() #0:new, 1:partialFill, 2:fill, 4:cancel: 5:replace 6:pending cancel: 8:rejected D:restarted
- lastShares = fix.LastShares() #if exectype is 1(partial fill) or 2(fill) this indicates the number of contracts that just filled
- #if MultilegReportingType is 2(leg), the value indicates the number of contracts that just filled on the leg of the spread specified by this mesages instrument component bloack
- multiLegReportingType = fix.MultiLegReportingType() #1: outright, 2: single leg of a multi leg security 3:Entire multileg security (summary fill)
- leavesQty = fix.LeavesQty()
- cumQty = fix.CumQty()
- ordStatus = fix.OrdStatus() # 1Partially Filled, 2: Filled
- tradeDate = fix.TradeDate() #YYYYMMDD
- lastPx = fix.LastPx() #decimal
- AvgPx = fix.LastPx() #decimal
- message.getField( ordType )
- message.getField( symbol )
- message.getfield( side )
- message.getField( orderQty )
- message.getField( price )
- message.getField( clOrdID )
- message.getField( orderQty )
- message.getField( price )
- message.getField( orderID )
- message.getField( execType )
- message.getField( lastShares )
- message.getField( multiLegReportingType )
- message.getField( leavesQty )
- message.getField( cumQty )
- message.getField( ordStatus )
- message.getField( tradeDate )
- message.getField( lastPx )
- message.getField( AvgPx )
- def run(self):
- self.onCreate(self.sessionID)
- self.onLogon(self.sessionID)
- self.toAdmin(self.sessionID)
- self.fromAdmin(self.sessionID)
- self.fromApp(self.sessionID)
- def main(config_file):
- try:
- settings = fix.SessionSettings( config_file )
- print('settings: ',settings)
- application = Application()
- print('application: ',application)
- storeFactory = fix.FileStoreFactory(settings)
- print('storeFactory: ',storeFactory)
- logFactory = fix.FileLogFactory(settings)
- print('logFactory: ',logFactory)
- initiator = fix.SocketInitiator(application, storeFactory, settings, logFactory)
- print('settings: ', initiator)
- initiator.start()
- # while condition == true: do something
- #acceptor.stop()
- application.run()
- except fix.ConfigError as e:
- print(e)
- if __name__=='__main__':
- file = "C:\FIX\client.cfg"
- main(file)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement