Dies ist die Berechnung für FOREX. Der Rest ist ähnlich.
Gut, dann muss nur noch die Marge in der Einzahlungswährung mitgebracht werden, denn die Marge, zum Beispiel für AUDCAD mit der Einzahlungswährung USD, muss in USD sein.
Alexey Volchanskiy: Großartig, alles was wir tun müssen, ist, die Marge in der Depotwährung mitzubringen, denn die Marge, zum Beispiel für AUDCAD mit der Depotwährung USD, muss in USD sein.
Alexey Volchanskiy: Gut, dann bleibt nur noch, die Marge in der Einzahlungswährung mitzubringen, denn für AUDCAD zum Beispiel sollte die Einzahlungswährung in USD sein.
Sieht aus wie SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_VALUE ) in der Funktion ist nur für sie... zu bringen Lose zu hinterlegen Währung
In Forex funktioniert alles einwandfrei, aber es gibt noch eine letzte Frage: "Warum ist es halbiert und wie können wir es beheben?"
Ich habe festgestellt, dass die Marge auf SGDJPY auf dem FIBOGroup-MT5 Server und dem MetaQuotes-Demo Server unterschiedlich ist. Dies deutet darauf hin, dass der MT5 selbst die Marge mit Fehlern berechnet. Nun, wenn das der Fall ist, gibt es keinen Vergleichsmaßstab. Daher kann ich nicht mit Sicherheit sagen, ob es sich um einen Fehler in meiner Implementierung oder bei den Entwicklern handelt. Meiner Meinung nach liegt in beiden Fällen ein Fehler vor. Das Problem ist der Mangel an korrekten Informationen.
fxsaber: Ich habe festgestellt, dass bei SGDJPY die Marge auf dem FIBOGroup-MT5 Server und dem MetaQuotes-Demo Server unterschiedlich ist. Dies deutet darauf hin, dass der MT5 selbst die Marge mit Fehlern berechnet. Und da das so ist, gibt es keine Referenz für einen Vergleich. Daher kann ich nicht mit Sicherheit sagen, ob dies ein Fehler meiner Implementierung oder der Entwickler ist. Meiner Meinung nach liegt in beiden Fällen ein Fehler vor. Das Problem ist der Mangel an korrekten Informationen.
Meine beiden Server werden korrekt angezeigt, mit einer Ausnahme - rot hervorgehoben
Wie finde ich die rot markierte Eigenschaft heraus?
Sie müssen sich darüber im Klaren sein, dass es im MT5 sehr unterschiedliche Margin-Anforderungen in verschiedenen Richtungen geben kann. D.h. eine einzige MT4-Variante kann nicht funktionieren. Auf dem Forex ist dies natürlich nicht der Fall. Aber Sie müssen daran denken. Daher sollten Sie ihn im Allgemeinen wie folgt schreiben
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Die Lösung kam sofort.
double GetMarginRequired( const string Symb )
{
MqlTick Tick;
return(SymbolInfoTick(Symb, Tick) ? Tick.ask * SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_VALUE) * SymbolInfoDouble(Symb, SYMBOL_TRADE_CONTRACT_SIZE) *
SymbolInfoDouble(Symb, SYMBOL_POINT) / (SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_SIZE) * AccountInfoInteger(ACCOUNT_LEVERAGE)) : 0);
}
Großartig, alles was wir tun müssen, ist, die Marge in der Depotwährung mitzubringen, denn die Marge, zum Beispiel für AUDCAD mit der Depotwährung USD, muss in USD sein.
Gut, dann bleibt nur noch, die Marge in der Einzahlungswährung mitzubringen, denn für AUDCAD zum Beispiel sollte die Einzahlungswährung in USD sein.
Dies ist geschehen.
In Forex funktioniert alles einwandfrei, nur die letzte Frage bleibt: "Warum nur halb so viel, und wie kann ich das beheben?"
In Forex funktioniert alles einwandfrei, aber es gibt noch eine letzte Frage: "Warum ist es halbiert und wie können wir es beheben?"
Ich habe festgestellt, dass bei SGDJPY die Marge auf dem FIBOGroup-MT5 Server und dem MetaQuotes-Demo Server unterschiedlich ist. Dies deutet darauf hin, dass der MT5 selbst die Marge mit Fehlern berechnet. Und da das so ist, gibt es keine Referenz für einen Vergleich. Daher kann ich nicht mit Sicherheit sagen, ob dies ein Fehler meiner Implementierung oder der Entwickler ist. Meiner Meinung nach liegt in beiden Fällen ein Fehler vor. Das Problem ist der Mangel an korrekten Informationen.
Meine beiden Server werden korrekt angezeigt, mit einer Ausnahme - rot hervorgehoben
Wie finde ich die rot markierte Eigenschaft heraus?
Ich danke Ihnen!
Ich habe zwei Server, die korrekt angezeigt werden, mit einer Ausnahme - rot hervorgehoben
Wie kann ich die rot markierte Eigenschaft herausfinden?
double GetMarginRequired( const string Symb )
{
MqlTick Tick;
double MarginInit, MarginMain;
return((SymbolInfoTick(Symb, Tick) && SymbolInfoMarginRate(Symb, ORDER_TYPE_BUY, MarginInit, MarginMain)) ? MarginInit * Tick.ask *
SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_VALUE) / (SymbolInfoDouble(Symb, SYMBOL_TRADE_TICK_SIZE) * AccountInfoInteger(ACCOUNT_LEVERAGE)) : 0);
}
Sie müssen sich darüber im Klaren sein, dass es im MT5 sehr unterschiedliche Margin-Anforderungen in verschiedenen Richtungen geben kann. D.h. eine einzige MT4-Variante kann nicht funktionieren. Auf dem Forex ist dies natürlich nicht der Fall. Aber Sie müssen daran denken. Daher sollten Sie ihn im Allgemeinen wie folgt schreiben
bool MyOrderCalcMargin( const ENUM_ORDER_TYPE action, const string symbol, const double volume, const double price, double &margin )
{
double MarginInit, MarginMain;
const bool Res = SymbolInfoMarginRate(symbol, action, MarginInit, MarginMain);
margin = Res ? MarginInit * price * volume * SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE) /
(SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE) * AccountInfoInteger(ACCOUNT_LEVERAGE)) : 0;
return(Res);
}
Genau das wurde getan.
MT5-Witz auf FIBOGroup-MT5 Server SGDJPY
In dieser Situation zählt MyOrderCalcMargin korrekt, aber der reguläre OrderCalcMargin nicht!
MT5-Streich auf FIBOGroup-MT5 Server SGDJPY
In dieser Situation zählt MyOrderCalcMargin korrekt, aber der reguläre OrderCalcMargin nicht!