Discussione sull’articolo "Migrazione da MQL4 a MQL5" - pagina 5

 

Che ne dite di OrderMagicNumber()? Grazie

 
song_song:

Che ne dite di OrderMagicNumber()? Grazie

Vedere ORDINE_MAGICO
 

iBarShift() è facile da usare, ma iBarShiftMQL4() è piuttosto complesso. E così via...

 

Perché sia "TickValue() che SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE)" restituiscono sempre "0"?!

 

Ciao, Rosh:

Mi fa molto piacere che tu abbia detto che:" Ho in programma di sviluppare l'emulatore MQL4, che vi permetterà di eseguire i vostri programmi MQL4 nel nuovo terminale client MetaTrader 5".

Non sono un buon progettista di programmi, ma un trader. MQL5 è troppo difficile per me.

Aspetto il vostro emulatore MQL4. TKS un milione!

I migliori auguri per voi.

 

Ho trovato un errore

Se è aperta solo una finestra del grafico. Allora l'ID di questa finestra di = -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);
  }
 

Inoltre, fate attenzione alla precedenza. Ho passato mezza giornata a fare il debug di una logica e ho scoperto che la precedenza di && e || è diversa tra MQL4 (|| prima) e MQL5 (&& prima). Quindi, nella migrazione da MQL4 a MQL5, assicuratevi di cercare tra tutte le espressioni di confronto.

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:

Inoltre, fate attenzione alla precedenza. Ho passato mezza giornata a fare il debug di una logica e ho scoperto che la precedenza di && e || è diversa tra MQL4 (|| prima) e MQL5 (&& prima). Quindi, nella migrazione da MQL4 a MQL5, assicuratevi di cercare tra tutte le espressioni di confronto.

Hai ragione. Vedere Regole di precedenza:

Ogni gruppo di operazioni nella tabella ha la stessa priorità. Più alta è la priorità delle operazioni, più alta è la posizione del gruppo nella tabella. Le regole di precedenza determinano il raggruppamento delle operazioni e degli operandi.

Attenzione: La precedenza delle operazioni nel linguaggio MQL5 corrisponde alla priorità adottata in C++ e differisce dalla priorità data nel linguaggio MQL4.

 
FinGeR:

Ho trovato un errore

Se è aperta solo una finestra del grafico. Allora l'ID di questa finestra di = -1

-

Errore mio, è vero. :)

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; // Se non c'è solo un cartomante, è
  
      if( currChart<0) break;
        
      if(ChartSymbol(currChart)==symbol
        && ChartPeriod(currChart)==timeframe)
        
         return((int)currChart);
      prevChart=currChart;
      i++;
     }
   return(0);
  }
 

Salve


Mi farebbe piacere sapere se tutte queste funzioni sono state convalidate, io non sono riuscito a

a far funzionare la funzione "CopyBufferMQL4".


Grazie


Noel