首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Tradingview - PineScript -将策略从v2转换为v5,但结果不同

Tradingview - PineScript -将策略从v2转换为v5,但结果不同
EN

Stack Overflow用户
提问于 2022-11-21 16:33:51
回答 1查看 17关注 0票数 0

因此,我将一个旧的松树脚本v2通过once转换为v5,所有这些都工作得很好,但是当我使用它时,它给了我一个与曾经转换过的v2脚本不同的结果。相同的输入设置,属性,但结果不同。

version=2

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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松树脚本 V5松树脚本

在我看来,我改变了条件

V2

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
ha_close = request.security(ha_t, res, logtransform ? (close[hshift]) : close[hshift])
mha_close = request.security(ha_t, res1, logtransform ? (close[mhshift]) : close[mhshift])

如何将v2中的条件转换为v5和v5以相同的结果转换为v2松脚本

EN

回答 1

Stack Overflow用户

发布于 2022-11-21 16:37:09

安全函数的默认行为是从变化开始的v3。

如果您想获得相同的结果,应该将lookahead=barmerge.lookahead_on添加到您的security()调用中。

barmerge.lookahead_off (这是松树脚本™版本3的默认值)或barmerge.lookahead_on ( Pine™version 2的默认格式)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74522068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档