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

 

E aqui está o interessante que notei... Não prestei atenção a esta diferença.

Em mql4, se você escrever esta adição de cordas através da função StringConcatenate(), então você recebe

eStr+=StringConcatenate(i,": ",eArray[i],", ");

e em mql5 é apenas

StringConcatenate(eStr, i, ": ", eArray[i], ", ");
Talvez eu esteja erroneamente não usando esta............
 
Alexey Viktorov:

Não recomendo o uso desta função porque ela funciona de forma diferente na MQL5 do que na MQL4. Consequentemente, pode ser difícil de entender quando você muda para a MQL5


Mas talvez eu esteja errado...

mql4

mql5

Como você pode ver, o mql5 é muito semelhante à simples adição de cordas.

E a conversão do tipo ocorre nesta função sem qualquer preocupação adicional.

Sim, isso já foi discutido antes.

das três opções StringAdd() , StringConcatenate() e pluses,

Os custos são menos altos.

 
ANDREY:

Por que 1.6251 não podem ser amarrados tão explicitamente como i? É mais curto e economiza recursos computacionais..... me parece.

Obrigado pela explicação.

Porque tal conversão pode dar um valor de até 16 (se meu cérebro não tiver secado completamente) caracteres. E DoubleToString() "trims" o fio para o número especificado de casas decimais. Um número inteiro eu permanecerei um número inteiro, não importa como você o gire.

 
Alekseu Fedotov:

Sim, já foi discutido uma vez, não vou procurar por ele

das três opções StringAdd() , StringConcatenate() e pluses,

Os custos são menos altos.

Talvez... Mas eu não sou a favor de mexer em discrepâncias tão pequenas.
 
TrederMT5:

Mudou o código, ainda fora do alcance no mesmo local

Verifique se N na matriz
double price[N];

sempre leva valores válidos?
 

Você pode me dizer como fazer Print(), imprimir uma vez quando o valor mudar

      string symbol;
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            if(ChartSymbol(currChart)!=symbol)
              {
               symbol=ChartSymbol(currChart); Print(symbol);
              }
           } 
         currChart=ChartNext(currChart);  i++;
        }
 
MakarFX:

Diga-me como fazer Print(), imprimir uma vez quando o valor mudar

Contador

      string symbol;
      long currChart=ChartFirst(); int i=0;
      while(currChart>=0)
        {
         if(ChartGetInteger(currChart,CHART_BRING_TO_TOP,0)==true) 
           { 
            if(ChartSymbol(currChart)!=symbol)
              {
               i++;
               symbol=ChartSymbol(currChart); 
               if(i==1) Print(symbol);
              }
           } 
         currChart=ChartNext(currChart);
        }
 
Vitaly Muzichenko:

Ajustar o medidor

Obrigado
 
Vitaly Muzichenko:

Ajustar o medidor

Não funciona(
 
MakarFX:

Você pode me dizer como fazer Print(), imprimir uma vez quando o valor mudar

Eu gosto mais das opções booleanas

 if(Work==false) // Критическая ошибка
     {
      if(AlertWork==false)   // Если Алерта еще не было
        {  Alert("Critical error. The expert Advisor doesn't work."); AlertWork=true; }
      return;
     }