'Need help converting a pine script from version 2 to version 4
I'm stuck trying to convert this script from version 2 to version 4.
//@version=2
strategy("Heikin Ashi Strategy V3",shorttitle="Mod MY",overlay=true,default_qty_value=100,initial_capital=100,currency=currency.USD)
res = input(title="Heikin Ashi Candle Time Frame", type=resolution, defval="30")
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(10,"Slow EMA Period")
slomas = input(1,"Slow EMA Shift")
macdf = input(false,title="With MACD filter")
res2 = input(title="MACD Time Frame", type=resolution, defval="12")
macds = input(1,title="MACD Shift")
//Heikin Ashi Open/Close Price
ha_t = heikinashi(tickerid)
ha_open = security(ha_t, res, open[hshift])
ha_close = security(ha_t, res, close[hshift])
mha_close = security(ha_t, res1, close[mhshift])
//macd
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdl = security(ha_t,res2,macdLine[macds])
macdsl= security(ha_t,res2,signalLine[macds])
//Moving Average
fma = ema(mha_close[test],fama)
sma = ema(ha_close[slomas],sloma)
plot(fma,title="MA",color=lime,linewidth=2,style=line)
plot(sma,title="SMA",color=red,linewidth=2,style=line)
//Strategy
golong = crossover(fma,sma) and (macdl > macdsl or macdf == false )
goshort = crossunder(fma,sma) and (macdl < macdsl or macdf == false )
strategy.entry("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)
Solution 1:[1]
Save as v2, no errors. Then convert to v4 and then to v5:
//@version=5
strategy('Heikin Ashi Strategy V3', shorttitle='Mod MY', overlay=true, default_qty_value=100, initial_capital=100, currency=currency.USD)
res = input.timeframe(title='Heikin Ashi Candle Time Frame', defval='30')
hshift = input(1, title='Heikin Ashi Candle Time Frame Shift')
res1 = input.timeframe(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(10, 'Slow EMA Period')
slomas = input(1, 'Slow EMA Shift')
macdf = input(false, title='With MACD filter')
res2 = input.timeframe(title='MACD Time Frame', defval='12')
macds = input(1, title='MACD Shift')
//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_open = request.security(ha_t, res, open[hshift])
ha_close = request.security(ha_t, res, close[hshift])
mha_close = request.security(ha_t, res1, close[mhshift])
//macd
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
macdl = request.security(ha_t, res2, macdLine[macds])
macdsl = request.security(ha_t, res2, signalLine[macds])
//Moving Average
fma = ta.ema(mha_close[test], fama)
sma = ta.ema(ha_close[slomas], sloma)
plot(fma, title='MA', color=color.new(color.lime, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)
//Strategy
golong = ta.crossover(fma, sma) and (macdl > macdsl or macdf == false)
goshort = ta.crossunder(fma, sma) and (macdl < macdsl or macdf == false)
strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short, when=goshort)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Spy |
