示例#1
0
def test_livetrade():
    props = {'symbol': 'rb1801.SHF', 'strategy_no': 46}
    tapi = RealTimeTradeApi(trade_config)
    ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)

    ds = RemoteDataService()
    strat = DoubleMaStrategy()
    pm = PortfolioManager()

    context = model.Context(data_api=ds,
                            trade_api=tapi,
                            instance=ins,
                            strategy=strat,
                            pm=pm)

    ins.init_from_config(props)
    ds.subscribe(props['symbol'])

    ins.run()
    time.sleep(3)
    ins.stop()
    ins.save_results(result_dir_path)
    do_analyze()
示例#2
0
def run_strategy():
    '''
    universe可以自己定义吗,就是从我筛选的一组股票里面挑选
    把universe改成symbol,然后值设置成一系列代码的字符串,用逗号隔开
    :return:
    '''
    if is_backtest:
        """
        回测模式
        """
        props = {
            "symbol": '600519.SH',
            # "symbol": '002050.SZ',
            # "benchmark": '002050.SZ',
            "benchmark": '000300.SH',
            "start_date": 20170101,
            "end_date": 20171219,
            "fast_ma_length": 3,
            "slow_ma_length": 8,
            "live_ma_length": 34,
            "bar_type": "1d",  # '1d'
            "init_balance": 50000}

        tapi = BacktestTradeApi()
        ins = EventBacktestInstance()

    else:
        """
        实盘/仿真模式
        """
        props = {'symbol': '600519.SH',
                 "fast_ma_length": 3,
                 "slow_ma_length": 5,
                 "live_ma_length": 34,
                 'strategy.no': 1062}
        tapi = RealTimeTradeApi(trade_config)
        ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)

    ds = RemoteDataService()
    strat = TripleMaStrategy()
    pm = PortfolioManager()

    context = model.Context(data_api=ds, trade_api=tapi, instance=ins,
                            strategy=strat, pm=pm)

    ins.init_from_config(props)
    if not is_backtest:
        ds.subscribe(props['symbol'])

    ins.run()
    if not is_backtest:
        time.sleep(9999)
    ins.save_results(folder_path=result_dir_path)
示例#3
0
def run_strategy():
    if is_backtest:
        """
        回测模式
        """
        props = {
            "symbol": '600519.SH',
            "start_date": 20170101,
            "end_date": 20171104,
            "fast_ma_length": 5,
            "slow_ma_length": 15,
            "bar_type": "1d",  # '1d'
            "init_balance": 50000
        }

        tapi = BacktestTradeApi()
        ins = EventBacktestInstance()

    else:
        """
        实盘/仿真模式
        """
        props = {
            'symbol': '600519.SH',
            "fast_ma_length": 5,
            "slow_ma_length": 15,
            'strategy.no': 1062
        }
        tapi = RealTimeTradeApi(trade_config)
        ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)

    ds = RemoteDataService()
    strat = DoubleMaStrategy()
    pm = PortfolioManager()

    context = model.Context(data_api=ds,
                            trade_api=tapi,
                            instance=ins,
                            strategy=strat,
                            pm=pm)

    ins.init_from_config(props)
    if not is_backtest:
        ds.subscribe(props['symbol'])

    ins.run()
    if not is_backtest:
        time.sleep(9999)
    ins.save_results(folder_path=result_dir_path)
示例#4
0
def run_strategy():
    if is_backtest:
        """
        回测模式
        """
        props = {"symbol": '600519.SH',
                 "start_date": 20170101,
                 "end_date": 20171104,
                 "fast_ma_length": 5,
                 "slow_ma_length": 15,
                 "bar_type": "1d",  # '1d'
                 "init_balance": 50000}

        tapi = BacktestTradeApi()
        ins = EventBacktestInstance()
        
    else:
        """
        实盘/仿真模式
        """
        props = {'symbol': '600519.SH',
                 "fast_ma_length": 5,
                 "slow_ma_length": 15,
                 'strategy.no': 1062}
        tapi = RealTimeTradeApi(trade_config)
        ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)
    
    ds = RemoteDataService()
    strat = DoubleMaStrategy()
    pm = PortfolioManager()
    
    context = model.Context(data_api=ds, trade_api=tapi, instance=ins,
                            strategy=strat, pm=pm)
    
    ins.init_from_config(props)
    if not is_backtest:
        ds.subscribe(props['symbol'])

    ins.run()
    if not is_backtest:
        time.sleep(9999)
    ins.save_results(folder_path=result_dir_path)
示例#5
0
def run_strategy():
    if is_backtest:
        props = {
            "symbol": "rb1710.SHF",
            "start_date": 20170510,
            "end_date": 20170930,
            "bar_type": "1M",  # '1d'
            "init_balance": 2e4
        }

        tapi = BacktestTradeApi()
        ins = EventBacktestInstance()

    else:
        props = {'symbol': 'rb1801.SHF', 'strategy.no': 46}
        tapi = RealTimeTradeApi(trade_config)
        ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)

    ds = RemoteDataService()
    strat = DoubleMaStrategy()
    pm = PortfolioManager()

    context = model.Context(data_api=ds,
                            trade_api=tapi,
                            instance=ins,
                            strategy=strat,
                            pm=pm)

    ins.init_from_config(props)
    if not is_backtest:
        ds.subscribe(props['symbol'])

    ins.run()
    if not is_backtest:
        time.sleep(9999)
    ins.save_results(folder_path=result_dir_path)
def test_livetrade():
    props = {'symbol': 'rb1801.SHF',
             'strategy_no': 1044}
    tapi = RealTimeTradeApi(trade_config)
    ins = EventLiveTradeInstance()
    
    props.update(data_config)
    props.update(trade_config)
    
    ds = RemoteDataService()
    strat = DoubleMaStrategy()
    pm = PortfolioManager()
    
    context = model.Context(data_api=ds, trade_api=tapi, instance=ins,
                            strategy=strat, pm=pm)
    
    ins.init_from_config(props)
    ds.subscribe(props['symbol'])
    
    ins.run()
    time.sleep(3)
    ins.stop()
    ins.save_results(result_dir_path)
    do_analyze()
示例#7
0
def run_strategy():
    if is_backtest:
        """
        回测模式
        """

        ds = RemoteDataService()
        ds.init_from_config(data_config)
        symbol_list = ds.query_index_member(index, start_date, end_date)
        # symbol_list = ['600887.SH']
        # symbol_list = sample(symbol_list, 20)
        print(symbol_list)

        # add the benchmark index to the last position of symbol_list
        symbol_list.append(index)
        props = {"symbol": ','.join(symbol_list),
                 "holding_Count": 15,
                 "start_date": start_date,
                 "end_date": end_date,
                 "bar_type": "1d",  # '1d'
                 "init_balance": 300000,
                 "commission_rate": 2E-4}

        tapi = BacktestTradeApi()
        ins = EventBacktestInstance()

    else:
        """
        实盘/仿真模式
        """
        props = {'symbol': '600519.SH',
                 "fast_ma_length": 5,
                 "slow_ma_length": 15,
                 'strategy.no': 1062}
        tapi = RealTimeTradeApi(trade_config)
        ins = EventLiveTradeInstance()

    props.update(data_config)
    props.update(trade_config)

    ds = RemoteDataService()
    strat = RNNStrategy()
    pm = PortfolioManager()

    context = model.Context(data_api=ds, trade_api=tapi, instance=ins,
                            strategy=strat, pm=pm)

    ins.init_from_config(props)
    if not is_backtest:
        ds.subscribe(props['symbol'])

    ins.run()
    if not is_backtest:
        time.sleep(9999)
    ins.save_results(folder_path=result_dir_path)

    ta = ana.EventAnalyzer()

    ds = RemoteDataService()
    ds.init_from_config(data_config)

    ta.initialize(data_server_=ds, file_folder=result_dir_path)
    df_bench, _ = ds.daily(index, start_date=start_date, end_date=end_date)
    ta.data_benchmark = df_bench.set_index('trade_date').loc[:, ['close']]

    temp = pd.read_csv(result_dir_path + '/trades.csv')
    symbols = set(temp['symbol'].unique())
    print(symbols)

    ta.do_analyze(result_dir=result_dir_path, selected_sec=list(symbols))