Pine-Script多时间框架连亏止损:实现当日小时图连亏2次即停交易
Pine Script 交易日内2次连续亏损停止交易实现方案
核心实现逻辑
- 通过日级别时间戳变化判断新交易日起始,触发后重置当日连续亏损计数
- 仅统计当前交易日内完成平仓的交易盈亏数据
- 平仓交易利润<0时连续亏损计数+1,出现盈利平仓时计数重置为0
- 所有开仓条件新增
当日连续亏损计数 < 2的判断,触发阈值后屏蔽所有新开仓信号
适配小时图的完整代码示例
//@version=5 strategy("日内2连亏停交易示例", overlay=true, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=1000, commission_type=strategy.commission.percent, commission_value=0.1) // 1. 交易日判断与计数重置 is_new_trade_day = ta.change(time("D")) var int daily_consecutive_loss = 0 if is_new_trade_day daily_consecutive_loss := 0 // 2. 平仓盈亏统计与连续亏损计数更新 if strategy.closedtrades > 0 // 获取最近一笔平仓交易的利润 last_trade_profit = strategy.closedtrades.profit(strategy.closedtrades - 1) // 仅统计当日平仓的交易 last_trade_close_time = strategy.closedtrades.exit_time(strategy.closedtrades - 1) if ta.time >= ta.time("D") and last_trade_close_time >= ta.time("D") if last_trade_profit < 0 daily_consecutive_loss := daily_consecutive_loss + 1 else // 盈利则重置连续亏损计数 daily_consecutive_loss := 0 // 3. 开仓允许判断:连续亏损小于2次才可开仓 allow_trade = daily_consecutive_loss < 2 // ------------------- 以下为你的原有交易策略逻辑 ------------------- // 示例开仓条件(可替换为你自己的小时图交易信号) ma_fast = ta.sma(close, 20) ma_slow = ta.sma(close, 60) long_signal = ta.crossover(ma_fast, ma_slow) short_signal = ta.crossunder(ma_fast, ma_slow) // 开仓时新增allow_trade判断 if long_signal and allow_trade strategy.entry("多单", strategy.long) if short_signal and allow_trade strategy.entry("空单", strategy.short) // 示例平仓条件(可替换为你自己的止损止盈逻辑) stop_loss = strategy.position_avg_price * 0.01 take_profit = strategy.position_avg_price * 0.02 strategy.exit("平仓", "多单", stop=stop_loss, limit=take_profit) strategy.exit("平仓", "空单", stop=stop_loss, limit=take_profit)
适配说明
代码默认兼容小时图交易场景,日级别的交易日判断属于多时间框架引用,不会干扰小时图原生信号的触发精度,不需要额外调整时间参数即可直接使用。
内容的提问来源于stack exchange,提问作者MSGabr
相关产品推荐
相关产品推荐

