Ejemplo n.º 1
0
def main():
    global me

    ee = EventEngine()
    me = MainEngine(ee)
    ee.register(EVENT_TICK, on_tick_update)

    me.addGateway(ctpGateway)
    me.getGateway('CTP').filePath = os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        'CTP_connect.simnow.mock.json')
    me.connect('CTP')

    # 等待 1 秒是为了避免订阅时机 bug
    import time
    time.sleep(1)

    # vt_symbols = ['SR901C5300.CZCE', 'SR901C5200.CZCE']
    vt_symbols = ['ru1908.SHFE', 'rb1908.SHFE']
    symbols, exchanges = zip(
        *[vs.split('.') if '.' in vs else (vs, '') for vs in vt_symbols])
    for s, e in zip(symbols, exchanges):
        req = VtSubscribeReq()
        req.symbol, req.exchange = s, e
        me.subscribe(req, 'CTP')
    print('Futures subscribed.')
Ejemplo n.º 2
0
def main():
    global me

    ee = EventEngine()
    me = MainEngine(ee)
    ee.register(EVENT_CONTRACT, on_contract)

    me.addGateway(ctpGateway)
    me.getGateway('CTP').filePath = os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        'CTP_connect.simnow.mock.json')
    me.connect('CTP')
Ejemplo n.º 3
0
def run_strategy():
    le = LogEngine()
    le.setLogLevel(le.LEVEL_INFO)
    ee = EventEngine2()
    me = MainEngine(ee)
    me.addGateway(gateway)
    me.addApp(ctaStrategy)
    # ee.register(EVENT_LOG, le.processLogEvent)
    # ee.register(EVENT_CTA_LOG, le.processLogEvent)
    me.connect(gateway.gatewayName)
    gw = me.getGateway(gateway.gatewayName)

    cta = me.getApp(ctaStrategy.appName)
    cta.settingfilePath = "CTA_setting.json"

    cta.loadSetting()
    cta.initAll()
    cta.startAll()
Ejemplo n.º 4
0
def main():
    """主程序入口"""
    # 创建Qt应用对象
    #qApp = createQApp()

    # 创建事件引擎
    ee = EventEngine()

    # 创建主引擎
    me = MainEngine(ee)

    # 添加交易接口
    me.addGateway(okexGateway)

    # 添加上层应用
    #   me.addApp(riskManager)
    #   me.addApp(ctaStrategy)
    #   me.addApp(spreadTrading)

    # 创建主窗口
    #mw = MainWindow(me, ee)
    #mw.showMaximized()
    #Yifei
    #exchange = {
    #    'exchange': 'bittrex',
    #    'keyFile': '../keys/bittrex.key',
    #    'tickerPairA': 'BTC-ETH',
    #    'tickerPairB': 'ETH-LTC',
    #    'tickerPairC': 'BTC-LTC',
    #    'tickerA': 'BTC',
    #    'tickerB': 'ETH',
    #    'tickerC': 'LTC'
    #}

    try:

        if 0:
            exchange = {
                'tickerPairA': 'ltc_eth',
                'tickerPairB': 'eth_btc',
                'tickerPairC': 'ltc_btc',
                'tickerA': 'ltc',
                'tickerB': 'eth',
                'tickerC': 'btc'
            }

            engine = CryptoEngineTriArbitrage(me, exchange, connected_sig,
                                              True)

            me.getGateway('OKEX').set_event(connected_sig)

            t = threading.Thread(target=engine.run)
            t.start()

            exchange = {
                'tickerPairA': 'gnx_eth',
                'tickerPairB': 'eth_btc',
                'tickerPairC': 'gnx_btc',
                'tickerA': 'gnx',
                'tickerB': 'eth',
                'tickerC': 'btc'
            }

            engine = CryptoEngineTriArbitrage(me, exchange, connected_sig,
                                              True)

            me.getGateway('OKEX').set_event(connected_sig)

            t = threading.Thread(target=engine.run)
            t.start()

            exchange = {
                'tickerPairA': 'eos_eth',
                'tickerPairB': 'eth_btc',
                'tickerPairC': 'eos_btc',
                'tickerA': 'eos',
                'tickerB': 'eth',
                'tickerC': 'btc'
            }

            engine = CryptoEngineTriArbitrage(me, exchange, connected_sig,
                                              True)

            me.getGateway('OKEX').set_event(connected_sig)

            t = threading.Thread(target=engine.run)
            t.start()

            exchange = {
                'tickerPairA': 'hpb_eth',
                'tickerPairB': 'eth_btc',
                'tickerPairC': 'hpb_btc',
                'tickerA': 'hpb',
                'tickerB': 'eth',
                'tickerC': 'btc'
            }

            engine = CryptoEngineTriArbitrage(me, exchange, connected_sig,
                                              False)
            me.getGateway('OKEX').set_event(connected_sig)

            t = threading.Thread(target=engine.run)
            t.start()

        me.getGateway('OKEX').connect()
        #logger.info('Okex Market Maker Version: 1.0')
        while not me.getGateway('OKEX').connected:
            time.sleep(8)
        #grid trading

        om = OrderManager(me, ee)
        t = threading.Thread(target=om.run_loop)
        t.start()

    except Exception, e:

        print e