简体   繁体   中英

Tradingview - PineScript - Convert Strategy from v2 to v5 but different outcome

So I was converting an old pine script v2 via on tradingview to v5 which all worked fine but when I came to use it, it gave me a different result to the v2 script once converted, . Same setting on input, properties but different result.


version=2

Based on Heikin Ashi Strategy v2 by breizh29
strategy("Heikin Ashi Strategy [Krypt]", shorttitle="HA Strategy [Krypt]", overlay=true)

res = input(title="Heikin Ashi Candle Time Frame", type=resolution, defval="60")
hshift = input(1,title="Heikin Ashi Candle Time Frame Shift")
res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(1,"Heikin Ashi EMA Period")
test = input(1,"Heikin Ashi EMA Shift")
sloma = input(30,"Slow EMA Period")
slomas = input(1,"Slow EMA Shift")
logtransform = input(false, "Log Transform")
stoploss = input(true, "Stop Loss")
showplots = input(true, "Show Plots")

ha_t = heikinashi(tickerid)
ha_close = security(ha_t, res, logtransform ? log(close[hshift]) : close[hshift])
mha_close = security(ha_t, res1, logtransform ? log(close[mhshift]) : close[mhshift])

fma = ema(mha_close[test], fama)
sma = ema(ha_close[slomas], sloma)

plot(showplots ? (logtransform ? exp(fma) : fma) : na, title="MA", color=#0094ff, linewidth=2, style=line)
plot(showplots ? (logtransform ? exp(sma) : sma) : na, title="SMA", color=#ff6a00, linewidth=2, style=line)

golong = crossover(fma, sma)
goshort = crossunder(fma, sma)

strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))`


version=5

Based on Heikin Ashi Strategy v2 by breizh29
strategy("Heikin Ashi Strategy [Krypt] Alert", shorttitle="HA Strategy [Krypt] Alert v5 script", overlay=true)

res = input(title="Heikin Ashi Candle Time Frame",defval="60")
hshift = input(1,title="Heikin Ashi Candle Time Frame Shift")
res1 = input(title="Heikin Ashi EMA Time Frame", defval = "180")
mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift")
fama = input(1,"Heikin Ashi EMA Period")
test = input(1,"Heikin Ashi EMA Shift")
sloma = input(30,"Slow EMA Period")
slomas = input(1,"Slow EMA Shift")
logtransform = input(false, "Log Transform")
stoploss = input(true, "Stop Loss")
showplots = input(true, "Show Plots")

ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, res, logtransform ? (close[hshift]) : close[hshift])
mha_close = request.security(ha_t, res1, logtransform ? (close[mhshift]) : close[mhshift])

fma = ta.ema(mha_close[test], fama)
sma = ta.ema(ha_close[slomas], sloma)

plot(showplots ? (logtransform ? fma : fma) : na, title="MA", color=#0094ff, linewidth=2)
plot(showplots ? (logtransform ? sma : sma) : na, title="SMA", color=#ff6a00, linewidth=2)

golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na))
strategy.entry("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))

V2 Pine Script V5 Pine Script

In my opinion, big different i changed condition

V2

ha_close = security(ha_t, res, logtransform ? log(close[hshift]) : close[hshift])
mha_close = security(ha_t, res1, logtransform ? log(close[mhshift]) : close[mhshift])

V5

ha_close = request.security(ha_t, res, logtransform ? (close[hshift]) : close[hshift])
mha_close = request.security(ha_t, res1, logtransform ? (close[mhshift]) : close[mhshift])

How to keep condition in v2 convert to v5 And v5 to same result to v2 Pine Script

The default behavior of the security function has changed starting from v3.

If you want to achieve the same results, you should add lookahead=barmerge.lookahead_on to your security() call.

lookahead: It can take on the form of two different values: barmerge.lookahead_off (and this is the default for Pine Script™ version 3 ) or barmerge.lookahead_on (which is the default for Pine Script™ version 2 ).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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