繁体   English   中英

将 Pinescript 脚本从 V1 转换为 V5

[英]Converting Pinescript Script from V1 to V5

我需要帮助将脚本从 V1 转换为 V5。 无论我尝试什么,我都会收到很多错误。 如果有人可以帮助我,将不胜感激。 代码如下

`strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
nATRPeriod = input(2)
nATRMultip = input(3.5)
xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =   iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
        iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? red: pos == 1 ? green : blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? green:red)`

我试过手动转换它,但由于 v1 和 v5 之间的差距很大,我得到了太多错误。

已转换

strategy(title='ATR Strategy', overlay=true, commission_type=strategy.commission.percent, commission_value=0.075)
nATRPeriod = input(2)
nATRMultip = input(3.5)
xATRTrailingStop = 0.0
pos = 0.
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
iff_1 = close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
iff_2 = close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) : iff_1
xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) : iff_2

iff_3 = close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

color_1 = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color=color_1, title='ATR Trailing Stop')

barbuy = close > xATRTrailingStop
barsell = close < xATRTrailingStop

if barbuy
    strategy.entry('Long', strategy.long)

if barsell
    strategy.entry('Short', strategy.short)

barcolor(barbuy ? color.green : color.red)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM