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

 
Trintoro:

Mi piace questo articolo.

la tua idea di fare l'emulatore mt4, molto buona...

Sono d'accordo con Trintoro. Questo articolo non riguarda la migrazione, ma piuttosto l'emulazione. Sono molto preoccupato per la velocità di esecuzione, soprattutto dopo aver letto questo articolo e la risposta di Rosh a questo argomento. Penso che quello che è successo a questo argomento, è che l'utente pensa ancora in MQL4 tipo un modo. Forse per abitudine, quindi non posso biasimarlo.

È meglio imparare da poco e scrivere tutto da poco direttamente in mql5 piuttosto che usare i comandi suggeriti da questo articolo.

Tuttavia, è bene conoscere le differenze che questo articolo ha mostrato.

BTW. Per mia abitudine:

1. Premendo F5 (o F7, ma lo uso raramente) in MQL4 MetaEditor si compila, in MQL5 MetaEditor è F7 per compilare, F5 per avviare / riprendere il debug.

2. In MQL4 MetaEditor, premendo Esc, si mostra/nasconde la finestra Toolbox, in MQL5 MetaEditor non succede mai nulla.

Migrazioni che sono fastidiose per me :)

 
Grazie!!!!!! Un lavoro fantastico, massiccio, molto necessario e utile!!!! Anche con i suoi singoli difetti, è molto utile quando si traduce un robot da una lingua all'altra. Non sto parlando di una traduzione completamente a stringhe, no, solo quando si guarda il robot nella quarta, e non si sa dove nell'aiuto della quinta per cercare questo che non si compila, diciamo... E qui si possono trovare le spiegazioni in dettaglio!!! È molto necessario e utile!
 

Potreste dirmi quale codice in MQL5 può essere utilizzato per ottenere lo stesso risultato di MQL4?

double AccountFreeMarginCheck(string symbol,
                              int cmd,
                              double volume)
Nessun analogo
AccountFreeMarginCheck
Restituisce l'importo dei fondi liberi che rimarranno dopo l'apertura della posizione specificata al prezzo corrente sul conto corrente.
AccountFreeMarginCheck - Документация на MQL4
  • docs.mql4.com
AccountFreeMarginCheck - Документация на MQL4
 
solandr:

Potreste dirmi quale codice in MQL5 può essere utilizzato per ottenere lo stesso risultato di MQL4?

...
Guardare le funzioni OrderCalcProfit(...) e OrderCalcMargin(...) .
 

iBarShift errato.

Per saperne di più https://www.mql5.com/ru/forum/11243/

 

Cari ragazzi,

Ho chiamato la funzione sottostante nel mio indicatore. Ma ho ricevuto 7 messaggi di avvertimento. posso migliorare la funzione sottostante, in modo da non mostrare il messaggio di avvertimento:

double MarketInfoMQL4(string symbol,
                      int type)
  {
   switch(type)
     {
      case MODE_LOW:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
      case MODE_HIGH:
         return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
      case MODE_TIME:
         return(SymbolInfoInteger(symbol,SYMBOL_TIME));
      case MODE_BID:
         //ritorno(Bid);
      case MODE_ASK:
         //ritorno(Ask);
      case MODE_POINT:
         return(SymbolInfoDouble(symbol,SYMBOL_POINT));
      case MODE_DIGITS:
         return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
      case MODE_SPREAD:
         return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
      case MODE_STOPLEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
      case MODE_LOTSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
      case MODE_TICKVALUE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
      case MODE_TICKSIZE:
         return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
      case MODE_SWAPLONG:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
      case MODE_SWAPSHORT:
         return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
      case MODE_STARTING:
         return(0);
      case MODE_EXPIRATION:
         return(0);
      case MODE_TRADEALLOWED:
         return(0);
      case MODE_MINLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
      case MODE_LOTSTEP:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
      case MODE_MAXLOT:
         return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
      case MODE_SWAPTYPE:
         return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
      case MODE_PROFITCALCMODE:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
      case MODE_MARGINCALCMODE:
         return(0);
      case MODE_MARGININIT:
         return(0);
      case MODE_MARGINMAINTENANCE:
         return(0);
      case MODE_MARGINHEDGED:
         return(0);
      case MODE_MARGINREQUIRED:
         return(0);
      case MODE_FREEZELEVEL:
         return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));

      default: return(0);
     }
   return(0);
  }
 
advali82:

Cari ragazzi,

Ho chiamato la funzione sottostante nel mio indicatore. Ma ho ricevuto 7 messaggi di avvertimento. posso migliorare la funzione sottostante, in modo da non mostrare il messaggio di avvertimento:

Cosa sono questi avvertimenti?
 
RaptorUK:
Cosa sono le avvertenze?

L'avviso è:

possibile perdita di dati a causa della conversione di tipo Ciiio.mq5 676 10

Documentation on MQL5: Language Basics / Data Types / Typecasting
  • www.mql5.com
Language Basics / Data Types / Typecasting - Documentation on MQL5
 

L'articolo Migrazione da MQL4 a MQL5 si conclude con la seguente affermazione

3. È prevista la creazione di un emulatore che consentirà di eseguire i programmi MQL4 nel nuovo terminale MT5.

Chi può dirmi se questo emulatore è già disponibile o quando apparirà?

 
Novikov:

L'articolo Migrazione da MQL4 a MQL5 si conclude con la seguente affermazione

chi può dirmi se questo emulatore è già disponibile o quando apparirà?

Sì, è stato creato contemporaneamente all'articolo. Ma non ha senso, senza funzioni di scambio!