Rückmeldung zu MQL5 - Seite 4

 

Es gibt keine Möglichkeit, Polster herzustellen

Keine Mehrfachvererbung in irgendeiner Form

Unklare Anhaltspunkte

Keine Referenzen

Unklare Politik beim Kopieren von Strukturen. Und auch Klassen.

Es gibt keine angemessenen Beschreibungen von Fehlern und vom Compiler erzeugten Warnungen mit Beispielen.

Probleme mit der Typisierung von Integer-Typen (und Enums, glaube ich).

Dies ist nur ein kurzer Überblick.

Es ist nur so, dass alle daran gewöhnt sind. Es ist möglich, zu programmieren, aber die MQL5-Sprache kann man sicher nicht als fein und wunderbar bezeichnen.

 
Entwickler können nur mitfühlen, einige suchen nach Einfachheit und Schlichtheit, andere wollen alle Funktionen von Hochsprachen und müssen es beiden recht machen und alles zum Laufen bringen )
 
Renat Fatkhullin:

Schauen Sie bitte hier nach: https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants#enum_symbol_info_double

Im Allgemeinen kann die Marge nicht auf der Grundlage eines einzigen Instruments berechnet werden, da sie das Ergebnis der Überlagerung verschiedener Positionen/Instrumente ist. Auch bei der Börsenausführung kann die Berechnung der Marge an die Börse selbst übertragen werden (die Börse verlangt dies), die auf der Grundlage ihrer komplexen und geschlossenen Logik die endgültige Marge ermittelt.

Für die integrale Schätzung "werde ich genug Marge haben, wenn ich diese Transaktion mache" gibt es eine Standardfunktion OrderCalcMargin: https://www.mql5.com/ru/docs/trading/ordercalcmargin

Hier ist der Code

string txt=NULL;
double GetMarginInitial=0,GetMarginMain=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   if(!SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL,GetMarginInitial))
     {
      Print(" SYMBOL_MARGIN_INITIAL ",GetLastError());
      return(false);
     }
   txt+="\n"+(string)(GetMarginInitial*SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN));

   if(!SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_MAINTENANCE,GetMarginMain))
     {
      Print(" SYMBOL_MARGIN_MAINTENANCE ",GetLastError());
      return(false);
     }
   txt+="\n"+(string)GetMarginMain;
   
   Comment(txt);
   
   return(INIT_SUCCEEDED);
  }

Auf Futures zeigt die erste Marge Anforderung für ein Los 5800 Rubel, aber mit diesem Code auf dem Forex sagt 0 ...

In der Hilfe heißt es

SYMBOL_MARGIN_INITIAL

Die Anfangsmarge gibt den Betrag an, der erforderlich ist, um eine Position von einem Lot zu eröffnen. Es wird verwendet, um die Kundengelder beim Markteintritt zu überprüfen.


Und sonst nichts .... Wie berechne ich die Marge für Währungen? Ich sehe nur einen Ausweg: die Art des Instruments bestimmen und dann mit Formeln berechnen...

 
Vladimir Pastushak:

Hier ist der Code

Auf Futures zeigt es die anfängliche Margin-Anforderung für ein Lot von 5800 Rur an, aber wenn ich diesen Code auf Forex verwende, steht da 0 ...

Und in der Referenz heißt es

SYMBOL_MARGIN_INITIAL

Die Anfangsmarge gibt die Höhe der Marge an, die erforderlich ist, um eine Position von einem Lot zu eröffnen. Es wird zur Überprüfung der Kundengelder beim Markteintritt verwendet.


Und sonst nichts ....

Ja, dieser Parameter dient der Kontrolle der Einschussanforderungen für Futures.

Obwohl für Forex können (müssen) wir uns neu zu berechnen und geben eine grobe (weil wir nicht wissen, was der Händler tun will - kaufen oder verkaufen) Wert der Marge pro 1 Lot.

 
Фьючерсные объемы для МТ:

Es gibt keine Möglichkeit, Polster herzustellen

Keine Mehrfachvererbung in irgendeiner Form

Wir werden dies etwas später tun. Wir haben das übliche Erbe.


Unklare Anhaltspunkte

Keine Referenzen

Es gibt Hinweise und Anhaltspunkte. Sie sind sicher und kontrolliert.


Unklare Politik beim Kopieren von Strukturen. Und auch von Klassen.

Präzise nachvollziehbar - Strukturen mit einfachen (nicht dynamischen) Feldern werden automatisch kopiert. Für den Rest schreiben Sie eine Kopierfunktion.

Wir planen bereits, den Mechanismus zum Kopieren von Strukturen um einige (klassenfremde) dynamische Typen zu erweitern. Dies wird die meiste Arbeit erleichtern.


Keine angemessene Beschreibung der Compilerfehler und -warnungen mit Beispielen.

Die Fehler- und Warnungstexte sind die gleichen/ähnlich wie bei anderen Compilern. In diesem Fall hat niemand das Rad neu erfunden.


Typisierungsprobleme mit Integer-Typen (und Enums wie)

Die Typenstarrheit ist eine Priorität. Deshalb ist die cisische Freiheit von gefährlichen Einsätzen und Konversionen nicht erlaubt.


Die Sprache befindet sich noch in der Entwicklung und bald werden wir den MQL4/MQL5-Compiler ernsthaft aktualisieren, wenn der neue optimierende Compiler (derzeit aktiviert durch Optimize=1) veröffentlicht wird.

 
Serhiy Dotsenko:
dac hat bereits geschrieben, wie man mql-Code in VS bearbeiten kann. Man kann ihn nicht kompilieren, aber man kann ihn in VS bearbeiten und f7 in ME drücken)

Interessiert... Wo haben Sie es geschrieben? Und wenn ich die Standardklassen verwenden möchte, können Sie sie finden oder müssen Sie sie aus dem Gedächtnis eintippen?

Ich bin an den Code gewöhnt, aber an den Editor kann ich mich nicht gewöhnen, nach anderen Editoren, als ob ich gerade zu Notepad gewechselt hätte :)

 
sigma7i:

Interessiert... Wo haben Sie es geschrieben? Und wenn ich die Standardklassen verwenden möchte, können Sie sie finden oder müssen Sie sie aus dem Gedächtnis eintippen?

Ich bin an den Code gewöhnt, aber ich kann mich nicht an den Editor gewöhnen, nach anderen Editoren ist es so, als würde ich Notepad benutzen :)

Wir werden auch den Editor aktualisieren, wir hatten nur andere Prioritäten.

Vielleicht machen wir den Weg frei für Plugins.

 
Renat Fatkhullin:

Ja, dieser Parameter dient der Kontrolle der Einschussanforderungen für Futures.

Obwohl für Forex, können (müssen) wir neu berechnen und geben eine grobe (weil wir nicht wissen, was ein Händler tun will - kaufen oder verkaufen) Wert der Marge für 1 Lot.

Nullen werden auch für cfd-Indizes zurückgegeben ... Die Hilfe hat Formeln, die im Prinzip ausreichend sind, aber sie sind nicht auskommentiert ...

Vielleicht weiß jemand, was das ist


Marge: (Lots*Kontraktgröße*Marktpreis*Prozentsatz)/Leverage

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose


Prozentsatz - was ist das?
 
Vladimir Pastushak:


Marge: (Lose*Kontraktgröße*Marktpreis*Prozentsatz)/Leverage

Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose


Prozentsatz - darüber steht nirgends in der Dokumentation ein Wort...

Schauen Sie in der Terminal-Hilfe nach - https://www.metatrader5.com/ru/terminal/help/trading_advanced/margin_forex
 
Rashid Umarov:
Schauen Sie in der Terminal-Hilfe nach - https://www.metatrader5.com/ru/terminal/help/trading_advanced/margin_forex
Sie können diese Koeffizienten mit SymbolInfoMarginRate erhalten, versuchen Sie