You need to enable JavaScript to run this app. Pine Script中如何查询特定价位未结订单以避免重复提交buy stop订单
优惠活动
大模型
产品
解决方案
定价
更多

Pine Script中如何查询特定价位未结订单以避免重复提交buy stop订单

Pine Script实现特定价位未结订单查询方案

核心逻辑

通过遍历当前所有未结订单,匹配订单类型和价位两个维度,确认无重复订单后再提交新的挂单请求。

实现步骤

  • 调用strategy.opentrades获取当前未结订单总数量,遍历所有订单
  • 对单条订单,先通过strategy.opentrades.type(idx)判断订单类型是否为strategy.order_type_stoplong(即buy stop类型)
  • 校验订单价位是否与目标提交价位一致,为避免浮点精度误差,判定两个价格差值小于品种最小变动单位syminfo.mintick即视为同价位
  • 遍历完成后无匹配结果,再执行新buy stop订单的提交逻辑

可直接运行的示例代码

//@version=5
strategy("防重复buy stop挂单示例", overlay=true)

// 自定义参数配置
target_buy_stop_price = input.float(300.00, "目标挂单价位", minval=0)
order_qty = input.float(1, "挂单数量", minval=0)

// 检查同价位是否存在未结buy stop订单的自定义函数
has_duplicate_buystop(price) =>
    duplicate = false
    for i = 0 to strategy.opentrades - 1
        order_type = strategy.opentrades.type(i)
        order_price = strategy.opentrades.stop(i)
        if order_type == strategy.order_type_stoplong and math.abs(order_price - price) < syminfo.mintick
            duplicate := true
            break
    duplicate

// 无重复订单时提交挂单
if not has_duplicate_buystop(target_buy_stop_price)
    strategy.order("MyBuyStop", strategy.long, qty=order_qty, stop=target_buy_stop_price)

注意事项

  • 该实现仅支持Pine Script v5版本,更低版本无未结订单遍历接口,无法实现该需求
  • 价格比较必须做精度容错,直接用==判断相等会因为浮点运算误差出现同价位判定失败的问题
  • 该功能仅能在strategy策略脚本中使用,indicator指标脚本无法调用订单相关接口

内容的提问来源于stack exchange,提问作者masoud mohammadpoor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 14:45:02