Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1021

 
Vladimir Karputov:

Eu não estava a ameaçar ninguém. Está a sonhar.

Também misturou MQL5 e MQL4. O código MQL5 são ficheiros com extensão .mq5.

Eu não ameacei ninguém, mas fiz uma observação, é uma frase bem humorada :-)

Estava aqui a citar o código cinco, talvez me tenham confundido com outra pessoa.

 
psyman:

Não quero ameaçar, mas repreender, é uma reprimenda bem humorada :-)

Estava aqui a citar o código cinco, talvez me tenham confundido com outra pessoa.

Dois passos:

comparar os números 4 e 5. Encontrar a diferença.

Percorram os vossos postos e vejam o número.


E, em geral, este tópico é sobre a MQL5, pare de se queixar de estar aqui.

 

Amigos, pode ajudar com uma função que seleccionaria os caracteres das posições abertas e os guardaria numa matriz. Não pareço ter problemas com isso, mas não me consigo livrar das duplicatas se houver várias posições em aberto.

 
Alexander Mikryukov:

Amigos, pode ajudar com uma função que seleccionaria os caracteres das posições abertas e os guardaria numa matriz. Não pareço ter problemas com isso, mas não me consigo livrar de duplicados quando há múltiplas posições em aberto.

Aqui, reescreva-o para mql5

  for(int i=0; i<OrdersTotal(); i++) {
   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if(OrderType()<2) {
     if(ArraySearchStr(symbols, OrderSymbol())==-1) {
      b++;
       ArrayResize(symbols,b+1);
       symbols[b]=OrderSymbol();
  }}}}

//===============================================================================================
//------------------------------ Функция удаляет копии с массива -------------------------------+
//===============================================================================================
int ArraySearchStr(string& m[], string e) {
  for(int i=0; i<ArraySize(m); i++) {
   if(m[i]==e) return(i);
  }
  return(-1);
 }
 
Vitaly Muzichenko:

Aqui, para mql5, reescreva-o você

Obrigado.

 

Ajude-me a compreender algo que não compreendo.

      for(int p = 0; p < InpShiftCorrection; p++) prs += pressureDetermination(open[i],close[i],high[i],low[i]);
      prs /= InpShiftCorrection;
      prs *= (high[i] - low[i]);
      Print(NormalizeDouble(prs,Digits()));

A questão é: porque é que a impressora de normalização produz tais disparates?

2019.03.29 22:53:29.310 2019.01.02 06:01:21   -0.00025
2019.03.29 22:53:29.310 2019.01.02 06:01:21   0.00012
2019.03.29 22:53:29.310 2019.01.02 06:01:21   8.000000000000001 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -9.000000000000001 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -9.000000000000001 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   5 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -4 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   0.00017
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -8.000000000000001 e-05
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -0.00052
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -0.00029
2019.03.29 22:53:29.310 2019.01.02 06:01:21   -0.00114
2019.03.29 22:53:29.310 2019.01.02 06:01:21   0.00123
 
Сергей Таболин:

Ajude-me a compreender algo que não compreendo.

A questão é: porque é que a impressora de normalização produz tais disparates?

Print(NormalizeDouble(prs,Digits()));
Print(DoubleToString(prs,Digits()));
 
Vitaly Muzichenko:

Vou tentar. Obrigado. Mas até agora, esta mesma tipografia tem dado valores exclusivamente correctos...

 
Сергей Таболин:

Vou tentar. Obrigado. Mas até agora, esta mesma impressão produziu valores excepcionalmente correctos...

Ele elogiou-o)

 
Vitaly Muzichenko:

Ele estava a lisonjeá-lo))

Aparentemente assim )))) Funcionou.