試してみたところ、どうやらコードにエラーがあるようだ。
ジグザグのタイムフレーム("// Òàéìôðåéì Çèãçà äëë÷åòà èíäèêòîðà "が何を意味するのかわからない)の時間を直感的に使用すると、下位のタイムフレームで見たときに、誤った始点と終点からギャンラインなどを 描画してしまいます。そのため、例えば日足のジグザグを使用する場合、価格の最大/最小値が異なる時間帯にあったとしても、ギャンラインはその日の始点から始まることになります。次のスニペット・ブロックはこの問題を解決します:
...
if(UpSign[bar])
{
swing_value[found]=UpSign[bar];
MqlRates rates[];
int copied=CopyRates(Symbol(),Period(),swing_date[found],swing_date[found]+PeriodSeconds(Timeframe),rates);
if(copied<=0)
Print("Error copying price data ",GetLastError());
for(int i=0; i<copied; i++)
if(rates[i].high==swing_value[found])
{
swing_date[found]=rates[i].time;
break;
}
if(UpSign[bar])
{
swing_value[found]=UpSign[bar];
swing_date[found]=TIME[bar];
{MqlRates rates[];
int copied=CopyRates(Symbol(),Period(),swing_date[found],swing_date[found]+PeriodSeconds(Timeframe),rates);
if(copied<=0)
Print("Error copying price data ",GetLastError());
for(int i=0; i<copied; i++)
if(rates[i].high==swing_value[found])
{
swing_date[found]=rates[i].time;
break;
}
}
found++;
...
もちろん、スイングの安値についても同様のスニペットで、rates[i].lowがその値と等しいかどうかをチェックします。

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
AutoGannAutoTrend:
この指標は最新のジグザグピークに基づいて価格チャネルとフィボナッチレベルをプロットします。
作者: Nikolay Kositsin