策略订单成交时如何执行自定义操作?long tp订单成交后如何设置color为blue
Pine Script订单成交触发自定义操作的实现方法
核心逻辑是通过Pine Script内置的strategy.order.filled()函数检测指定ID的订单是否在当前K线完成成交,以返回值大于0作为触发条件执行后续操作,具体实现步骤如下:
- 提前声明需要修改的变量,建议使用
var关键字避免每根K线重刷时重置变量值
示例:var color customColor = color.gray可先给变量设置默认值 - 订单成交的触发表达式为:
strategy.order.filled("long tp") > 0,函数参数和你下单时填写的订单ID完全对应即可 - 将需要执行的操作写在条件判断分支内即可生效
完整示例代码:
//@version=5 strategy("止盈订单触发示例", overlay=true) // 变量初始化 var color plotColor = color.gray longTP = ta.highest(high, 20) // 可替换为你自己的止盈价格计算逻辑 alert = "long tp 订单成交" // 你原有下单逻辑 strategy.order("long tp", strategy.short, 1, longTP, alert_message=alert) // 订单成交后执行自定义操作 if strategy.order.filled("long tp") > 0 plotColor := color.blue // 示例:用修改后的颜色绘制均线 plot(ta.sma(close, 5), color=plotColor, linewidth=2)
如果你使用的是Pine Script v4版本,没有内置strategy.order.filled()函数,可以通过监听strategy.position_size的变化结合订单方向判断成交状态,更建议升级到v5版本使用更稳定的官方订单检测接口。
内容的提问来源于stack exchange,提问作者bbnm
相关产品推荐
相关产品推荐

