Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1755

 
Andrey Sokolov #:

Saludos. ¿Puedes darme una pista? ¿Cómo en mt5 en la inicialización o en la garrapata para definir las pruebas?

Hasta ahora sólo he encontrado OnTester(), que se llama justo antes de OnDeinit().

MQLInfoInteger (MQL_TESTER).

Algo así.

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

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

Obviamente hay algo mal aquí.

 
Alekseu Fedotov gracias
 

¿Por qué?

#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 

---

¿Cuál es la mejor manera de construir un array a partir de cadenas de entrada/externas?

 
Vitaly Muzichenko #:

¿Por qué?

---

¿Cuál es la mejor manera de construir un array a partir de una cadena de entrada/externa?

Poner los colores como una cadena en la entrada y luego separar la cadena en una matriz.

No quiero poner ahora ningún código para los colores, ya lo descubrirás tú mismo. Tengo una lista de caracteres transferida a un array así

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

Se trata de una lista en la variable de entrada.

 
Vitaly Muzichenko #:

¿Por qué?

---

¿Cuál es la forma de construir un array a partir de cadenas de entrada/externas?

Estoy de acuerdo con Alexei.

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 #:

Introduce los colores como una cadena en la entrada y luego divide la cadena en un array.

No quiero pasar el código para los colores ahora, puedes averiguarlo tú mismo. Tengo una lista de caracteres transferidos a un array así

Esta es la lista en la variable de entrada.

Conozco esta manera, pero no funciona - no hay manera de seleccionar de la lista


 

Ahora mismo los colores están así, no es conveniente, y no encuentro la razón por la que no puedo cambiar el color, después de aplicar el cambio de configuración a estándar


 
Vitaly Muzichenko #:

Ahora mismo los colores están así, no es conveniente, y no encuentro una razón por la que no pueda cambiar el color, una vez aplicados los parámetros cambian al estándar


Entonces es así

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 #:

Eso es todo, entonces.

Genial, justo lo que necesito.

Gracias.

P.D. Encontré la razón por la que los parámetros no se guardaban, había puntos y comas al final, se engancharon al copiar desde la entrada - se eliminaron y todo funcionó. La falta de atención.


Razón de la queja: