def main(): # update_bundle() config['base']['start_date'] = '2017-09-21' run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config)
def test_api(specific_test=None): # FIXME: Error msg is hard to understand @zjuguxi print(u"Testing API......") from tests.api import test_strategies as test_api_strategies from tests.mod import test_strategies as test_mod_strategies for strategy in test_api_strategies + test_mod_strategies: if specific_test and strategy["name"] != specific_test: continue print("running", strategy["name"]) run_func(**strategy) print(u"API test ends.")
def test_api(specific_test=None): # FIXME: Error msg is hard to understand @zjuguxi print(u"Testing API......") from tests.api import test_strategies as test_api_strategies from tests.mod import test_strategies as test_mod_strategies for strategy in test_api_strategies + test_mod_strategies: if specific_test and strategy["name"] != specific_test: continue print("running", strategy["name"]) run_func(**strategy) print(u"API test ends.")
def temp_run_file(row): temp_context = { 'esp': row.esp, 'code': add_tag(row.code), 'projectName': settings.PROJECT_NAME } config = { "base": { "start_date": "2010-01-01", "end_date": get_today(), "benchmark": "000300.XSHG", "accounts": { "stock": row.code, } }, "extra": { "log_level": "error", "user_system_log_disabled": True, "context_vars": temp_context, }, "mod": { "sys_analyser": { "enabled": False, "plot": False, # "output_file": './one_data/static/' + row.code + '.png', "plot_save_file": './one_data/static/' + row.code + '.png', # "plot_save_file": './static/' + row.code + '.png', } } } print('开始运行策略-------' + row.name) run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config) # run_file(strategy_file_path, config) print('策略运行成功-------' + row.name)
def compute_strategy(self, stock_id): # 您可以指定您要传递的参数 user_func = self.choose_strategy(stock_id, name=self.strategy_name) user_func['config'] = config_utils.parse_config( './config/config_20190909.yml') print('use strategy:{}'.format(stock_id)) print('user_func:{}'.format(user_func)) result = run_func(**user_func) base_path = self.result_path.joinpath(self.strategy_name) if not base_path.exists(): base_path.mkdir(parents=True) result_path = base_path.joinpath(stock_id.split('.')[0] + '.pk') with result_path.open('wb') as f: pickle.dump(result, f) return stock_id
context.pre_trading_signal = context.trading_signal CONFIG = { "base": { "start_date": "20180901", "end_date": "20200901", "frequency": "1d", "accounts": { "STOCK": 1000000 } }, "extra": { "log_level": "verbose" }, "mod": { "sys_analyser": { "enabled": True, # "report_save_path": ".", "plot": True, "enabled": True, "benchmark": "000300.XSHG" # "matching_type": "last" }, } } if __name__ == "__main__": from rqalpha import run_func run_func(init=init, handle_bar=handle_bar, config=CONFIG)
logger.info("用户程序执行完成") for book_id, data in context.all_close_price.items(): np.save("close_price/%s" % book_id, np.array(data)) config = { "base": { "start_date": "2004-06-01", "end_date": "2017-02-01", "accounts": { "stock": 100000 } }, "extra": { "log_level": "verbose", }, "mod": { "sys_analyser": { "enabled": True, "plot": True } } } # 您可以指定您要传递的参数 run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, end=end, config=config)
context.bar_list.append(price_scaled[0]) # if not enough bar if len(context.bar_list) < context.algorithm.seq_length * 2 + 2: return # frm = len(context.bar_list)-context.algorithm.seq_length x1 = context.bar_list[-context.algorithm.seq_length*2:-context.algorithm.seq_length] x2 = context.bar_list[-context.algorithm.seq_length:] x = [x1, x2] c, a, _ = context.algorithm.predict(x) res = np.append(_, [0, 0, 0, 0]) predict = scale.inverse_transform([res]) predict = scale.inverse_transform([res]) print('predict', predict) pass # after_trading函数会在每天交易结束后被调用,当天只会被调用一次 def after_trading(context): pass rqalpha.run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, after_trading=after_trading, config=config)
order_percent(context.s1, 1) else: print("skip order, no money") context.last = hist[-1] # def after_trading(context): # print ("done") config = { "base": { "start_date": "2016-08-01", "end_date": "2017-07-14", "benchmark": "000300.XSHG", "accounts": { "stock": 1000000 } }, "extra": { "log_level": "verbose", }, "mod": { "sys_analyser": { "enabled": True, "plot": True } } } run_func(init=init, handle_bar=handle_bar, config=config)
def handle_bar(context, bar_dict): pass def after_trading(context): pass if __name__ == '__main__': args = future_spider_parser.parse_args() config = { "base": { "start_date": "2018-01-01", "end_date": "2018-01-02", "benchmark": "AU88", "accounts": { "future": 100000 } }, "extra": { "log_level": "warning", }, "args": args, } rqalpha.run_func(**globals())
if not context.fired: # order_percent并且传入1代表买入该股票并且使其占有投资组合的100% order_percent(context.s1, 1) context.fired = True config = { "base": { "start_date": "2016-06-01", "end_date": "2016-12-01", "securities": ['stock'], "stock_starting_cash": 100000, "benchmark": "000300.XSHG" }, "extra": { "log_level": "verbose", }, "mod": { "sys_analyser": { "enabled": True, "plot": True } } } # 您可以指定您要传递的参数 run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config) # 如果你的函数命名是按照 API 规范来,则可以直接按照以下方式来运行 # run_func(**globals())
before_yesterday = "2018-08-07" yesterday = "2018-08-08" config_next_day = { "stock_id": "600519.XSHG", "predicted_one": predicted_one, "base": { "start_date": yesterday, "end_date": today, "accounts": { "stock": 100000 } }, "extra": { "log_level": "verbose", }, "mod": { "sys_analyser": { "enabled": True, "plot": False } } } # 您可以指定您要传递的参数 if __name__ == "__main__": run_func(init=init_next_day, before_trading=before_trading_next_day, handle_bar=handle_bar_next_day, config=config_next_day)
def compute_strategy(self, stock_id): # 您可以指定您要传递的参数 user_func = self.choose_strategy(stock_id, name='golden_cross') print('use strategy:{}'.format(stock_id)) run_func(**user_func) return stock_id
if (context.trading_signal != context.pre_trading_signal or (context.units_hold < context.units_hold_max and context.units_hold > 1) or context.trading_signal == 'stop'): if context.trading_signal == 'entry': context.quantity = context.unit if available_cash > bar_dict[context.s].last*context.quantity: order_shares(context.s, context.quantity) context.first_open_price = bar_dict[context.s].last context.units_hold = 1 if context.trading_signal == 'entry_add': context.quantity = context.unit order_shares(context.s, context.quantity) context.units_hold += 1 if context.trading_signal == 'stop': if context.units_hold > 0: order_shares(context.s, -context.quantity) context.units_hold -= 1 if context.trading_signal == 'exit': if cur_position > 0: order_shares(context.s, -cur_position) context.units_hold = 0 context.pre_trading_signal = context.trading_signal # 您可以指定您要传递的参数 run_func(init=init, handle_bar=handle_bar, config=tonghuashun_AGUSDO_config.config)
CONFIG = { "base": { "start_date": "20180901", "end_date": "20200901", "frequency": "1d", # "benchmark": "000300.XSHG", "accounts": { "STOCK": 10e8 } }, "extra": { "log_level": "verbose" }, "mod": { "sys_analyser": { "enabled": True, # "report_save_path": ".", "plot": True, "enabled": True, "benchmark": "000300.XSHG" # "matching_type": "last" }, } } if __name__ == "__main__": from rqalpha import run_func run_func(init=init, config=CONFIG)
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次 def after_trading_dl(context): logger.info("收盘后执行after_trading函数") config_dl = { "stock_id": "000001.XSHE", "base": { "start_date": yesterday, "end_date": today, "accounts": { "stock": 100000 } }, "extra": { "log_level": "verbose", }, "mod": { "sys_analyser": { "enabled": True, "plot": False } } } # 您可以指定您要传递的参数 run_func(init=init_dl, before_trading=before_trading_dl, handle_bar=handle_bar_dl, config=config_dl)
"start_date": "20180901", "end_date": "20200901", "frequency": "1d", # "benchmark": "000300.XSHG", "accounts": { "STOCK": 10e8 } }, "extra": { "log_level": "verbose" }, "mod": { "sys_analyser": { "enabled": True, # "report_save_path": ".", "plot": True, "enabled": True, "benchmark": "000300.XSHG" # "matching_type": "last" }, } } if __name__ == "__main__": from rqalpha import run_func run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=CONFIG)
"benchmark": None, "accounts": { "stock": 100000 } } , # "extra": { # "log_level": "verbose", # }, "mod": { "sys_analyser": { "enabled": True, "plot": False } } } # 您可以指定您要传递的参数 results = run_func(init=init, handle_bar=handle_bar, config=config) report = results["sys_analyser"] print (report.keys()) print ('stock positions') print (report.get('stock_positions')) # print ('trades') # print (report.get('trades')) # print ('summary') # print (report.get('summary')) # print ('stock_account') # print (report.get('stock_account')) # print ('portfolio') # print (report.get('portfolio'))
for security in to_remove: available_stocks.remove(security) return available_stocks config = { "base": { "start_date": "2018-01-01", "end_date": "2018-11-07", "benchmark": "000300.XSHG", "accounts": { "stock": 1000000 } }, "extra": { "log_level": "verbose", "locale": "zh_Hans_CN" }, "mod": { "sys_analyser": { "enabled": True, "plot": True } } } # 您可以指定您要传递的参数 #run_func(init=init, before_trading=before_trading, handle_bar=handle_bar, config=config) run_func(**globals())
if cur_position > 0: order_shares(context.s, -cur_position) context.units_hold = 0 context.pre_trading_signal = context.trading_signal config = { "base": { "start_date": "2018-01-01", "end_date": "2018-9-25", "benchmark": "000300.XSHG", "accounts": { "stock": 10000000 } }, "extra": { "log_level": "verbose", "locale": "zh_Hans_CN" }, "mod": { "sys_analyser": { "enabled": True, "plot": True } } } # 您可以指定您要传递的参数 run_func(init=init, before_trading=None, handle_bar=handle_bar, config=config)
def my_run(): run_func( init=init, before_trading=before_trading, handle_bar=handle_bar, config=config)