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 );
}
}
ayrıca OnTick'te fiyatlara bir referans olmalıdır (böylece üçüncü taraf sembolleri yüklenir).
ayrıca OnTick'te fiyatlara bir referans olmalıdır (böylece üçüncü taraf sembolleri yüklenir).
Bu orijinal sorunu çözmez
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b) doğru kullanıldığında her zaman bir değerle doldurulur. Nedense istenilen karakter için doğru değer gelmiyor. Ve doldurma, görünüşe göre, alınan önceki değere göre gerçekleşir ve bu, diğer yedi para biriminden birinin değeridir.
Çözüm yoksa ve bir aydan fazla süredir bu çözümü arıyorsam, bunun sadece bir test hatası olduğunu hissediyorum. Geliştiriciler lütfen buna dikkat edin. Bu bir hataysa düzeltin
tam olarak hatırlamıyorum. ancak çok karakterli göstergelerimden birini test ettiğimde, giriş parametrelerindeki dizedeki karakter listesi OnInit'e yükleniyor. ve fiyatlarına OnCalculate'den erişilebilir. Ayrıca ayarlarda Market Watch'tan sembollerin yüklenmesini ayarladığımda test cihazında sadece bir ana sembol görünüyor. Robotları bilmem ama bence orada her şey aynı.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Tutarlı ol. kontrol edersen
sonra kontrol edin ve
:)
Bunu yaparsanız ve kodda yedi çift için bu tür 7 satır varsa, piyasa incelemesi yalnızca bir para birimi için teklifler içerecektir.
Tutarlı ol. kontrol edersen
sonra kontrol edin ve
:)
Sadece çok daha iyi
euSY01b> 0Senkronizasyonu kontrol ederseniz, yalnızca bir para birimi için çalışır. Ve şu anda 7 para birimini analiz etmem gerekiyor.
OnInit() içinde yapmanız gerekenler
Senkronizasyonu kontrol ederseniz, yalnızca bir para birimi için çalışır. Ve şu anda 7 para birimini analiz etmem gerekiyor.
Bir koltuk değneği olarak, çiftin en son ne zaman senkronize edildiğini hatırlamaya çalışabilir ve bunun üzerine inşa edebilirsiniz.
Ayrıca, istemek ve teklif vermek için SymbolInfoTick()'i kullanabilirsiniz.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
Yuri Lemeshev , 2022.01.02 08:54
Sadece çok daha iyi
euSY01b> 0true == true, sonuç: true gibi. ve false == true, sonuç: false :)
bu sonuç, eğer alırsa
veya
Bunu yaparsanız ve kodda yedi çift için bu tür 7 satır varsa, piyasa incelemesi yalnızca bir para birimi için teklifler içerecektir.
OnTick'te Barları aramayı deneyin
https://www.mql5.com/ru/docs/series/bars
makaleden:
ayrıca OnTick'te fiyatlara bir referans olmalıdır (böylece üçüncü taraf sembolleri yüklenir).OnTick'te Barları aramayı deneyin
https://www.mql5.com/ru/docs/series/bars
makaleden:
ayrıca OnTick'te fiyatlara bir referans olmalıdır (böylece üçüncü taraf sembolleri yüklenir).Bu orijinal sorunu çözmez
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b) doğru kullanıldığında her zaman bir değerle doldurulur. Nedense istenilen karakter için doğru değer gelmiyor. Ve doldurma, görünüşe göre, alınan önceki değere göre gerçekleşir ve bu, diğer yedi para biriminden birinin değeridir.
Çözüm yoksa ve bir aydan fazla süredir bu çözümü arıyorsam, bunun sadece bir test hatası olduğunu hissediyorum. Geliştiriciler lütfen buna dikkat edin. Bu bir hataysa düzeltinOnInit() içinde yapılması gerekenler
tam olarak hatırlamıyorum. ancak çok karakterli göstergelerimden birini test ettiğimde, giriş parametrelerindeki dizedeki karakter listesi OnInit'e yükleniyor. ve fiyatlarına OnCalculate'den erişilebilir. Ayrıca ayarlarda Market Watch'tan sembollerin yüklenmesini ayarladığımda test cihazında sadece bir ana sembol görünüyor. Robotları bilmem ama bence orada her şey aynı.