Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1755

 
Andrey Sokolov #:

Saudações. Você pode me dar uma dica? Como em mt5 na inicialização ou no tick para definir os testes?

Até agora só encontrei OnTester(), que é chamado logo antes de OnDeinit().

MQLInfoInteger (MQL_TESTER).

Algo parecido com isto.

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

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

Obviamente há algo de errado aqui!

 
Alekseu Fedotov agradece a você
 

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 

---

Qual é a melhor maneira de construir uma matriz a partir de cordas de entrada/externa?

 
Vitaly Muzichenko #:

Por quê?

---

Qual é a melhor maneira de construir uma matriz a partir de uma cadeia de entrada/externa?

Colocar as cores como um fio na entrada e depois separar o fio em uma matriz.

Eu não quero colocar nenhum código de cores agora, você mesmo vai descobrir. Tenho uma lista de personagens transferidos para uma matriz como esta

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

Esta é uma lista em variável de entrada.

 
Vitaly Muzichenko #:

Por quê?

---

Qual é a maneira de construir uma matriz a partir de cordas de entrada/externa?

Eu concordo com 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 #:

Insira as cores como uma corda na entrada e depois divida a corda em uma matriz.

Eu não quero passar código para cores agora, você mesmo pode descobrir. Tenho uma lista de caracteres transferidos para uma matriz como esta

Esta é a lista na variável de entrada.

Eu sei disso, mas não vai funcionar - não há como selecionar da lista


 

Neste momento as cores são assim, não é conveniente, e não consigo encontrar uma razão pela qual não posso mudar a cor, depois de aplicar as configurações para mudar para o padrão


 
Vitaly Muzichenko #:

Neste momento as cores são assim, não é conveniente, e não consigo encontrar uma razão para não poder mudar a cor, uma vez aplicados os parâmetros mudam para o padrão


Então é assim

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

É isso aí, então.

Ótimo, exatamente o que eu preciso!

Obrigado!

P.S. Encontrou a razão pela qual os parâmetros não foram salvos, havia ponto-e-vírgula no final, foi pego ao copiar da entrada - removido e tudo funcionou. Desatenção.