in fix_session.py [0:0]
def get_fix_message(self):
request = fix.Message()
request.getHeader().setField(fix.BeginString(fix.BeginString_FIX44))
request.getHeader().setField(fix.MsgType(fix.MsgType_NewOrderSingle))
assert self.id
request.setField(fix.ClOrdID(self.id))
assert self.symbol
request.setField(fix.Symbol(self.symbol))
assert self.side
request.setField(fix.Side(self.side))
assert self.quantity
request.setField(fix.OrderQty(self.quantity))
if self.price is not None:
request.setField(fix.Price(self.price))
elif self.order_type == fix.OrdType_LIMIT:
raise Exception("Must specify price for LIMIT order")
assert self.order_type
request.setField(fix.OrdType(self.order_type))
assert self.time_in_force
request.setField(fix.TimeInForce(self.time_in_force))
if self.account:
request.setField(fix.Account(self.account))
if self.destination is not None:
request.setField(fix.ExecBroker(self.destination))
if self.exchange is not None:
request.setField(fix.ExDestination(self.exchange))
request.setField(fix.TransactTime())
for key in self.custom_fields:
request.setField(key, self.custom_fields[key])
request.setField(fix.SenderCompID("TRADER"))
return request