为什么 MQL4 回测 RSI 值与图表上的 RSI 不匹配?
Why MQL4 Backtest RSI values do not match with RSI on chart?
我有以下 EA 的简单回测:
void OnTick()
{
double rsi = iRSI( Symbol(), PERIOD_M5, 14, PRICE_CLOSE, 0 );
int day = TimeDay( TimeCurrent() );
int hour = TimeHour( TimeCurrent() );
int min = TimeMinute( TimeCurrent() );
if ( day == 7
&& hour >= 9
&& hour < 11
) {
Print( Symbol(), " / ", PERIOD_M5, " rsi: ", (string) rsi );
}
}
然而,回测日志似乎与图表中显示的图像不匹配:
http://i.imgur.com/PRhtvQD.png
能给个解释吗?
Q : "Could you please give some explanation?"
当然,您的代码计算并更新打印的 RSI(14)
值(每笔报价)
请注意,前一根柱线 08:55 的收盘价 RSI(14)
远高于 HLINE ~ 30%
(如果有疑问,您可以先 Print( iRSI( Symbol(), PERIOD_M5, 14, PRICE_CLOSE, 1 ) );
将以数字形式看到“上一个”栏值。
从大约该值(高于 ~ 30%)开始,新打开的柱 [0]
将开始“发展”新柱内的实际 RSI(14)
值。因此,最初,这些值将“移动”并且图表绘制/重新绘制线条(我们可以将每个此类更改可视化为点、标记或 Hi/Lo-range ),这就是 原因,为什么我们最终看到一条蓝线下降到 Close[0]
在退出审查中的柱时“完成”的位置(09:00 柱,大约在 09:04:59:9999 次).
我有以下 EA 的简单回测:
void OnTick()
{
double rsi = iRSI( Symbol(), PERIOD_M5, 14, PRICE_CLOSE, 0 );
int day = TimeDay( TimeCurrent() );
int hour = TimeHour( TimeCurrent() );
int min = TimeMinute( TimeCurrent() );
if ( day == 7
&& hour >= 9
&& hour < 11
) {
Print( Symbol(), " / ", PERIOD_M5, " rsi: ", (string) rsi );
}
}
然而,回测日志似乎与图表中显示的图像不匹配:
能给个解释吗?
Q : "Could you please give some explanation?"
当然,您的代码计算并更新打印的 RSI(14)
值(每笔报价)
请注意,前一根柱线 08:55 的收盘价 RSI(14)
远高于 HLINE ~ 30%
(如果有疑问,您可以先 Print( iRSI( Symbol(), PERIOD_M5, 14, PRICE_CLOSE, 1 ) );
将以数字形式看到“上一个”栏值。
从大约该值(高于 ~ 30%)开始,新打开的柱 [0]
将开始“发展”新柱内的实际 RSI(14)
值。因此,最初,这些值将“移动”并且图表绘制/重新绘制线条(我们可以将每个此类更改可视化为点、标记或 Hi/Lo-range ),这就是 原因,为什么我们最终看到一条蓝线下降到 Close[0]
在退出审查中的柱时“完成”的位置(09:00 柱,大约在 09:04:59:9999 次).