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

 
Andrey Sokolov # :

Selamlar. Lütfen bana söyle. Başlatma veya kene sırasında MT5'te test nasıl tanımlanır?

Şimdiye kadar yalnızca OnDeinit( ) işlevine yapılan çağrıdan hemen önce çağrılan OnTester() öğesini buldum.

MQLInfoInteger(MQL_TESTER)

Bunun gibi bir şey.

 
Nerd Trader # :
last_time = iTime ( NULL , 0 , 0 );

   if (last_time > bar.time_open){
    bar.time_open = last_time;
    coint++;//стартовое значение -1
  }

Burada bir şeyler açıkça yanlış!

 

Niye ya?

 #property indicator_color1 clrIndianRed ;
#property indicator_color2 clrMagenta ;
#property indicator_color3 clrRed ;

extern color Cl1 = clrIndianRed ;
extern color Cl2 = clrMagenta ;
extern color Cl3 = clrRed ;

color sColor[] = { indicator_color1 , indicator_color2 , indicator_color3 }; // Так нормально
color sColor[] = {Cl1,Cl2,Cl3}; // Так ошибки 'Cl1' - constant expression required 

---

Giriş/harici dizelerden bir dizi toplamanın yolu nedir?

 
Vitaly Muzichenko # :

Niye ya?

---

Giriş/harici dizelerden bir dizi toplamanın yolu nedir?

Renkleri girdide bir dize olarak alın ve ardından dizeyi bir diziye ayırın.

Şimdi renklerin kodunu değiştirmek istemiyorum, kendin anlayacaksın. Bunun gibi bir diziye aktarılan karakterlerin bir listesi var

   string s_arr[]; // В этом массиве будет перечень нужных символов
   if ( StringSplit ( slist , ',' , s_arr) <= 0 )
   {
     Print ( __FUNCTION__ + " Error converting !" );
     return ;
   }

Bu, giriş değişkenindeki listedir.

 
Vitaly Muzichenko # :

Niye ya?

---

Giriş/harici dizelerden bir dizi toplamanın yolu nedir?

Alexey ile anlaşma

 extern string Colors = "clrIndianRed/clrMagenta/clrRed" ;
color sColor[];
//+------------------------------------------------------------------+
int OnInit ()
  {
   ushort sep  = StringGetCharacter ( "/" , 0 );
   string tempLevel[];
   int sz1  = StringSplit (Colors,sep,tempLevel);
   ArrayResize (sColor,sz1);
   for ( int i= 0 ; i<sz1; i++)
   {
    sColor[i] = StringToColor (tempLevel[i]); Print (i, " / " ,sColor[i]);
   }
//---
   return ( INIT_SUCCEEDED );
  }
 
Alexey Viktorov # :

Renkleri girdide bir dize olarak alın ve ardından dizeyi bir diziye ayırın.

Şimdi renklerin kodunu değiştirmek istemiyorum, kendin anlayacaksın. Bunun gibi bir diziye aktarılan karakterlerin bir listesi var

Bu, giriş değişkenindeki listedir.

Bu yöntemi biliyorum ama böyle olmayacak - listeden seçim yapmanın bir yolu yok


 

Şimdi renkler böyle, uygun değil ve parametre değişikliğini standart olarak uyguladıktan sonra rengi değiştiremememin nedenini bulamıyorum


 
Vitaly Muzichenko # :

Şimdi renkler böyle, uygun değil ve parametre değişikliğini standart olarak uyguladıktan sonra rengi değiştiremememin nedenini bulamıyorum


Sonra bu yüzden

 extern color Cl1 = clrIndianRed ;
extern color Cl2 = clrMagenta ;
extern color Cl3 = clrRed ;
string Colors = ColorToString (Cl1)+ "/" + ColorToString (Cl2)+ "/" + ColorToString (Cl3);
color sColor[];
//+------------------------------------------------------------------+
int OnInit ()
  {
   ushort sep  = StringGetCharacter ( "/" , 0 );
   string tempLevel[];
   int sz1  = StringSplit (Colors,sep,tempLevel);
   ArrayResize (sColor,sz1);
   for ( int i= 0 ; i<sz1; i++)
   {
    sColor[i] = StringToColor (tempLevel[i]); Print (i, " / " ,sColor[i]);
   }
//---
   return ( INIT_SUCCEEDED );
  }
 
MakarFX # :

Sonra bu yüzden

Harika, tam da ihtiyacın olan şey!

Teşekkür ederim!

PS Parametrelerin neden kaydedilmediğinin nedenini buldum, sonunda noktalı virgüller vardı, girdiden kopyalarken aldım - kaldırdım ve hepsi çalıştı. Dikkatsizlik.