
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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!