Wie berechnen Sie die Marge?

 

Guten Tag!

Plötzlich kam es zu einer Situation, in der die Marge auf offene Positionen erheblich gestiegen ist (um das 20-fache). Es besteht der Verdacht, dass der Broker die Einschussanforderungen für offene Positionen erhöht hat. Diese Annahme wird durch den ungewöhnlich hohen Wert von AccountMargin bestätigt, der um ein Vielfaches höher ist als der berechnete Wert für dieses Instrument und den festgelegten Leverage.

Bei einem der Konten, die sich in einer solchen Situation befanden, musste ich die letzten offenen Positionen mit dem größten Volumen mit einem Verlust schließen, um die Belastung des Depots zu verringern und den Stop Out nicht zuzulassen. Und irgendwann (nach dem Schließen einer weiteren Verlustposition)kehrte der Wertvon AccountMargin auf den berechneten Wert zurück. Vielleicht habe ich es nicht sofort bemerkt, und deshalb kann ich nicht mit Sicherheit sagen, für welche Positionen die erhöhten Einschussanforderungen angewandt wurden.

Für das andere Konto habe ich noch nichts unternommen, außer der Eröffnung eines Sperrauftrags. Jetzt muss ich beim Makler einen Antrag stellen und angeben, welche Aufträge mit erhöhten Einschussanforderungen eröffnet wurden. Und das wirft eine Frage auf:

Gibt es eine Möglichkeit, den Betrag der Sicherheiten (Margin) für jede offene Position separat im Terminal zu erfahren? Im Terminal sehe ich nur den Gesamtbetrag der Marge, und das ist der Wert, der von der Funktion AccountMargin() zurückgegeben wird. In der MQL4-Referenz habe ich keine passende Funktion mit dem Präfix Order gefunden. Es wäre logisch anzunehmen, dass dieser Wert mit OrderGetDouble() ermittelt werden kann, aber auch hier gibt es keinen entsprechenden Wert inENUM_ORDER_PROPERTY_DOUBLE.

Bitte sagen Sie mir, wie ich die Depotgröße für eine einzelne offene Position im MT4-Terminal ermitteln kann?

 
Sie können ihnhier lesen.
Как получить программно "Процент маржи"
Как получить программно "Процент маржи"
  • 2017.05.31
  • www.mql5.com
В окне терминала "Спецификации контракта" есть пункт "Процент маржи...
 
Alexey Viktorov:
Sie können hier lesen.

Vielen Dank, ich habe es gelesen. Auf Seite 7 befindet sich ein Skript, das den berechneten Margin-Wert für jede offene Position berechnet. Ich habe sie ein wenig angepasst, um der Tatsache Rechnung zu tragen, dass es sich nicht um CFD, sondern um FOREX handelt, und sie in dieser Form zusammengestellt:

void OnStart()
{
 double size = 0, percentage = 0, orderMargin = 0, accountMargin = 0;
 long leverage = 0;
 for(int i = 0; i < OrdersTotal(); i++)
  {
   int tupe = -1;
   if(OrderSelect(i, SELECT_BY_POS) && (tupe=OrderType()) < OP_BUYLIMIT)
    {
     string symbol = OrderSymbol();
     string symbolCurencyMargin = SymbolInfoString(symbol, SYMBOL_CURRENCY_MARGIN);
     double orderOpenPrice = OrderOpenPrice();
     double orderLots = OrderLots();
     double margin = MarketInfo(symbol, MODE_MARGINREQUIRED);
     double ask = MarketInfo(symbol, MODE_ASK);
     double bid = MarketInfo(symbol, MODE_BID);
     double price = symbolCurencyMargin == "USD" ? 1 : tupe == OP_BUY ? bid : ask;
      size = SymbolInfoDouble(symbol, SYMBOL_TRADE_CONTRACT_SIZE);
      leverage = AccountInfoInteger(ACCOUNT_LEVERAGE);
      percentage = NormalizeDouble(margin/(size*price/100)*leverage, 0);
      //orderMargin = (size*orderOpenPrice*percentage/100)/leverage;
      orderMargin = (orderLots*size*orderOpenPrice)/leverage;
      accountMargin += orderMargin;
      Print(symbolCurencyMargin, " ******** Маржа ", symbol, " = ", orderMargin);
    }
  }
 Print(AccountInfoString(ACCOUNT_CURRENCY), " ******** AccountMargin = ", DoubleToString(accountMargin, 2));
}

In den allermeisten Fällen stimmt der von diesem Skript berechnete endgültige Margenwert mit dem tatsächlichen Wert überein. Aber leider nicht in meinem Fall. Das Problem besteht darin, dass die Formel zur Berechnung der Marge für jeden Auftrag den Wert der zu diesem Zeitpunkt aktiven Hebelwirkung verwendet.

In den Vorschriften einiger Broker (ohne mit dem Finger auf andere zu zeigen) ist jedoch festgelegt, dass für Positionen, die unter bestimmten Bedingungen (Freitagabend, Durchschnittsmethode usw.) eröffnet werden, eine bestimmte Hebelwirkung gilt, die in der Regel um ein Mehrfaches geringer ist als für das gesamte Konto. Das ist genau mein Fall. Um jedoch einen Antrag korrekt vorzubereiten und zu vermeiden, dass sich eine solche Situation in Zukunft wiederholt, muss ich herausfinden, welche Positionen mit normaler Hebelwirkung und welche mit höherer Hebelwirkung eröffnet wurden.

Das Support-Team des Brokers erklärt offen, dass die erhöhte Hebelwirkung nicht für das Konto insgesamt, sondern für bestimmte Aufträge festgelegt wird, und zwar nachdem die Position eröffnet wurde. Daher ist es sinnlos, die Anforderung AccountFreeMarginChek zu verwenden.

Dies wirft eine Frage auf: Gibt es eine Möglichkeit, zuverlässig zu wissen, welche Marge für jede Position im Terminal tatsächlich verwendet wird, wenn wir wissen, dass der Broker für jede Position einen anderen Hebel einstellen kann?

 
Janis Ozols:

In den Vorschriften einiger Broker (wir wollen nicht mit dem Finger auf sie zeigen) ist jedoch vorgeschrieben, dass für Positionen, die unter bestimmten Bedingungen (Freitagabend, Durchschnittsmethode usw.) eröffnet werden, eine besondere Hebelwirkung gilt, die in der Regel um ein Vielfaches niedriger ist als für das gesamte Konto. Das ist genau mein Fall. Umjedoch einen ordnungsgemäßen Antrag zu stellen und eine Wiederholung dieser Situation in Zukunft zu vermeiden, muss ich wissen, welche Positionen mit normaler Hebelwirkung und welche mit höherer Hebelwirkung eröffnet wurden.

1) Der Makler hat immer Recht.
2) Wenn der Makler sich irrt, lesen Sie Regel Nr. 1.

 
Janis Ozols:

Vielen Dank, ich habe es gelesen. Auf Seite 7 befindet sich ein Skript, das den berechneten Margin-Wert für jede offene Position berechnet. Ich habe sie leicht angepasst, um der Tatsache Rechnung zu tragen, dass es sich nicht um CFD, sondern um FOREX handelt, und sie wie folgt zusammengestellt:

In den allermeisten Fällen stimmt der von diesem Skript berechnete endgültige Margenwert mit dem tatsächlichen Wert überein. Aber leider nicht in meinem Fall. Das Problem besteht darin, dass die Formel zur Berechnung der Marge für jeden Auftrag den Wert der zu diesem Zeitpunkt aktiven Hebelwirkung verwendet.

In den Vorschriften einiger Broker (ohne mit dem Finger auf andere zu zeigen) ist jedoch festgelegt, dass für Positionen, die unter bestimmten Bedingungen (Freitagabend, Durchschnittsmethode usw.) eröffnet werden, eine bestimmte Hebelwirkung gilt, die in der Regel um ein Mehrfaches geringer ist als für das gesamte Konto. Das ist genau mein Fall. Um jedoch einen Antrag korrekt vorzubereiten und zu vermeiden, dass sich eine solche Situation in Zukunft wiederholt, muss ich herausfinden, welche Positionen mit normaler Hebelwirkung und welche mit höherer Hebelwirkung eröffnet wurden.

Das Support-Team des Brokers erklärt offen, dass die erhöhte Hebelwirkung nicht für das Konto insgesamt, sondern für bestimmte Aufträge festgelegt wird, und zwar nachdem die Position eröffnet wurde. Daher ist es sinnlos, die Anforderung AccountFreeMarginChek zu verwenden.

Daraus ergibt sich eigentlich folgende Frage: Gibt es eine Möglichkeit, zuverlässig zu wissen, welche Marge für jede Position im Terminal tatsächlich verwendet wird, wenn wir wissen, dass der Broker für jede Position einen anderen Hebel einstellen kann?

Verschwenden Sie Ihre Zeit nicht mit nutzlosem Schriftverkehr. Das steht in den Vorschriften, und darüber zu streiten ist wie ein Kampf gegen Windmühlen.

Es geht nicht um das Symbol, es geht um die Öffnungszeit. Viele haben es 15 Minuten vor Ende des Wochenendes. Und 15 Minuten später, am Montag, ist die Hebelwirkung wieder normal.

 
Alexey Viktorov:

Verschwenden Sie Ihre Zeit nicht mit nutzloser Korrespondenz. Das steht in den Vorschriften, und darüber zu streiten ist wie ein Kampf gegen Windmühlen.

Ich möchte vor allem eine Beschwerde einreichen, um Klarheit über die Regeln für die Anwendung einer erhöhten Hebelwirkung zu erhalten. Die Vorschriften sind diesbezüglich nicht sehr klar.

Ich möchte vor allem wissen, wie ich diese Situation in Zukunft vermeiden kann. Konkret enthält die betreffende Klausel in den Bestimmungen meines Maklers die vage Formulierung "das Unternehmen behält sich das Recht vor". Das heißt, sie können für einen bestimmten Auftrag erhöhte Einschussanforderungen stellen oder nicht. Deshalb ist es für mich sehr wichtig, herauszufinden, wie ich im Terminal die Positionen erkennen kann, auf die die erhöhte Hebelwirkung (die nicht von AccountLeverage ausgegeben wurde) angewendet wurde. Zum Beispiel die unverzügliche Schließung solcher Positionen, um den Händler zu informieren und den Handel einzustellen.

Sicherlich gibt es eine Möglichkeit, vom Terminal die Höhe der Marge für eine einzelne Position abzufragen. Ich weiß es nur noch nicht, und ich kann es auch nicht in der Dokumentation finden.

 
Janis Ozols:

Ich möchte eine Beschwerde einreichen, vor allem um eine Klärung der Regeln für die Anwendung einer erhöhten Hebelwirkung zu erreichen. Das ist in den Verordnungen nicht ganz klar.

Ich möchte vor allem wissen, wie ich diese Situation in Zukunft vermeiden kann. Konkret enthält die betreffende Klausel in den Bestimmungen meines Maklers die vage Formulierung "das Unternehmen behält sich das Recht vor". Das heißt, sie können für einen bestimmten Auftrag erhöhte Einschussanforderungen stellen oder nicht. Deshalb ist es für mich sehr wichtig, herauszufinden, wie ich im Terminal die Positionen erkennen kann, auf die die erhöhte Hebelwirkung (die nicht von AccountLeverage ausgegeben wurde) angewendet wurde. Zum Beispiel die unverzügliche Schließung solcher Positionen, um den Händler zu informieren und den Handel einzustellen.

Sicherlich gibt es eine Möglichkeit, vom Terminal die Höhe der Marge für eine einzelne Position abzufragen. Ich weiß es nur noch nicht, und ich kann es in der Dokumentation nicht finden.

Ich weiß nicht, wie es bei Ihrem Broker aussieht, aber es gibt Fälle, in denen alles in Ordnung war, wir eine Position schließen und eine höhere Marge erhalten. Es gibt keine Möglichkeit, dies nachzuvollziehen. Und niemand wird eine Erklärung abgeben. Es gibt nur einen Ausweg: Handeln Sie nicht zu einem Zeitpunkt, zu dem Ihre Marge steigen könnte. Dies wird höchstwahrscheinlich durch den Prozentsatz der Marge geregelt, nicht durch die Hebelwirkung.

 

Berechnen Sie Ihre eigene Marge und Hebelwirkung, wenn Sie eine Position eröffnen, indem Sie öffentlich zugängliche Formeln verwenden.

Schreiben Sie die Hebelwirkung in den Kommentar oder in die Magie, oder ganz allgemein - schreiben Sie die hebelbereinigte Marge gleich mit auf.

Sie werden etwas haben, an das Sie sich erinnern können

 
Alexey Viktorov:

Ich weiß nicht, wie es bei Ihrem Broker aussieht, aber es gibt Fälle, in denen alles in Ordnung war, wir die Position schließen und eine höhere Marge erhalten.

Bei meinem Broker ist es so: Wir eröffnen eine Position und erhalten eine erhöhte Marge. Und in einigen Fällen tun wir das, in anderen nicht ("das Unternehmen behält sich das Recht vor,...").


Alexey Viktorov:

Es gibt nur einen Ausweg: Handeln Sie nicht zu einem Zeitpunkt, an dem sich die Marge erhöhen könnte. Dies wird höchstwahrscheinlich durch den Prozentsatz der Marge geregelt, nicht durch die Hebelwirkung.

In meinem Fall hilft das leider nicht. Die Marge kann jederzeit erhöht werden. Und sie wird durch die Hebelwirkung reguliert. In den Verordnungen ist in jedem Fall von Hebelwirkung die Rede. Ich würde es gerne vermeiden, in diesem Thread über die Handelsbedingungen eines bestimmten Brokers zu diskutieren. Was mich wirklich interessiert, ist, wie man vom Terminal Informationen über die Höhe der Marge für eine einzelne Position erhalten kann.

 
Renat Akhtyamov:

Berechnen Sie Ihre eigene Marge und Hebelwirkung zum Zeitpunkt der Eröffnung einer Position anhand öffentlich zugänglicher Formeln.

Schreiben Sie die Hebelwirkung in den Kommentar oder in die Magie, oder ganz allgemein - schreiben Sie die hebelbereinigte Marge gleich mit auf.

Sie werden etwas haben, an das Sie sich erinnern können.

Das habe ich versucht zu tun. Das Problem ist jedoch, dass sich die Marge nach der Eröffnung einer Position erhöht. Mit anderen Worten, bevor ich eine Position eröffne, erhalte ich den berechneten Wert der Marge für diese Position. Und unmittelbar nach einem erfolgreichen OrderSend-Aufruf frage ich das Terminal nach dem Wert von AccountMargin. Und sie erfüllt meine Erwartungen voll und ganz. Aber nach einer Weile steigt dieser Wert stark an! Und der Wertvon AccountMargin ist um ein Vielfaches höher als der Betrag der Marge für jeden offenen Auftrag, der unmittelbar nach dessen Eröffnung ermittelt wird.

Meine Frage lässt sich darauf reduzieren, wie das Terminal zu einem bestimmten Zeitpunkt den tatsächlichen Wert der Marge für einen bestimmten Auftrag ermitteln kann.

Dies ist AccountMargin() oder AccountInfoDouble(ACCOUNT_MARGIN) für das gesamte Konto. Es gibt also zwei Möglichkeiten, diesen Wert zu erhalten. Es muss doch wenigstens eine Möglichkeit geben, den Wert der Marge für einen Auftrag zu ermitteln. Ich weiß es einfach nicht, deshalb frage ich ja.

 
Janis Ozols:

Das habe ich versucht. Das Problem ist jedoch, dass sich die Marge nach Eröffnung der Position erhöht. Mit anderen Worten, bevor ich eine Position eröffne, erhalte ich den berechneten Einschusswert für diese Position. Und unmittelbar nach einem erfolgreichen OrderSend-Aufruf frage ich das Terminal nach dem Wert von AccountMargin. Und sie erfüllt meine Erwartungen voll und ganz. Aber nach einer Weile steigt dieser Wert stark an! Und der Wertvon AccountMargin ist um ein Vielfaches höher als der Betrag der Marge für jeden offenen Auftrag, der unmittelbar nach dessen Eröffnung ermittelt wird.

Meine Frage lässt sich darauf reduzieren, wie das Terminal zu einem bestimmten Zeitpunkt den tatsächlichen Wert der Marge für einen bestimmten Auftrag ermitteln kann.

Dies ist AccountMargin() oder AccountInfoDouble(ACCOUNT_MARGIN) für das gesamte Konto. Es gibt also zwei Möglichkeiten, diesen Wert zu erhalten. Es muss doch zumindest eine Möglichkeit geben, den Wert der Marge für einen Auftrag zu ermitteln. Ich weiß es einfach noch nicht, deshalb frage ich ja.

Sie brauchen nicht zu fragen

Erwägen Sie Formeln

und auch die Schulter. Formeln verwenden

das Terminal verfolgt nicht die aktuelle Hebelwirkung, sondern gibt Ihnen diejenige an, die Sie beim Laden des Terminals hatten

deshalb ist der von dieser Funktion geforderte Spielraum unterschiedlich

Grund der Beschwerde: