Erros, bugs, perguntas - página 1933

 
fxsaber:
A diferença é superior a 1e-15. Além disso, num != Norma. São números diferentes, não os mesmos números.

O meu MT4 produz verdadeiro, verdadeiro e diferença 0. ;-)

 
Stanislav Korotky:

O meu MT4 produz verdadeiro, verdadeiro e diferença 0. ;-)

Formou-se uma forma indocumentada de distinguir o MT4/5. E a taxa de bits MT5 não tem nada a ver com isso.

 
fxsaber:

Formou-se uma forma indocumentada de distinguir o MT4/5. E o MT5 bitness não tem nada a ver com isso.

Além disso, em mql4 obras e em mql5 nem sequer o prefixo de operação documentado incremento(++i) e decremento (--k)

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Основы языка / Операции и выражения / Арифметические операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Excepto que em mql4 funciona, mas em mql5 nem sequer o prefixo de operação documentado incremento(++i) e decremento (--k)

Não vi nenhum problema

void OnStart()
{
  int i = 0;
  
  Print(i++ == 0); // true
  Print(++i == 2); // true
}
 
fxsaber:

Formou-se uma forma indocumentada de distinguir o MT4/5. E o MT5 bitness não tem nada a ver com isso.

Nem sequer é a diferença MT4/5, é se a #propriedade estrita é permitida.

Se for activado, serão diferentes, se não, não o serão.

Existem diferentes implementações de NormalizeDouble!
 

Em que casos é que a razão=0 pode ser transmitida ao OnDeinit nos indicadores?

 
fxsaber:
A diferença é superior a 1e-15. Além disso, Num != Norma. Estes são números diferentes, não os mesmos números.

E quanto ao grau zero? Os graus de 0 a -14 são um total de 15 dígitos. Um grau de -15 é o 16º grau. Penso que sim.

 
Stanislav Korotky:

E quanto ao grau zero? Os graus de 0 a -14 são um total de 15 dígitos. Um grau de -15 é o 16º grau. Penso que sim.

Ver quantos dígitos oDBL_MIN difere de zero.

 

A versão de lançamento do guião é quase 3 vezes mais lenta do que a versão Debug.

string  PositionGetString2( const ENUM_POSITION_PROPERTY_STRING  Property_id )
{
  return(PositionGetString(Property_id));
}

#define  TOSTRING(A) #A + " = " + (string)(A)

void OnStart()
{
  if (PositionSelect(_Symbol))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = 0; i < 1 e7; i++)
    {
      PositionGetString2(POSITION_SYMBOL);
      PositionGetString2(POSITION_COMMENT);
    }
    
    Print(TOSTRING(GetMicrosecondCount() - StartTime));
  }
}

Passos a dar

  1. Seleccionar EURUSD para depuração e abrir o seu gráfico no terminal.
  2. Abrir uma posição no EURUSD.
  3. Iniciar a versão de depuração em ME pressionando F5 e ver o resultado no registo.
  4. Recompilar para ME usando F7 - isto é muito importante, caso contrário EX5 será depurado.
  5. Executar o guião de lançamento a partir do terminal e visualizar os resultados registados.
Resultado da versão de depuração

GetMicrosecondCount()-StartTime = 638537


Resultado da versão de lançamento

GetMicrosecondCount()-StartTime = 1746492
 

Ao importar carraças para um símbolo tkc personalizado, os ficheiros tkc não são legíveis.