int bars=Bars(_Symbol,_Period);
if(bars>0)
{
Print("Количество баров в истории терминала по символу-периоду на данный момент = ",bars);
}
else//нет доступных баров
{
//--- видимо, данные по символу не синхронизированы с данными на сервереbool synchronized=false;
//--- счетчик циклаint attempts=0;
// сделаем 5 попыток дождаться синхронизацииwhile(attempts<5)
{
if(SeriesInfoInteger(Symbol(),0,SERIES_SYNCHRONIZED))
{
//--- есть синхронизация, выходим
synchronized=true;
break;
}
//--- увеличим счетчик
attempts++;
//--- подождем 10 миллисекунд до следующей итерацииSleep(10);
}
//--- вышли из цикла по факту синхронизацииif(synchronized)
{
Print("Количество баров в истории терминала по символу-периоду на данный момент = ",bars);
Print("Самая первая в истории терминала дата по символу-периоду на данный момент = ",
(datetime)SeriesInfoInteger(Symbol(),0,SERIES_FIRSTDATE));
Print("Самая первая дата в истории по символу на сервере = ",
(datetime)SeriesInfoInteger(Symbol(),0,SERIES_SERVER_FIRSTDATE));
}
//--- синхронизация данных так и не была достигнутаelse
{
Print("Не удалось получить количество баров на ",_Symbol);
}
}
一貫性を持つこと。を確認すると
を確認し
:)
このように、7つのペアのコードにこのような行が7つある場合、マーケットオーバービューには1つの通貨の相場しか表示されないことになります。
一貫性を持つこと。を確認すると
を確認し
:)
よりも優れています。
euSY01b>0同期を確認すると、1つの通貨にしか対応していない。一度に7通貨の分析が必要なのですが。
OnInit()の中で行う必要があります。
同期を確認すると、1つの通貨にしか対応していない。そして、すぐに7通貨を分析する必要があります。
そのため、ペアを最後に同期させた時刻を覚えておいて、それを参考にすることもできます。
また、SymbolInfoTick()でアスクとビッドの
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
ユーリー・レメシェフ, 2022.01.02 08:54
よりも、こちらの方が正しいです。
euSY01b>0true == true, result: true. and false == true, result: false :) のような感じです。
の場合、まさにこのような結果になります。
または
このようにすると、コード内に7つのペアのためのそのような行がある場合、市場の概要には1つの通貨の相場しか表示されません。
OnTickでBarsを呼び出してみる
https://www.mql5.com/ru/docs/series/bars
記事より
また、OnTickの価格への参照は、(サードパーティの文字が読み込まれるように)する必要があります。OnTickでBarsを呼び出してみる
https://www.mql5.com/ru/docs/series/bars
記事より
また、OnTickに価格への参照があるはずです(サードパーティのキャラクターが読み込まれるように)。の問題を解決するものではありません。
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b) は、正しく使用すると常に値が満たされるようになりました。なぜか、必要な記号の正しい値が来ない。そしてそれは、他の7つの通貨のうちの1つである前回受け取った値によって、明らかに埋められるのです。
解決策がなく、1ヶ月以上探しているこの解決策では、ただのバグテスタになってしまう気がします。開発者の皆さんは、この点に注意してください。バグであれば修正するOnInit()の中で行う必要があります。
しかし、私のマルチシンボル・インジケータの1つをテストすると、入力パラメータの文字列からシンボルのリストがOnInitでロードされ、それらの価格がOnCalculateでアクセスされます。 さらに、Market Watchからシンボルをロードするように設定すると、テスターには1つの基本シンボルだけが表示されます。