问答交流

【代码报错】止损策略:为何600开头的股票一天的跌幅会超过10%?

由bqs7w81c创建,最终由xiaoshao 被浏览 4 用户

一个关于止损策略的疑问

以下是我的止损模块代码:
def m5_before_trading_start_bigquant_run(context, data):
    # 获取当前持有的所有股票
    holding_instruments = context.get_account_positions().keys()

    # 计算非调仓日当天是否需要卖出,记录至待卖出列表
    if not context.rebalance_period.is_signal_date(data.current_dt.date()):
        for instrument in holding_instruments:
            position_data = context.get_position(instrument)
            stock_cost = position_data.cost_price
            yesterday_close = data.history(instrument, 'close', 2, '1d')[0]
            yesterday_open = data.history(instrument, 'open', 2, '1d')[0]
            # 如果前一天收盘价相对于成本价跌幅超过10%,则准备在开盘卖出
            if yesterday_close < 0.9 * stock_cost:
                context.to_sell_instruments[instrument] = {'current_dt': data.current_dt.date(),
                    'stock_cost': stock_cost, 'yesterday_open': yesterday_open,
                'yesterday_close': yesterday_close,'return':yesterday_close/stock_cost-1}
                print("开盘止损卖出:", instrument,context.to_sell_instruments[instrument])
                context.order_target_percent(instrument, 0)


这是我的止损逻辑,我打印了记录,其中有一些很奇怪:
开盘止损卖出: 600410.SH {'current_dt': datetime.date(2024, 12, 5), 'stock_cost': 13.484043866171005, 'yesterday_open': 13.48, 'yesterday_close': 11.12, 'return': -0.17532157931508652}
为什么600开头的股票一天的跌幅会超过10%?

\

标签

股票交易策略优化
评论
  • 这个票是华胜天成,我在同花顺看那天没有超过-6%呀 你详细检查下呢 .
  • 初步看来 这里止损的逻辑是 判断 成本价和昨收价的关系,并不是昨日涨跌幅 ,而是持仓收益。持仓收益率肯定会超过10%呀
{link}