获取具有交易入场值的指标 - Pine Script

Get indicator with trade entry value - Pine Script

我想在交易入场时设置 2ATR 的止损。使用 Pine Script,我设置了 2ATR 的止损,但不是在交易进入时,而是 Pine Script 将 ATR 值更新为最后关闭的 candle.Preferred verion 是 v4 是 PS 的 v5。

谢谢

atr = atr(14)

if EntryShortCondiction1 and EntryShortCondiction2
    strategy.entry("Short", false, 100)
    
ShortStop = (strategy.position_avg_price + atr*2)
ShortProfit = (strategy.position_avg_price - atr*2)

if strategy.position_size<0
    strategy.exit(id = "Short", stop=ShortStop, limit=ShortProfit)

您可以使用 strategy.opentrades.entry_price 变量来获取入场价。

这是一个例子:

//@version=5
strategy("My strategy", overlay=true, margin_long=100, margin_short=100)

_atr = ta.atr(14)

longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))

if (longCondition)
    strategy.entry("Long", strategy.long)

lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)

var float tp = na
var float sl = na

if (strategy.position_size[1] != strategy.position_size)
    tp := lastEntryPrice + (_atr * 2)
    sl := lastEntryPrice - (_atr * 2)

inTrade = strategy.position_size > 0

plot(inTrade ? tp : na, color=color.green, style=plot.style_circles)
plot(inTrade ? sl : na, color=color.red, style=plot.style_circles)
plot(lastEntryPrice)

strategy.exit("Short", "Long", stop=sl, limit=tp)

所以,入场价是55334,19,当时的atr是2725,88。止盈 = 55334,19 + (2 * 2725,88) = 60785,95 这似乎是正确的。