Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 76

 
FinEngineer : sadece bir hata kaldı 2012.12.22 00:56:44 Pair_delta_RSI (EURGBP,M1) RSI1_Handle'ın tüm verileri hesaplanmaz (-1bars). Hata4806

Bu hata derleme sırasında değil, göstergeyi grafiğe bağladığımda veya zaman dilimini değiştirdiğimde ortaya çıkıyor.

Bu hata mesajı her zaman görünüyor mu yoksa zamanla kayboluyor mu?

 
Çocuklar! MT5 herhangi bir DC'ye bağlanabilir mi?
 
net :
Çocuklar! MT5 herhangi bir DC'ye bağlanabilir mi?

Numara. MT5 üzerinden alım satım yapmak, örneğin VTB24 ve Alfa Forex gibi bu platform üzerinden alım satım yapma imkanı sağlayan broker aracılığıyla mümkündür.

Условия для трейдеров
  • www.alfa-forex.ru
Если у вас уже есть опыт работы на валютном рынке, то вы по достоинству оцените преимущества работы с Альфа-Форекс Самые узкие спреды на рынке: EUR/USD — от 0,7 пункта Отсутствие минимального депозита Быстрый ввод и вывод средств Исполнение ордеров без проскальзываний и реквот Альфа-Форекс входит в банковскую группу в составе Консорциума...
 
Yedelkin :

Bu hata mesajı her zaman görünüyor mu yoksa zamanla kayboluyor mu?

Bir keresinde göstergeyi grafiğe bağladığımda...
 
Yedelkin :

Bu hata mesajı her zaman görünüyor mu yoksa zamanla kayboluyor mu?

2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) dizi 'Pair_delta_RSI.mq5' içinde aralık dışında (92,37)
böyle bir hatanın da ortaya çıktığı ortaya çıktı ... yani. iki hata...
 
Yedelkin :

Bu hata mesajı her zaman görünüyor mu yoksa zamanla kayboluyor mu?

Alphaforex terminalinde denedim, sadece alpari terminalinde denedim, aynı hata...
 

FinEngineer :

Yedelkin : Bu hata mesajı sürekli mi çıkıyor yoksa zamanla kayboluyor mu?

Bir keresinde göstergeyi grafiğe bağladığımda...

O zaman harika gidiyorsun. Programı grafiğe bağladığınızda veya zaman çerçevesini değiştirdiğinizde, terminalde RSI göstergesi veya başka herhangi bir yeni hesaplanmış veri yoktur. Ve terminalin gerekli gösterge arabelleklerini hesaplaması için biraz zamana ihtiyacı var. Kodunuza dikkatlice bakın (birinin modeline göre yazıldığını anlıyorum, ancak yine de): RSI için yeterli hesaplanmış veri yoksa , OnCalculate() işlevi çalışmasını durdurur ('return(0);') ve bekler yeni bir tik için. RSI için gösterge arabellekleri bir sonraki tikte tamamen hesaplanır hesaplanmaz, göstergeniz normal modda çalışmaya başlayacaktır. Neler oluyor, sözlerine bakılırsa.

OnInit() işlevine BarsCalculated() ile bir kontrol de ekleyebilirsiniz - bu durumda hata çok nadiren ortaya çıkar (eğer varsa). BarsCalculated() işlevinin açıklamasında bir örnek verilmiştir.

 
FinEngineer : 2012.12.22 11:40:32 Pair_delta_RSI (EURGBP,M1) dizi 'Pair_delta_RSI.mq5' içinde aralık dışında (92,37)
böyle bir hatanın da ortaya çıktığı ortaya çıktı ... yani. iki hata...
Dün size bu hatayı yazdım. ( Kodu doğru yapıştırmayı unutmayın :) )
 
Yedelkin :
Dün size bu hatayı yazdım. (Kodu doğru yapıştırmayı unutmayın :) )

Yetersiz veriden sorumlu olan bir kod parçası kaldırıldı (aşağıda)

int hesaplanmış=ÇubuklarHesaplanmış(RSI1_Handle);

if(hesaplanmış<oran_toplam)

{

Print("RSI1_Handle'ın tüm verileri hesaplanmadı (",hesaplandı,"bars . Error", GetLastError() );

dönüş(0);

}

hesaplanmış=BarlarHesaplanmış(RSI2_Handle);

if(hesaplanmış<oran_toplam)

{

Print("RSI2_Handle'ın tüm verileri hesaplanmadı (",hesaplandı,"bars . Error",GetLastError());

dönüş(0);

Bir mesajdaki kod parçalarını nasıl vurgulayacağımı söyle?

Şimdi hata çıkıyor:

2012.12.22 15:14:00 Pair_delta_RSI (EURGBP,M1) RSI1 alınamadı! Hata4806

 
FinEngineer : Bir mesajdaki kod parçalarını nasıl vurgulayacağımı söyle?

Kodu doğru yapıştırın .

FinEngineer : Yetersiz veriden sorumlu bir kod parçası kaldırıldı (aşağıda)
   int calculated= BarsCalculated (RSI1_Handle);
   if (calculated<rates_total)
     {
       Print ( "Not all data of RSI1_Handle is calculated (" ,calculated, "bars ). Error" , GetLastError ());
       return ( 0 );
     }
   calculated= BarsCalculated (RSI2_Handle);
   if (calculated<rates_total)
     {
       Print ( "Not all data of RSI2_Handle is calculated (" ,calculated, "bars ). Error" , GetLastError ());
       return ( 0 );

Evet, orada sizin için iyi çalıştı, bu "veri eksikliğinden sorumlu olan kod parçası". Ve ilk kene geldiğinde, RSI verilerinin henüz terminal tarafından hesaplanmadığını doğru bir şekilde bildirdi. Hata mesajları almaktan hoşlanmıyorsanız, yukarıda belirtildiği gibi yapmayı deneyin, yani: sadece OnCalculate()'de değil, aynı zamanda OnInit()'te de hesaplanmış verilerin varlığını kontrol edin. Başka bir deyişle, seçtiğiniz teknik göstergeler için verilerin hesaplanması için OnInit() içinde beklemeye çalışın (son döngü boyunca bekleyin) ve ardından göstergeler için veriler olduğunda OnCalculate() içindeki onay işaretlerinin işlenmesine devam edin. hesaplanacağını garanti eder.

Ek. Sonunda, doğrulama kodunun bir kısmının kaldırılması, hesaplanan gösterge verilerinin miktarını artırmaya hiç katkıda bulunmaz :)