TradingView Pine脚本-当以更高分辨率计算时,信号到达较晚



当我使用日分辨率计算MACD时,我的信号出现在预期日期。然而,当我以更精确的分辨率(如4小时)计算它们时,它们比日线图精确地晚24小时到达。我希望它们能更快地出现在更精细的分辨率图表上。

谁能解释为什么这是和我怎么可能解决它?

下面是一个突出这个问题的策略:

//@version=4
strategy("Resolution issue", 
process_orders_on_close=true, 
calc_on_every_tick=true
)
src = close
fastLength = 12
slowLength = 26
signalLength = 9
// --------------------- Daily  
dailyFastMA = ema(src, fastLength)
dailySlowMA = ema(src, slowLength)
dailyMacd = dailyFastMA - dailySlowMA
dailySignal = sma(dailyMacd, signalLength)
dailyHist = dailyMacd - dailySignal
dailyOutMacD = security(syminfo.tickerid, '1D', dailyMacd, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
dailyOutSignal = security(syminfo.tickerid, '1D', dailySignal,  gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
dailyOutHist = security(syminfo.tickerid, '1D', dailyHist,  gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
// --------------------- 4 hourly  
fourHourlyFastMA = ema(src, fastLength * 6)
fourHourlySlowMA = ema(src, slowLength * 6)
fourHourlyMacd = fourHourlyFastMA - fourHourlySlowMA
fourHourlySignal = sma(fourHourlyMacd, signalLength * 6)
fourHourlyHist = fourHourlyMacd - fourHourlySignal
fourHourlyOutMacD = security(syminfo.tickerid, '240', fourHourlyMacd, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
fourHourlyOutSignal = security(syminfo.tickerid, '240', fourHourlySignal,  gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
fourHourlyOutHist = security(syminfo.tickerid, '240', fourHourlyHist,  gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
// --------------------- Plot
plot(dailyOutMacD ? dailyOutMacD : na, title="Daily MACD", color=#77FF00, linewidth=2, style=plot.style_stepline)
plot(fourHourlyOutMacD ? fourHourlyOutMacD : na, title="4hr MACD", color=#0077FF, linewidth=2, style=plot.style_stepline)
plot(dailyOutSignal ? dailyOutSignal : na, title="Daily Signal Line", color=#77FF00, linewidth=2, style=plot.style_stepline)
plot(fourHourlyOutSignal ? fourHourlyOutSignal : na, title="4hr Signal Line", color=#0077FF, linewidth=2, style=plot.style_stepline)

蓝线为高分辨率4hr数据,绿线为每日数据。查看图形输出的图像。蓝线(4小时)落后于绿线(每天)24小时,我本以为蓝色会领先于每日,因为每日应该每天只正确一次,而4小时显示每天正确6次。

尝试使用

source = close
res = "240"
fastMA = ema(source, 12*6)
slowMA = ema(source, 26*6)
macd = fastMA - slowMA
signal = sma(macd, 9*6)
hist = macd - signal
outMacD = security(tickerid, res, macd, lookahead=barmerge.lookahead_on)
outSignal = security(tickerid, res, signal, lookahead=barmerge.lookahead_on)
outHist = security(tickerid, res, hist, lookahead=barmerge.lookahead_on)

最新更新