Diskussion zum Artikel "Übersetzung von MQL4 in MQL5" - Seite 7

 
Trintoro:

Ich liebe diesen Artikel.

Ihre Idee für machen Emulator mt4, sehr gute Idee...

Ich stimme mit Trintoro überein. Dieser Artikel ist nicht über die Migration, es ist mehr wie Emulation. Ich viel Sorge über die Geschwindigkeit Ausführung dann vor allem nach dem Lesen dieses und Rosh's Antwort auf dieses Thema. Ich denke, was passieren, um dieses Thema, ist der Benutzer immer noch in MQL4 Art und Weise denken. Vielleicht aus Gewohnheit, so kann ich ihm nicht die Schuld geben.

Es ist besser, neu zu lernen und alles direkt in MQL5 zu schreiben, als Befehle zu verwenden, die dieser Artikel vorschlägt.

Nichtsdestotrotz ist es gut, die Unterschiede zu kennen, die dieser Artikel aufgezeigt hat.

NEBENBEI BEMERKT. Aus meiner Gewohnheit heraus :

1. Drücken Sie F5 (oder F7, aber selten verwenden) in MQL4 MetaEditor wird kompilieren, in MQL5 MetaEditor ist F7 zu kompilieren, F5 wird starten / fortsetzen Debugging.

2. In MQL4 MetaEditor, drücken Sie Esc, wird zeigen / verstecken Toolbox-Fenster, in MQL5 MetaEditor, nichts wird jemals passieren.

Migrieren, die für mich ärgerlich sind :)

 
Danke!!!!!! Coole, umfangreiche, sehr notwendige und nützliche Arbeit!!!! Selbst mit seinen einzelnen Mängeln ist es sehr sehr hilfreich, wenn man einen Roboter von Sprache zu Sprache übersetzt. Ich spreche nicht von einer kompletten Teilstring-Übersetzung, nein, nur wenn man sich den Roboter in der vierten anschaut und nicht weiß, wo in der Hilfe der fünften zu suchen ist, die nicht kompiliert, sagen wir... Und hier können Sie Erklärungen im Detail zu finden!!! Es ist sehr notwendig und nützlich!
 

Könnten Sie mir bitte sagen, welcher Code in MQL5 verwendet werden kann, um das gleiche wie unten für MQL4 zu erhalten?

double AccountFreeMarginCheck(string symbol,
                              int cmd,
                              double volume)
KEIN Analogon
AccountFreeMarginCheck
Gibt den Betrag der freien Mittel zurück, der nach Eröffnung der angegebenen Position zum aktuellen Preis auf dem aktuellen Konto verbleibt.
AccountFreeMarginCheck - Документация на MQL4
  • docs.mql4.com
AccountFreeMarginCheck - Документация на MQL4
 
solandr:

Könnten Sie mir bitte sagen, welcher Code in MQL5 verwendet werden kann, um das gleiche wie unten für MQL4 zu erhalten?

...
Schauen Sie sich die OrderCalcProfit(...) und OrderCalcMargin(...) Funktionen.
 

iBarShift fehlerhaft.

Mehr lesen https://www.mql5.com/ru/forum/11243/

 

Liebe Leute,

Ich rufe eine untenstehende Funktion in meinem Indikator auf. Aber ich habe 7 Warnmeldung. Ich kann ich unten Funktion zu verbessern, so dass nicht zu zeigen, Warnmeldung:

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:
         //Rückgabe(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:

Liebe Leute,

Ich rufe eine untenstehende Funktion in meinem Indikator auf. Aber ich habe 7 Warnmeldung. Ich kann ich unten Funktion zu verbessern, so dass nicht zu zeigen, Warnmeldung:

Was sind die Warnungen?
 
RaptorUK:
Was sind die Warnungen?

Warnung ist:

möglicher Datenverlust aufgrund von Typkonvertierung Ciiio.mq5 676 10

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

Der Artikel Migration von MQL4 zu MQL5 schließt mit der folgenden Aussage

3. Es ist geplant, einen Emulator zu erstellen, mit dem Sie Ihre MQL4-Programme im neuen MT5-Terminal ausführen können.

Wer kann mir sagen, ob dieser Emulator bereits verfügbar ist oder wann er erscheinen wird?

 
Novikov:

Der Artikel Migration von MQL4 zu MQL5 schließt mit folgender Aussage

Wer kann mir sagen, ob dieser Emulator bereits verfügbar ist oder wann er erscheinen wird?

Ja, er wurde zur gleichen Zeit wie der Artikel erstellt. Aber es hat keinen Sinn, ohne Handelsfunktionen!