You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pine Script中将订单入场价格保存至变量

Pine Script 获取订单入场价及绘制目标水平线实现方案

1. 不同场景下获取入场价的方法

  • 策略(strategy)脚本场景
    直接调用内置变量strategy.position_avg_price即可获取当前持仓的平均入场价格,如果需要记录历史每笔订单的入场价,可以在订单成交时把价格存入数组持久化存储。
    示例代码片段:
// 策略场景获取当前持仓入场价
entryPrice = strategy.position_avg_price
  • 指标(indicator)脚本模拟交易场景
    需要在开仓条件触发时,主动把当前价格存入自定义变量,需要用var关键字声明变量避免每根K线刷新时被重置。
    示例代码片段:
var float myEntryPrice = na
// 开仓条件判断示例,可替换为自定义开仓逻辑
if longCondition
    myEntryPrice := close

2. 基于入场价绘制目标水平线

拿到入场价之后,可以按照自定义的盈亏比例计算目标位,注意hline只支持固定常量值,如果目标位是随入场价动态变化的,用plot函数更合适。
完整示例代码:

//@version=5
strategy("入场价画目标线示例", overlay=true)
// 开仓逻辑示例:5日均线上穿20日均线开多
longCondition = ta.crossover(ta.sma(close, 5), ta.sma(close, 20))
if longCondition
    strategy.entry("多单", strategy.long)

// 获取当前持仓入场价
entryPrice = strategy.position_avg_price
// 计算目标位:1%止盈,2%止损,可自定义比例
takeProfit = entryPrice * 1.01
stopLoss = entryPrice * 0.98

// 绘制动态水平线
plot(strategy.position_size != 0 ? takeProfit : na, color=color.green, style=plot.style_linebr, linewidth=2, title="止盈线")
plot(strategy.position_size != 0 ? stopLoss : na, color=color.red, style=plot.style_linebr, linewidth=2, title="止损线")
plot(strategy.position_size != 0 ? entryPrice : na, color=color.yellow, style=plot.style_linebr, linewidth=2, title="入场线")

注意事项

  • 如果需要同时记录多笔未平仓订单的入场价,建议用array.new_float()存储所有入场价,遍历数组逐个绘制对应目标线
  • hline函数无法接收动态变量作为参数,动态目标位必须用plot函数实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:09:02