【平台使用】回测框架里面的买入操作有部分股票未买入

代码如下:

def m_handle_data_bigquant_run(context, data):

    # 每5个交易日调仓一次

    if context.trading_day_index % context.holding_days != 0:

        return

   

    # 获取当前日期

    current_date = data.current_dt.strftime("%Y-%m-%d")

    print(f'日期:{current_date}')

    # 获取当日数据

    current_day_data = context.data[context.data["date"] == current_date]

    #检测股票数量是否过少

    if len(current_day_data)<20:

        print(f'备选股票少于20支,日期{current_date}')

    # 取前10只

    current_day_data = current_day_data.iloc[context.cut_size:context.target_hold_count+context.cut_size]

   

    # 获取当日目标持有股票

    target_hold_instruments = set(current_day_data["instrument"])

    print(f'目标股票:{target_hold_instruments}')

    # 获取当前已持有股票

    current_hold_instruments = set(context.get_account_positions().keys())

    print(f'持仓股票:{current_hold_instruments}')

    # 获取要卖的股票

    sell_set = current_hold_instruments - target_hold_instruments

    # 获取要买的股票

    buy_set  = target_hold_instruments - current_hold_instruments

    print(f'buy_set:{buy_set}')

    print(f'sell_set:{sell_set}\n')

    # 卖出不在目标持有列表中的股票

    for instrument in sell_set:

        context.order_target_percent(instrument, 0)

       

    # 买入目标持有列表中的股票

    for instrument in buy_set:

        context.order_target_percent(instrument, context.target_percent_per_instrument)


问题如下:

上一轮的buy_set 里面有002336,那么下一周期的持仓股票里面应该就有002336,实际却没有