def test_validate(self):
        sessionID = fix.SessionID("FIX.4.2", "SenderCompID", "TargetCompID")

        dictionary = fix.Dictionary()
        try:
            self.object.set(sessionID, dictionary)
            self.assertTrue(0)
        except fix.ConfigError as e:
            self.assertTrue(1)

        dictionary.setString(fix.CONNECTION_TYPE, "badvalue")
        try:
            self.object.set(sessionID, dictionary)
            self.assertTrue(0)
        except fix.ConfigError as e:
            self.assertTrue(1)

        dictionary.setString(fix.CONNECTION_TYPE, "initiator")
        try:
            self.object.set(sessionID, dictionary)
            self.assertTrue(1)
        except fix.ConfigError as e:
            self.assertTrue(0)

        sessionID = fix.SessionID("FIX4.2", "SenderCompID", "TargetCompID")
        try:
            self.object.set(sessionID, dictionary)
            self.assertTrue(0)
        except fix.ConfigError as e:
            self.assertTrue(1)
 def test_get_sessions(self):
     dictionary = fix.Dictionary()
     dictionary.setString(fix.BEGINSTRING, "FIX.4.4")
     dictionary.setString(fix.START_TIME, "00:00:00")
     dictionary.setString(fix.END_TIME, "00:00:00")
     dictionary.setString(fix.CONNECTION_TYPE, "initiator")
     self.object.set(dictionary)
     sessionids = [fix.SessionID('FIX.4.4', 'SenderA', 'TargetA'), fix.SessionID('FIX.4.4', 'SenderB', 'TargetB')]
     for sessionid in sessionids:
         self.object.set(sessionid, self.object.get())
     sessionids = [str(s) for s in sessionids]
     for sessionid in self.object.getSessions():
         self.assertIn(str(sessionid), sessionids)
    def test_validate(self):
        sessionID = fix.SessionID("FIX.4.2", "SenderCompID", "TargetCompID")

        dictionary = fix.Dictionary()
        try:
            self.object.set(sessionID, dictionary)
            self.failUnless(0)
        except fix.ConfigError, e:
            self.failUnless(1)
def main():
    sessionID = fix.SessionID('FIX.4.4', SENDERCOMPID, 'PAYMIUM')

    params = fix.Dictionary()
    params.setString('ConnectionType', 'initiator')
    params.setString('StartTime', '00:00:00')
    params.setString('EndTime', '00:00:00')
    params.setString('HeartBtInt', '30')
    params.setString('CheckLatency', 'Y')
    params.setString('SocketConnectHost', '195.154.171.115')
    params.setString('SocketConnectPort', '8359')
    params.setString('DataDictionary', FIX44FILE)
    params.setString('EncryptMethod', '0')

    settings = fix.SessionSettings()
    settings.set(sessionID, params)

    application = MyApplication()
    factory = fix.FileStoreFactory("store")
    acceptor = fix.SocketInitiator(application, factory, settings,
                                   fix.ScreenLogFactory(DEBUG, DEBUG, DEBUG))
    acceptor.start()

    time.sleep(2)

    mdr = fixMsg.MarketDataRequest()
    mdr.setField(fix.MDReqID("MDRQ-%d" % (time.time() * 1000000)))
    # We want the full book here, not just the top
    mdr.setField(fix.MarketDepth(1))
    # We want to get a snapshot and also subscribe to the market depth updates
    mdr.setField(
        fix.SubscriptionRequestType(
            fix.SubscriptionRequestType_SNAPSHOT_PLUS_UPDATES))
    # We'll want only incremental refreshes when new data is available
    mdr.setField(fix.MDUpdateType(fix.MDUpdateType_INCREMENTAL_REFRESH))
    # Specify the currency
    instruments = fixMsg.MarketDataRequest().NoRelatedSym()
    instruments.setField(fix.Symbol("EUR/XBT"))
    mdr.addGroup(instruments)
    # Specify that we'll want the bids and asks
    mdr.setField(fix.NoMDEntryTypes(2))
    group = fixMsg.MarketDataRequest().NoMDEntryTypes()
    group.setField(fix.MDEntryType(fix.MDEntryType_BID))
    group.setField(fix.MDEntryType(fix.MDEntryType_OFFER))
    mdr.addGroup(group)

    fix.Session.sendToTarget(mdr, sessionID)

    while True:
        time.sleep(10)

    acceptor.stop()
Esempio n. 5
0
    def __init__(self, cf, cf_path):
        self._cf = cf
        self._cf_path = cf_path

        fix_cf = ConfigParser.ConfigParser()
        fix_cf.read(os.path.join(os.getcwd(), baseconfdir, cf.get("main", "fix_cfg_file")))
        self._session = fix.SessionID(fix_cf.get("SESSION", "BeginString"),
                                      fix_cf.get("SESSION", "SenderCompID"),
                                      fix_cf.get("SESSION", "TargetCompID"))

        self._order_section = 'order'
        self._market_section = 'market'
        self._contract_query_section = 'contractQry'
Esempio n. 6
0
    def start(self):
        """"""
        self.register_event()

        # For child app
        child_settings = fix.SessionSettings()
        child_dict = fix.Dictionary()

        child_dict.setString("ConnectionType", "acceptor")
        child_dict.setString("ResetOnLogon", "Y")
        child_dict.setString("FileLogPath", "./genus_log/child")
        child_dict.setString("LogonTimeout", "30")
        child_dict.setString("StartTime", "00:00:00")
        child_dict.setString("EndTime", "00:00:00")
        child_dict.setString("HeartBtInt", "30")
        child_dict.setString("CheckLatency", "N")
        child_dict.setString("UseDataDictionary", "N")
        child_dict.setString("FileStorePath", "./genus_store/child")
        child_dict.setString("ScreenLogShowIncoming", "N")
        child_dict.setString("ScreenLogShowOutgoing", "N")
        child_dict.setString("ScreenLogShowEvents", "N")

        child_dict.setString("SocketAcceptHost", SETTINGS["genus.child_host"])
        child_dict.setString("SocketAcceptPort", SETTINGS["genus.child_port"])

        child_session = fix.SessionID("FIX.4.2",
                                      SETTINGS["genus.child_sender"],
                                      SETTINGS["genus.child_target"])
        child_settings.set(child_session, child_dict)

        child_store_factory = fix.FileStoreFactory(child_settings)
        child_log_factory = fix.ScreenLogFactory(child_settings)

        self.child_app: GenusChildApp = GenusChildApp(self)
        self.child_socket = fix.SocketAcceptor(self.child_app,
                                               child_store_factory,
                                               child_settings,
                                               child_log_factory)
        self.child_socket.start()

        # For parent app
        parent_settings = fix.SessionSettings()
        parent_dict = fix.Dictionary()

        parent_dict.setString("ConnectionType", "initiator")
        parent_dict.setString("ResetOnLogon", "Y")
        parent_dict.setString("FileLogPath", "./genus_log/parent")
        parent_dict.setString("LogonTimeout", "30")
        parent_dict.setString("StartTime", "00:00:00")
        parent_dict.setString("EndTime", "00:00:00")
        parent_dict.setString("HeartBtInt", "30")
        parent_dict.setString("CheckLatency", "N")
        parent_dict.setString("UseDataDictionary", "N")
        parent_dict.setString("FileStorePath", "./genus_store/parent")
        parent_dict.setString("ScreenLogShowIncoming", "N")
        parent_dict.setString("ScreenLogShowOutgoing", "N")
        parent_dict.setString("ScreenLogShowEvents", "N")

        parent_dict.setString("SocketConnectHost",
                              SETTINGS["genus.parent_host"])
        parent_dict.setString("SocketConnectPort",
                              SETTINGS["genus.parent_port"])

        parent_session = fix.SessionID("FIX.4.2",
                                       SETTINGS["genus.parent_sender"],
                                       SETTINGS["genus.parent_target"])
        parent_settings.set(parent_session, parent_dict)

        parent_store_factory = fix.FileStoreFactory(parent_settings)
        parent_log_factory = fix.ScreenLogFactory(parent_settings)

        self.parent_app: GenusParentApp = GenusParentApp(self)
        self.parent_socket = fix.SocketInitiator(self.parent_app,
                                                 parent_store_factory,
                                                 parent_settings,
                                                 parent_log_factory)
        self.parent_socket.start()
        dictionary = fix.Dictionary()
        try:
            self.object.set(sessionID, dictionary)
            self.failUnless(0)
        except fix.ConfigError, e:
            self.failUnless(1)

        dictionary.setString(fix.CONNECTION_TYPE, "badvalue")
        try:
            self.object.set(sessionID, dictionary)
            self.failUnless(0)
        except fix.ConfigError, e:
            self.failUnless(1)

        dictionary.setString(fix.CONNECTION_TYPE, "initiator")
        try:
            self.object.set(sessionID, dictionary)
            self.failUnless(1)
        except fix.ConfigError, e:
            self.failUnless(0)

        sessionID = fix.SessionID("FIX4.2", "SenderCompID", "TargetCompID")
        try:
            self.object.set(sessionID, dictionary)
            self.failUnless(0)
        except fix.ConfigError, e:
            self.failUnless(1)


if __name__ == '__main__':
    unittest.main()