Discussão do artigo "Migrando do MQL4 para o MQL5" - página 5

 

E quanto ao OrderMagicNumber()? Obrigado pela ajuda

 
song_song:

E quanto ao OrderMagicNumber()? Agradecimentos

Consulte ORDER_MAGIC
 

A iBarShift() é fácil de usar, mas a iBarShiftMQL4() é bastante complexa. E assim por diante...

 

Por que "TickValue() e SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)" sempre retornam "0"?

 

Olá, Rosh:

Estou muito grato por você ter dito que: "Tenho planos de desenvolver o emulador MQL4, que permitirá que você execute seus programas MQL4 no novo terminal do cliente MetaTrader 5."

Eu não sou um bom designer de programas, mas um trader. MQL5 é muito difícil para mim.

Estou aguardando seu emulador MQL4. TKS um milhão!

Felicidades para você.

[Excluído]  

Encontrei um erro

Se apenas uma janela de gráfico estiver aberta. Então, o ID dessa janela de = -1

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
      if(currChart<0) break; 
      if(ChartSymbol(currChart)==symbol
         && ChartPeriod(currChart)==timeframe)
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }

-

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      currChart=ChartNext(prevChart);
        
      if( currChart<0 && currChart != -1) break;
        
      if(ChartSymbol(currChart)==symbol
        && ChartPeriod(currChart)==timeframe)
         
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }
 

Também tome cuidado com a precedência. Passei metade de um dia depurando uma lógica e descobri que a precedência de && e || é diferente entre MQL4 (|| primeiro) e MQL5 (&& primeiro). Portanto, ao migrar de MQL4 para MQL5, certifique-se de pesquisar todas as expressões de comparação.

Migrating from MQL4 to MQL5
  • 2010.05.17
  • Sergey Pavlov
  • www.mql5.com
This article is a quick guide to MQL4 language functions, it will help you to migrate your programs from MQL4 to MQL5. For each MQL4 function (except trading functions) the description and MQL5 implementation are presented, it allows you to reduce the conversion time significantly. For convenience, the MQL4 functions are divided into groups, similar to MQL4 Reference.
 
williamwong:

Também tome cuidado com a precedência. Passei meio dia depurando uma lógica e descobri que a precedência de && e || é diferente entre MQL4 (|| primeiro) e MQL5 (&& primeiro). Portanto, ao migrar de MQL4 para MQL5, certifique-se de pesquisar todas as expressões de comparação.

Você está certo. Consulte Regras de precedência:

Cada grupo de operações na tabela tem a mesma prioridade. Quanto mais alta for a prioridade das operações, mais alta será a posição do grupo na tabela. As regras de precedência determinam o agrupamento de operações e operandos.

Atenção: A precedência das operações na linguagem MQL5 corresponde à prioridade adotada em C++ e difere da prioridade dada na linguagem MQL4.

[Excluído]  
FinGeR:

Encontrei um erro

Se apenas uma janela de gráfico estiver aberta. Então, o ID dessa janela de = -1

-

Meu erro, é verdade. :)

int WindowHandleMQL4(string symbol,
                     int tf)
  {
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)
     {
      
         currChart=ChartNext(prevChart);
      if(i==0)currChart=prevChart; // Quando apenas um Chartfenster está disponível
  
      if( currChart<0) break;
        
      if(ChartSymbol(currChart)==symbol
        && ChartPeriod(currChart)==timeframe)
        
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }
 

Olá


Gostaria de saber se todas essas funções foram validadas, pois não consegui

fazer a função "CopyBufferMQL4" funcionar.


Obrigado


Noel