如何在Pinescript策略中用strategy.entry创建提醒但不触发对应入场
PineScript突破预警+实际入场分离实现方案
核心实现逻辑
触发「Get Ready For Long(准备做多)」预警信号时,调用strategy.entry但将下单数量qty参数设为0,此时策略只会生成信号记录(可直接绑定平台提醒),不会产生实际持仓;触发正式「Long(做多)」信号时再调用正常参数的strategy.entry执行入场即可。
代码示例
//@version=5 strategy("前高突破做多策略", overlay=true, default_qty_type=strategy.cash, default_qty_value=10000, initial_capital=100000) // 计算前一日高点 prev_high = request.security(syminfo.tickerid, "D", high[1]) // 预警阈值:可自定义,示例为距离前高0.1%时触发准备信号 alert_threshold = prev_high * 0.999 // 信号判断 get_ready_long = close >= alert_threshold and close < prev_high long_signal = close > prev_high // 准备做多信号:qty设为0,仅生成提醒不入场 if get_ready_long strategy.entry("Get Ready For Long", strategy.long, qty=0) // 可额外加alert函数做双保险 alert("价格即将突破前高,准备做多", alert.freq_once_per_bar_close) // 正式做多信号:正常下单入场 if long_signal strategy.entry("Long", strategy.long) // 辅助绘图 plot(prev_high, color=color.new(color.red, 0), title="前一日高点") plot(alert_threshold, color=color.new(color.orange, 0), title="预警线", style=plot.style_dashed)
提醒配置说明
- 「Get Ready For Long」信号提醒:在TradingView策略设置的「提醒」标签页中,选择「订单填充」事件,筛选对应信号名称即可绑定邮件/弹窗/APP推送,0手订单不会产生任何实际持仓变动
- 「Long」信号提醒同样可以按上述方式配置,同时会触发策略实际开仓逻辑
注意事项
- 可在策略初始化参数中关闭「金字塔加仓」或者设置加仓次数限制,避免正式信号触发时重复下单
- 预警阈值可根据标的波动自行调整,波动大的品种可设置为距离前高0.2%~0.5%
内容的提问来源于stack exchange,提问作者Aliar Rahaman Sajib
相关产品推荐
相关产品推荐

