MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1461

 
Test cihazındaki MT4'te, gösterge için durdurma düğmesine basılmasının nasıl izleneceği. Test bitse bile OnDeInit çağrılmaz. Veya test cihazında durdur düğmesine tıkladığınızda açık dosyaları nasıl kapatacağınızı.
 
Valeriy Yastremskiy :
Test cihazındaki MT4'te, gösterge için durdurma düğmesine basılmasının nasıl izleneceği. Test bitse bile OnDeInit çağrılmaz. Veya test cihazında durdur düğmesine tıkladığınızda açık dosyaları nasıl kapatacağınızı.

açık dosyalar hala otomatik olarak kapanmalıdır

kapatılmazsa, SB'nin yardımıyla dosyalar oluşturmaya çalışın, OOP biçiminde CFile, CFileTxt var - nesneler başlatma sırasında tam olarak yok edilecek ve yıkıcılar dosyaları kapatacak

https://www.mql5.com/ru/docs/standardlibrary/fileoperations


Not: Neden OnDeinit()'in çağrılmadığına karar verdiniz? - içindeki dosyayı açmayı deneyin ve yazın

 
Igor Makanu :

açık dosyalar hala otomatik olarak kapanmalıdır

kapatılmazsa, SB'nin yardımıyla dosyalar oluşturmaya çalışın, OOP biçiminde CFile, CFileTxt var - nesneler başlatma sırasında tam olarak yok edilecek ve yıkıcılar dosyaları kapatacak

https://www.mql5.com/ru/docs/standardlibrary/fileoperations


Not: Neden OnDeinit()'in çağrılmadığına karar verdiniz? - içindeki dosyayı açmayı deneyin ve yazın

Tecrübe ile. Ben kendim şaşırdım. Mantıken her şey doğru olsa da bu bir göstergedir ve bir danışman gibi boş bırakılmamalıdır. Göstergeyi test tablosundan manuel olarak kaldırmanız veya pencereyi kapatmanız gerekir. Ve ancak o zaman dosyaları kapattıktan sonra Uyarıları görüyorum)))

Testler basit, İncil kullanmak istemiyorum. Evet ve gösterge test cihazındaki durdurma düğmesinde fare olaylarından başka bir şey olduğunu düşünüyorum. Yüzeysel kesim araması maalesef vermedi.

Not, dosyalar kapatılmazsa, bunlara erişim yoktur ve OnDeinit () aniden çalışmazsa, yalnızca terminal kapatıldığında kapatılırlar.

Tecrübeli bir yol, dosyaların kapanışını yazmayı unutmuşum)))

 
Valeriy Yastremskiy :

Tecrübe ile. Ben kendim şaşırdım. Mantıken her şey doğru olsa da bu bir göstergedir ve bir danışman gibi boş bırakılmamalıdır. Göstergeyi test tablosundan manuel olarak kaldırmanız veya pencereyi kapatmanız gerekir. Ve ancak o zaman dosyaları kapattıktan sonra Uyarıları görüyorum)))

Testler basit, İncil kullanmak istemiyorum. Evet ve gösterge test cihazındaki durdurma düğmesinde fare olaylarından başka bir şey olduğunu düşünüyorum. Yüzeysel kesim araması maalesef vermedi.

Not, dosyalar kapatılmazsa, bunlara erişim yoktur ve OnDeinit () aniden çalışmazsa, yalnızca terminal kapatıldığında kapatılırlar.

Tecrübeli bir yol, dosyaların kapanışını yazmayı unutmuşum)))

Göstergeyi test etme sürecinin tamamını daha önce açıklamadınız.

Anladığım kadarıyla, MT4 test cihazındaki göstergeyi görsel modda başlatıyorsunuz, ancak görselleştiricide MT4'e başka bir gösterge ekleyebilirsiniz.....

genel olarak, MT4'te göstergeleri hiç test etmedim, EA'yı hemen TS kodunda kontrol ediyorum


bir seçenek olarak, testi bitirdiğiniz tarihi göstergede bir değişken olarak ayarlayın ve bu tarihe ulaşıldığında, dosyayı kaydedin ve OnCalculate()'den çıkın - birkaç satır kod, ancak kesinlikle işe yarayacaktır.

 
Igor Makanu :

Göstergeyi test etme sürecinin tamamını daha önce açıklamadınız.

Anladığım kadarıyla, MT4 test cihazındaki göstergeyi görsel modda başlatıyorsunuz, ancak görselleştiricide MT4'e başka bir gösterge ekleyebilirsiniz.....

genel olarak, MT4'te göstergeleri hiç test etmedim, EA'yı hemen TS kodunda kontrol ediyorum


bir seçenek olarak, testi bitirdiğiniz tarihi göstergede bir değişken olarak ayarlayın ve bu tarihe ulaşıldığında, dosyayı kaydedin ve OnCalculate()'den çıkın - birkaç satır kod, ancak kesinlikle işe yarayacaktır.

Evet, test cihazı penceresi, göstergenin test edilip edilmediğini veya göstergenin test cihazı penceresinin üzerine atıldığını umursamaz.

Böyle bariz olmayan bir koltuk değneği için teşekkür ederim)

bool Testing ();

denemek zorundasın, dur durak yalan söylemeli gibi görünüyor)
 
Valeriy Yastremskiy :

Evet, test cihazı penceresi, göstergenin test edilip edilmediğini veya göstergenin test cihazı penceresinin üzerine atıldığını umursamaz.

Böyle bariz olmayan bir koltuk değneği için teşekkür ederim)

bool Testing ();

denemek zorundasın, dur durak yalan söylemeli gibi görünüyor)

hayır dönmedi

Genel olarak, soru açıktır, gösterge testinde 2021.04.29 08:55:41.177 olayı nasıl izlenir 2020.10.01 08:23:13 Test cihazı: durdurma düğmesine basıldı

öyle yaptı)

 int OnInit ()
{
if (IsTesting()) FlagTest= true ;
....
}

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {

if (!IsTesting() && FlagTest) { Print ( "Окончание тестирования" ); OnDeinit ( 1 );}
....
}

 
Igor Makanu :

Metaquot'daki makalelerde ara: " Bulut "

Uzun zaman önce, uzak aracıların bilgisayarınızdan geçmişi indirmesi gerektiğini veya aynı aracıya bağlılarsa aracıdan gerçek onaylar aldıklarını okudum.


ama yanılmış olabilirim, kullanmadım.


Metaquotes'dan bu konuyla ilgili makalelerden biri, belki bilgi vardır https://www.mql5.com/ru/articles/2612

Igor, teşekkürler. Dokümantasyon, forum, makaleler - Henüz cevabı bulamadım.

Günlükte şunlar bulunur:

"REGRES_EURGBP: zaten senkronize edilmiş keneler [57 bayt]"

Umarım ihtiyacın olan budur.

 
Valeriy Yastremskiy :

hayır dönmedi

Genel olarak, soru açıktır, gösterge testinde 2021.04.29 08:55:41.177 olayı nasıl izlenir 2020.10.01 08:23:13 Test cihazı: durdurma düğmesine basıldı

öyle yaptı)


şöyle bir şey yazmanız gerekiyor:

 datetime t_stop= D'20.04.2021' ; 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
if (time[ 0 ]>=t_stop)
{
         if (f_handle< 0 ) return ;
         FileClose (f_handle);
        f_handle = - 1 ;
}
MT4'ün son gün (bugün) test verdiğini hatırlamıyorum - t_stop'u almanız gerekiyor
 
HimOrik :

Igor, teşekkürler. Dokümantasyon, forum, makaleler - Henüz cevabı bulamadım.

Günlükte şunlar bulunur:

"REGRES_EURGBP: zaten senkronize edilmiş keneler [57 bayt]"

Umarım ihtiyacın olan budur.

moderatörler sessiz, az sayıda aktif kullanıcı var

genel tartışmada sorunuzla konu açın bence sorunuzu daha hızlı çözersiniz

 
Igor Makanu :

şöyle bir şey yazmanız gerekiyor:

MT4'ün son gün (bugün) test verdiğini hatırlamıyorum - t_stop'u almanız gerekiyor

Bu fikri anladım, faydalı ama bu durumda bana uymuyor. Göstergede tespit etmem gerekiyor   Test cihazı: durdurma düğmesine basıldı