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

 
Leo59 :

Print() kullanarak test cihazının günlüğüne bir şey yazdıramıyorum. Ve bunu nasıl yaparsın?

İşte EA'dan OnInit() kodu:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   SymbolSelect ( "EURJPY" , true );
   Print ( __FUNCTION__ , ", " , TimeToString ( TimeCurrent ()));
   SymbolSelect ( "USDJPY" , true );
//---
   return ( INIT_SUCCEEDED );
  }


Sonra bir kesme noktası belirledim (1. adım) ve geriye dönük teste başladım (2. adım):

OnInit()

ve test cihazında sonucu alıyorum:

2016.11 . 23 13 : 02 : 24.191 2016.06 . 13 00 : 00 : 00    OnInit , 2016.06 . 13 00 : 00
 

Vladimir Karputov :

Sonra bir kesme noktası belirledim (1. adım) ve geriye dönük teste başladım (2. adım):

Garip ama benim için "2" rakamıyla belirttiğiniz bu mavi buton aktif değil. MT4'te olduğum için olabilir mi?
 
Ancak, yine de, zaten böyle yazılmışsa:


İstemci terminalinin strateji test cihazında bazı işlevlerin çalışmasına ilişkin kısıtlamalar vardır.

Print() ve PrintFormat() Fonksiyonları

Performansı artırmak için, EA parametrelerini optimize ederken Print() ve PrintFormat() işlevleri yürütülmez. Bunun istisnası, bu işlevlerin OnInit() işleyicisi içinde kullanılmasıdır. Bu, ortaya çıktıklarında hataların nedenlerini bulmayı kolaylaştırır.


O zaman OnInit() işleyicisinin içindeki Print() işlevi neden her zamanki gibi çalışmıyor?

Ve genel olarak, optimizasyon modunda init () içindeki diğer kullanıcı tanımlı işlevler hakkında?
 
Leo59 :
Garip ama benim için "2" rakamıyla belirttiğiniz bu mavi buton aktif değil. MT4'te olduğum için olabilir mi?

Evet, bu yüzden TARİH üzerine herhangi bir Uzman Danışmanı özgürce test edebilirim, yani 2016.06.20'den 2016.11.11'e kadar bir dönem seçin ve sakince, adım adım hata ayıklayın, değişkenlerin değişimini gözlemleyin, ancak yapamazsınız. Bugün nasılsın.

Peki artık desteklenmeyen eski terminalde oturmaya devam etmeye değer mi? Veya belki de zaten modern MetaTrader 5 terminalini kullanmalısınız? Sonuçta, riskten korunma MetaTrader 5'te zaten ortaya çıktı:   MetaTrader 5 işlem platformu riskten korunma aldı .

 
Vladimir Karputov :

Evet, bu yüzden TARİH üzerine herhangi bir Uzman Danışmanı özgürce test edebilirim, yani 2016.06.20 ile 2016.11.11 arasında bir dönem seçebilir ve sakince, adım adım hata ayıklayabilir, değişkenlerin değişimini gözlemleyemezsiniz, ancak yapamazsınız . bunu yap .

Peki artık desteklenmeyen eski terminalde oturmaya devam etmeye değer mi? Veya belki de zaten modern MetaTrader 5 terminalini kullanmalısınız? Sonuçta, riskten korunma MetaTrader 5'te zaten ortaya çıktı:   MetaTrader 5 işlem platformu riskten korunma aldı .

Neden MT4'te sakince hata ayıklayabilirim ve sakince, adım adım hata ayıklayabilir, değişkenlerin değişimini gözlemleyebilirim? Neyi yanlış yapıyorum?
 
Artyom Trishkin :
Neden MT4'te sakince hata ayıklayabilirim ve sakince, adım adım hata ayıklayabilir, değişkenlerin değişimini gözlemleyebilirim? Neyi yanlış yapıyorum?
NE YAPIYORSUNUZ: Çok hızlı okumak veya kasıtlı olarak metni atlamak.
 
Sayın!!!!

Temel soru:

OnInit() işleyicisinin içindeki Print() işlevi neden her zamanki gibi çalışmıyor? Ve genel olarak, optimizasyon modunda init() içindeki diğer kullanıcı tanımlı işlevler ne olacak?

 
Leo59 :
Sayın!!!!

Temel soru:

OnInit() işleyicisinin içindeki Print() işlevi neden her zamanki gibi çalışmıyor? Ve genel olarak, optimizasyon modunda init() içindeki diğer kullanıcı tanımlı işlevler ne olacak?

Her şey yukarıda zaten açıklanmıştır. Çalıştı ve çalışıyor. Ve sana bir örnek verdi.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni Başlayanlardan Sorular

Vladimir Karputov , 2016.11.23 12:07

İşte EA'dan OnInit() kodu:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   SymbolSelect ( "EURJPY" , true );
   Print ( __FUNCTION__ , ", " , TimeToString ( TimeCurrent ()));
   SymbolSelect ( "USDJPY" , true );
//---
   return ( INIT_SUCCEEDED );
  }


Sonra bir kesme noktası belirledim (1. adım) ve geriye dönük teste başladım (2. adım):

OnInit()

ve test cihazında sonucu alıyorum:

2016.11 . 23 13 : 02 : 24.191 2016.06 . 13 00 : 00 : 00    OnInit , 2016.06 . 13 00 : 00

 
Vladimir Karputov :

Her şey zaten yukarıda açıklanmıştır. Çalıştı ve çalışıyor. Ve sana bir örnek verdi.


Vladimir, bir kesme noktası olan örneğinizde ve terminaldeki test cihazından değil MetaEditor'dan teste başlamak standart değildir.

Tekrarlıyorum:

1. OnInit() işleyicisinin içindeki Print() işlevi neden her zamanki gibi çalışmıyor?

2. Diğer kullanıcı tanımlı işlevler, optimizasyon modunda init()'te nasıl çalışır?

 
Leo59 :
Vladimir, bir kesme noktası olan örneğinizde ve terminaldeki test cihazından değil MetaEditor'dan teste başlamak standart değildir.

Tekrarlıyorum:

1. OnInit() işleyicisinin içindeki Print() işlevi neden her zamanki gibi çalışmıyor?

2. Diğer kullanıcı tanımlı işlevler, optimizasyon modunda init()'te nasıl çalışır?

Görünüşe göre terminali hiç açmamışsınız.

İşte EA'dan OnInit() kodu:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int   OnInit ()
  {
    SymbolSelect ( "EURJPY" , true );
    Print ( __FUNCTION__ , ", " , TimeToString ( TimeCurrent ()));
    SymbolSelect ( "USDJPY" , true );
//---
    return ( INIT_SUCCEEDED );
  }

Adım adım. Birinci adım - test cihazını görselleştirme ile geriye dönük test yaparak terminalden (tek geçiş) çalıştırın:

Aşama 1

Strateji test cihazında aşağıdaki sonucu alıyoruz:

Adım 2