相同的代码,v2 和 v3 中的结果不同
The same code, different results in v2 and v3
我尝试将脚本从 v2 迁移到 v3 PineScript。然而,事实证明,在 v3 中,相同的代码 returns 不同的值。这怎么可能,我做错了什么?您可以在下面找到此脚本的代码。
图表上是这样的
https://www.tradingview.com/x/itg3HS0T/?
测试 1 - v2,绿色,灰色线条
Test2 - v3,粉色,蓝色线条
提前感谢您的帮助!:)
//@version=2
study("Test2",overlay=true)
long_timeframe = input(title="Long timeframe", type=resolution, defval="180")
short_timeframe = input(title="Long timeframe", type=resolution, defval="60")
step_shift = input(0,"Step Shift")
ha_symbol = heikinashi(tickerid)
long_ha_close = security(ha_symbol, long_timeframe, hlc3)
short_ha_close = security(ha_symbol, short_timeframe, hlc3)
long_step = ema(long_ha_close[step_shift],1)
short_step = ema(short_ha_close[step_shift],1)
plot(long_step,title="LongStep",color=white,linewidth=2,style=line)
plot(short_step,title="ShortStep",color=silver,linewidth=2,style=line)
区别是因为security()
函数的lookahead
参数在v2中默认值为on
,在v3中默认值为off
,所以需要设置它在 v3.
中显式 on
//@version=3
study("Test3",overlay=true)
long_timeframe = input(title="Long timeframe", type=resolution, defval="180")
short_timeframe = input(title="Long timeframe", type=resolution, defval="60")
step_shift = input(0,"Step Shift")
ha_symbol = heikinashi(tickerid)
// These 2 lines yield same result as v2 version of the script.
long_ha_close = security(ha_symbol, long_timeframe, hlc3, lookahead=barmerge.lookahead_on)
short_ha_close = security(ha_symbol, short_timeframe, hlc3, lookahead=barmerge.lookahead_on)
// To avoid repainting, these 2 lines are preferable.
// long_ha_close = security(ha_symbol, long_timeframe, hlc3[1], lookahead=barmerge.lookahead_on)
// short_ha_close = security(ha_symbol, short_timeframe, hlc3[1], lookahead=barmerge.lookahead_on)
long_step = ema(long_ha_close[step_shift],1)
short_step = ema(short_ha_close[step_shift],1)
plot(long_step,title="LongStep",color=aqua,linewidth=2,style=line)
plot(short_step,title="ShortStep",color=fuchsia,linewidth=2,style=line)
我尝试将脚本从 v2 迁移到 v3 PineScript。然而,事实证明,在 v3 中,相同的代码 returns 不同的值。这怎么可能,我做错了什么?您可以在下面找到此脚本的代码。
图表上是这样的 https://www.tradingview.com/x/itg3HS0T/?
测试 1 - v2,绿色,灰色线条 Test2 - v3,粉色,蓝色线条
提前感谢您的帮助!:)
//@version=2
study("Test2",overlay=true)
long_timeframe = input(title="Long timeframe", type=resolution, defval="180")
short_timeframe = input(title="Long timeframe", type=resolution, defval="60")
step_shift = input(0,"Step Shift")
ha_symbol = heikinashi(tickerid)
long_ha_close = security(ha_symbol, long_timeframe, hlc3)
short_ha_close = security(ha_symbol, short_timeframe, hlc3)
long_step = ema(long_ha_close[step_shift],1)
short_step = ema(short_ha_close[step_shift],1)
plot(long_step,title="LongStep",color=white,linewidth=2,style=line)
plot(short_step,title="ShortStep",color=silver,linewidth=2,style=line)
区别是因为security()
函数的lookahead
参数在v2中默认值为on
,在v3中默认值为off
,所以需要设置它在 v3.
on
//@version=3
study("Test3",overlay=true)
long_timeframe = input(title="Long timeframe", type=resolution, defval="180")
short_timeframe = input(title="Long timeframe", type=resolution, defval="60")
step_shift = input(0,"Step Shift")
ha_symbol = heikinashi(tickerid)
// These 2 lines yield same result as v2 version of the script.
long_ha_close = security(ha_symbol, long_timeframe, hlc3, lookahead=barmerge.lookahead_on)
short_ha_close = security(ha_symbol, short_timeframe, hlc3, lookahead=barmerge.lookahead_on)
// To avoid repainting, these 2 lines are preferable.
// long_ha_close = security(ha_symbol, long_timeframe, hlc3[1], lookahead=barmerge.lookahead_on)
// short_ha_close = security(ha_symbol, short_timeframe, hlc3[1], lookahead=barmerge.lookahead_on)
long_step = ema(long_ha_close[step_shift],1)
short_step = ema(short_ha_close[step_shift],1)
plot(long_step,title="LongStep",color=aqua,linewidth=2,style=line)
plot(short_step,title="ShortStep",color=fuchsia,linewidth=2,style=line)