Pine脚本如何通过订单ID获取strategy.order历史订单入场价格
Pine Script 检索指定ID策略订单入场价的实现方式
Pine Script 没有提供「传入订单ID直接返回对应订单入场价」的专用内置函数,但可以通过策略模块原生的交易查询变量组合实现需求,按订单对应持仓的状态分两种场景处理:
- 对应持仓未平仓
遍历当前所有未平仓交易,匹配目标订单ID后即可读取入场价,涉及的内置变量:strategy.opentrades:当前未平仓交易的总条数strategy.opentrades.entry_id(tradeIdx):传入未平仓交易的索引(从0开始计数),返回该笔交易的入场订单IDstrategy.opentrades.entry_price(tradeIdx):传入未平仓交易的索引,返回该笔交易的实际成交入场价
参考代码:
targetOrderId = "order ID" targetEntryPrice = na // 遍历全部未平仓交易匹配ID for tradeIdx = 0 to strategy.opentrades - 1 if strategy.opentrades.entry_id(tradeIdx) == targetOrderId targetEntryPrice := strategy.opentrades.entry_price(tradeIdx) break - 对应持仓已平仓
遍历历史已平仓交易,匹配目标订单ID后即可读取入场价,涉及的内置变量:strategy.closedtrades:历史已平仓交易的总条数strategy.closedtrades.entry_id(tradeIdx):传入已平仓交易的索引(从0开始计数),返回该笔交易的入场订单IDstrategy.closedtrades.entry_price(tradeIdx):传入已平仓交易的索引,返回该笔交易的实际成交入场价
注意:如果你重复使用同一个订单ID,上述遍历逻辑默认返回最近一笔匹配ID的交易入场价,可根据需要补充交易方向、开仓时间等条件做进一步过滤。未成交的挂单不会进入
opentrades/closedtrades交易序列,不存在实际成交价格,无法通过该方法查询。
内容的提问来源于stack exchange,提问作者Tuor
相关产品推荐
相关产品推荐

