Discussion de l'article "Migration de MQL4 vers MQL5" - page 7

 
Trintoro:

J'adore cet article.

L'idée de faire un émulateur mt4 est une très bonne idée...

Je suis d'accord avec Trintoro. Je suis d'accord avec Trintoro, cet article ne concerne pas la migration, mais plutôt l'émulation. Je suis très préoccupé par la vitesse d'exécution, surtout après avoir lu cet article et la réponse de Rosh à ce sujet. Je pense que ce qui se passe à ce sujet, c'est que l'utilisateur pense toujours en MQL4 d'une certaine manière. Peut-être par habitude, donc je ne peux pas le blâmer.

Il est préférable d'apprendre et d'écrire directement en MQL5 plutôt que d'utiliser les commandes suggérées dans cet article.

Néanmoins, il est bon de connaître les différences que cet article a montré.

BTW. Par habitude :

1. Appuyer sur F5 (ou F7, mais rarement utilisé) dans MQL4 MetaEditor pour compiler, dans MQL5 MetaEditor est F7 pour compiler, F5 pour démarrer/reprendre le débogage.

2. Dans MQL4 MetaEditor, en appuyant sur Esc, la fenêtre de la boîte à outils sera affichée/masquée, dans MQL5 MetaEditor, rien ne se passera jamais.

Des migrations qui m'ennuient :)

 
Merci !!!!!! Un travail cool, massif, très nécessaire et utile !!!! Même avec ses défauts individuels, c'est très utile pour traduire un robot d'une langue à l'autre. Je ne parle pas d'une traduction complètement sous-chaîne, non, juste quand vous regardez le robot dans la quatrième, et ne savez pas où dans l'aide de la cinquième pour chercher ceci qui ne compile pas, disons... Et là, on peut trouver des explications en détail ! !! C'est très nécessaire et utile !
 

Pourriez-vous me dire quel code dans MQL5 peut être utilisé pour obtenir la même chose que ci-dessous pour MQL4 ?

double AccountFreeMarginCheck(string symbol,
                              int cmd,
                              double volume)
PAS d'analogue
AccountFreeMarginCheck
Renvoie le montant des fonds libres qui resteront après l'ouverture de la position spécifiée au prix actuel sur le compte actuel.
AccountFreeMarginCheck - Документация на MQL4
  • docs.mql4.com
AccountFreeMarginCheck - Документация на MQL4
 
solandr:

Pourriez-vous me dire quel code dans MQL5 peut être utilisé pour obtenir la même chose que ci-dessous pour MQL4 ?

...
Regardez les fonctions OrderCalcProfit(...) et OrderCalcMargin(...) .
 

iBarShift erroné.

Pour en savoir plus : https://www.mql5.com/ru/forum/11243/

 

Chers amis,

J'ai appelé la fonction ci-dessous dans mon indicateur, mais j'ai reçu 7 messages d'avertissement. Mais j'ai reçu 7 messages d'avertissement. Puis-je améliorer la fonction ci-dessous pour qu'elle n'affiche pas de message d'avertissement ?

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:
         //return(Bid) ;
      case MODE_ASK:
         //return(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:

Chers amis,

J'ai appelé la fonction ci-dessous dans mon indicateur, mais j'ai reçu 7 messages d'avertissement. Mais j'ai reçu 7 messages d'avertissement. Puis-je améliorer la fonction ci-dessous pour qu'elle n'affiche pas de message d'avertissement ?

Quels sont ces messages d'avertissement ?
 
RaptorUK:
Qu'est-ce qu'un avertissement ?

L'avertissement est le suivant :

perte possible de données en raison de la conversion de type Ciiio.mq5 676 10

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

L'article Migration de MQL4 à MQL5 se termine par l'affirmation suivante

3. Il est prévu de créer un émulateur qui vous permettra d'exécuter vos programmes MQL4 dans le nouveau terminal MT5.

Qui peut me dire si cet émulateur est déjà disponible ou quand il apparaîtra ?

 
Novikov:

L'article Migration de MQL4 à MQL5 se termine par la déclaration suivante

Qui peut me dire si cet émulateur est déjà disponible ou quand il apparaîtra ?

Oui, il a été créé en même temps que l'article. Mais il n'a pas de sens, sans fonctions d'échange !