复制链接
克隆策略

策略名称

双均线策略

策略思路

  1. 长期均线小于短期均线且没有持仓, 则买入;
  2. 长期均线大于短期均线且持有, 则卖出.

股票池筛选

600519.SHA 这一只股票

    {"description":"实验创建于2023/2/10","graph":{"edges":[{"to_node_id":"-24:instruments","from_node_id":"-6:data"},{"to_node_id":"-42:instruments","from_node_id":"-6:data"},{"to_node_id":"-24:features","from_node_id":"-19:data"},{"to_node_id":"-31:features","from_node_id":"-19:data"},{"to_node_id":"-31:input_data","from_node_id":"-24:data"},{"to_node_id":"-42:options_data","from_node_id":"-31:data"}],"nodes":[{"node_id":"-6","module_id":"BigQuantSpace.instruments.instruments-v2","parameters":[{"name":"start_date","value":"2017-11-24","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"2021-11-24","type":"Literal","bound_global_parameter":null},{"name":"market","value":"CN_STOCK_A","type":"Literal","bound_global_parameter":null},{"name":"instrument_list","value":"600519.SHA","type":"Literal","bound_global_parameter":null},{"name":"max_count","value":0,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"rolling_conf","node_id":"-6"}],"output_ports":[{"name":"data","node_id":"-6"}],"cacheable":true,"seq_num":1,"comment":"","comment_collapsed":true},{"node_id":"-19","module_id":"BigQuantSpace.input_features.input_features-v1","parameters":[{"name":"features","value":"\n# #号开始的表示注释,注释需单独一行\n# 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征\nmean5=mean(close_0,5)\nmean50=mean(close_0,50)","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"features_ds","node_id":"-19"}],"output_ports":[{"name":"data","node_id":"-19"}],"cacheable":true,"seq_num":3,"comment":"","comment_collapsed":true},{"node_id":"-24","module_id":"BigQuantSpace.general_feature_extractor.general_feature_extractor-v7","parameters":[{"name":"start_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"before_start_days","value":90,"type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-24"},{"name":"features","node_id":"-24"}],"output_ports":[{"name":"data","node_id":"-24"}],"cacheable":true,"seq_num":4,"comment":"","comment_collapsed":true},{"node_id":"-31","module_id":"BigQuantSpace.derived_feature_extractor.derived_feature_extractor-v3","parameters":[{"name":"date_col","value":"date","type":"Literal","bound_global_parameter":null},{"name":"instrument_col","value":"instrument","type":"Literal","bound_global_parameter":null},{"name":"drop_na","value":"False","type":"Literal","bound_global_parameter":null},{"name":"remove_extra_columns","value":"False","type":"Literal","bound_global_parameter":null},{"name":"user_functions","value":"{}","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"input_data","node_id":"-31"},{"name":"features","node_id":"-31"}],"output_ports":[{"name":"data","node_id":"-31"}],"cacheable":true,"seq_num":5,"comment":"","comment_collapsed":true},{"node_id":"-42","module_id":"BigQuantSpace.hftrade.hftrade-v2","parameters":[{"name":"start_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"end_date","value":"","type":"Literal","bound_global_parameter":null},{"name":"initialize","value":"# 交易引擎:初始化函数,只执行一次\ndef bigquant_run(context):\n # 加载预测数据\n context.df = context.options['data'].read_df()\n","type":"Literal","bound_global_parameter":null},{"name":"before_trading_start","value":"# 交易引擎:每个单位时间开盘前调用一次。\ndef bigquant_run(context, data):\n # 盘前处理,订阅行情等\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"handle_tick","value":"# 交易引擎:tick数据处理函数,每个tick执行一次\ndef bigquant_run(context, tick):\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"handle_data","value":"# 交易引擎:bar数据处理函数,每个时间单位执行一次\ndef bigquant_run(context, data):\n dt = data.current_dt.strftime('%Y-%m-%d')\n df = context.df[context.df['date']==dt]\n instrument = context.instruments[0]\n mean50 = df['mean50'].values[0]\n mean5 = df['mean5'].values[0]\n \n # 持仓信息\n holding = list(context.get_account_positions().keys())\n \n # 若长线大于短线且有持仓\n if mean50 > mean5 and instrument in holding:\n context.order_target(instrument, 0)\n \n # 若短线大于长线且没有持仓\n if mean5 > mean50 and instrument not in holding:\n context.order_target_percent(instrument, 1)\n","type":"Literal","bound_global_parameter":null},{"name":"handle_trade","value":"# 交易引擎:成交回报处理函数,每个成交发生时执行一次\ndef bigquant_run(context, trade):\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"handle_order","value":"# 交易引擎:委托回报处理函数,每个委托变化时执行一次\ndef bigquant_run(context, order):\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"after_trading","value":"# 交易引擎:盘后处理函数,每日盘后执行一次\ndef bigquant_run(context, data):\n pass\n","type":"Literal","bound_global_parameter":null},{"name":"capital_base","value":1000000,"type":"Literal","bound_global_parameter":null},{"name":"frequency","value":"daily","type":"Literal","bound_global_parameter":null},{"name":"price_type","value":"真实价格","type":"Literal","bound_global_parameter":null},{"name":"product_type","value":"股票","type":"Literal","bound_global_parameter":null},{"name":"before_start_days","value":"0","type":"Literal","bound_global_parameter":null},{"name":"volume_limit","value":1,"type":"Literal","bound_global_parameter":null},{"name":"order_price_field_buy","value":"open","type":"Literal","bound_global_parameter":null},{"name":"order_price_field_sell","value":"close","type":"Literal","bound_global_parameter":null},{"name":"benchmark","value":"000300.HIX","type":"Literal","bound_global_parameter":null},{"name":"plot_charts","value":"True","type":"Literal","bound_global_parameter":null},{"name":"disable_cache","value":"False","type":"Literal","bound_global_parameter":null},{"name":"replay_bdb","value":"False","type":"Literal","bound_global_parameter":null},{"name":"show_debug_info","value":"False","type":"Literal","bound_global_parameter":null},{"name":"backtest_only","value":"False","type":"Literal","bound_global_parameter":null}],"input_ports":[{"name":"instruments","node_id":"-42"},{"name":"options_data","node_id":"-42"},{"name":"history_ds","node_id":"-42"},{"name":"benchmark_ds","node_id":"-42"}],"output_ports":[{"name":"raw_perf","node_id":"-42"}],"cacheable":false,"seq_num":6,"comment":"","comment_collapsed":true}],"node_layout":"<node_postions><node_position Node='-6' Position='-30.34527587890625,87.45450592041016,200,200'/><node_position Node='-19' Position='290.1752014160156,74.65914916992188,200,200'/><node_position Node='-24' Position='103.74845886230469,175.2392578125,200,200'/><node_position Node='-31' Position='115.31544494628906,251.97732543945312,200,200'/><node_position Node='-42' Position='60.960723876953125,340.4700622558594,200,200'/></node_postions>"},"nodes_readonly":false,"studio_version":"v2"}
    In [1]:
    # 本代码由可视化策略环境自动生成 2023年11月18日 15:06
    # 本代码单元只能在可视化模式下编辑。您也可以拷贝代码,粘贴到新建的代码单元或者策略,然后修改。
    
    
    # 交易引擎:初始化函数,只执行一次
    def m6_initialize_bigquant_run(context):
        # 加载预测数据
        context.df = context.options['data'].read_df()
    
    # 交易引擎:每个单位时间开盘前调用一次。
    def m6_before_trading_start_bigquant_run(context, data):
        # 盘前处理,订阅行情等
        pass
    
    # 交易引擎:tick数据处理函数,每个tick执行一次
    def m6_handle_tick_bigquant_run(context, tick):
        pass
    
    # 交易引擎:bar数据处理函数,每个时间单位执行一次
    def m6_handle_data_bigquant_run(context, data):
        dt = data.current_dt.strftime('%Y-%m-%d')
        df = context.df[context.df['date']==dt]
        instrument = context.instruments[0]
        mean50 = df['mean50'].values[0]
        mean5 = df['mean5'].values[0]
        
        # 持仓信息
        holding = list(context.get_account_positions().keys())
        
        # 若长线大于短线且有持仓
        if mean50 > mean5 and instrument in holding:
            context.order_target(instrument, 0)
        
        # 若短线大于长线且没有持仓
        if mean5 > mean50 and instrument not in holding:
            context.order_target_percent(instrument, 1)
    
    # 交易引擎:成交回报处理函数,每个成交发生时执行一次
    def m6_handle_trade_bigquant_run(context, trade):
        pass
    
    # 交易引擎:委托回报处理函数,每个委托变化时执行一次
    def m6_handle_order_bigquant_run(context, order):
        pass
    
    # 交易引擎:盘后处理函数,每日盘后执行一次
    def m6_after_trading_bigquant_run(context, data):
        pass
    
    
    m1 = M.instruments.v2(
        start_date='2017-11-24',
        end_date='2021-11-24',
        market='CN_STOCK_A',
        instrument_list='600519.SHA',
        max_count=0
    )
    
    m3 = M.input_features.v1(
        features="""
    # #号开始的表示注释,注释需单独一行
    # 多个特征,每行一个,可以包含基础特征和衍生特征,特征须为本平台特征
    mean5=mean(close_0,5)
    mean50=mean(close_0,50)"""
    )
    
    m4 = M.general_feature_extractor.v7(
        instruments=m1.data,
        features=m3.data,
        start_date='',
        end_date='',
        before_start_days=90
    )
    
    m5 = M.derived_feature_extractor.v3(
        input_data=m4.data,
        features=m3.data,
        date_col='date',
        instrument_col='instrument',
        drop_na=False,
        remove_extra_columns=False,
        user_functions={}
    )
    
    m6 = M.hftrade.v2(
        instruments=m1.data,
        options_data=m5.data,
        start_date='',
        end_date='',
        initialize=m6_initialize_bigquant_run,
        before_trading_start=m6_before_trading_start_bigquant_run,
        handle_tick=m6_handle_tick_bigquant_run,
        handle_data=m6_handle_data_bigquant_run,
        handle_trade=m6_handle_trade_bigquant_run,
        handle_order=m6_handle_order_bigquant_run,
        after_trading=m6_after_trading_bigquant_run,
        capital_base=1000000,
        frequency='daily',
        price_type='真实价格',
        product_type='股票',
        before_start_days='0',
        volume_limit=1,
        order_price_field_buy='open',
        order_price_field_sell='close',
        benchmark='000300.HIX',
        plot_charts=True,
        disable_cache=False,
        replay_bdb=False,
        show_debug_info=False,
        backtest_only=False
    )
    
    • 收益率128.82%
    • 年化收益率22.89%
    • 基准收益率0.0%
    • 阿尔法nan
    • 贝塔nan
    • 夏普比率0.87
    • 胜率0.33
    • 盈亏比2.93
    • 收益波动率24.84%
    • 信息比率0.06
    • 最大回撤31.96%
    bigcharts-data-start/{"__type":"tabs","__id":"bigchart-f79a01a7d1b7479ab789f74691cb54e7"}/bigcharts-data-end
    In [ ]: