Wie man den "Prozentsatz der Marge" programmatisch abruft - Seite 8

 
Alexey Viktorov:

Was für eine Nervensäge... Überprüfen Sie, wie Sie zählen.

GOLD bei metaquotes (Margenprozentsatz - 1, Hebelwirkung -300), CFD

2017.06.05 21:57:42.015 Script gold_test_vik2 GOLD,H4: removed
2017.06.05 21:57:42.000 gold_test_vik2 GOLD,H4: uninit reason 0
2017.06.05 21:57:42.000 gold_test_vik2 GOLD,H4: ******** AccountMargin = 19188.75 USD
2017.06.05 21:57:42.000 gold_test_vik2 GOLD,H4: ******** Процент маржи 300 Маржа ордера GOLD 0.05 = 19188.75
2017.06.05 21:57:42.000 gold_test_vik2 GOLD,H4: initialized

Bei Kreuzen und gesperrten Positionen sind die Berechnungen ebenfalls falsch, aber das ist mir persönlich egal, und ich sehe, dass Ihr Skript das einfach nicht hinbekommt... Ich glaube nicht, dass sich der Aufwand lohnt, wenn alle bisherigen Schwierigkeiten mit der Berechnung des Margenprozentsatzes und der Sicherheiten für mindestens einen CFD-Auftrag zusammenhängen.

p.s. Ich glaube auch, dass es kein Zufall ist, dass die Entwickler keinen direkten Zugriff auf den Margenprozentsatz gegeben haben :D

 

Können Sie uns Ihre Erfahrungen mitteilen, wie man eine Demo auf MetaQuote-Demo mit einer Hebelwirkung von 300 eröffnet? Ich habe ein Maximum von 100...


GOLD auf MetaQuote-Demo

2017.06.06 09:07:32.780 Data Folder: D:\MetaTrader 4\Programming
2017.06.06 09:07:32.780 Windows 7 Home Premium (x64 based PC), IE 11.00, UAC, 4 x AMD FX-4170 Quad-Core Processor , RAM: 10402 / 12255 Mb, HDD: 31535 / 244198 Mb, GMT+03:00
2017.06.06 09:07:32.780 MetaTrader 4 build 1090 started (MetaQuotes Software Corp.)

Ausdruck

2017.06.06 09:09:25.812 test GOLD,H1: ******** AccountMargin = 160.95 USD
2017.06.06 09:09:25.812 test GOLD,H1: ******** Процент маржи 1 Маржа ордера GOLD 0.05 = 160.9525

Screenshots



 
Alexey Viktorov:

Können Sie uns Ihre Erfahrungen mitteilen, wie man eine Demo mit 300 Leverage auf MetaQuote-Demo eröffnet? Ich habe ein Maximum von 100...


Ups... Diese Tests haben in den Terminals für Verwirrung gesorgt. Dieser war insta, ansonsten korrekt, GOLD, Margin-Prozentsatz - 1, Hebelwirkung 300, Screenshots oben...

Entschuldigung!

 
ir0407:
Der Prozentsatz der Marge ist keine berechnete Einlage. Sie ist nur eine der Komponenten für die Berechnung der Marge. Das Ergebnis dieser Berechnung (gemäß den Formeln in der Tabelle) wird in der Einschusswährung zurückgegeben, die dann (wenn sie sich von der Einlagenwährung unterscheidet) in die Einlagenwährung umgerechnet werden muss.

Und das ist etwas, das ich auch nicht so recht begreifen kann. Nehmen wir zum Beispiel eine Formel:

Lots*Contract_Size/Leverage

Wo, Lots - das ist das Los in der Basiswährung des Instruments und der Vertrag - auch in der Basiswährung, und dann, falls erforderlich, multiplizieren Sie die Basiswährung auf die notierte Währung durch den Wechselkurs. Und mit all dem wird das Ergebnis in der Randwährung erzielt. Wie das?

 
K-2SO:

Und das ist etwas, das ich auch nicht so recht begreifen kann. Nehmen wir zum Beispiel eine Formel:

Wo, Lots - das ist das Los in der Basiswährung des Instruments und der Vertrag - auch in der Basiswährung, und dann, falls erforderlich, multiplizieren Sie die Basiswährung auf die notierte Währung mit dem Wechselkurs. Und mit all dem wird das Ergebnis in der Randwährung erzielt. Wie kommt das?

Diese Formel

Lots*Contract_Size/Leverage

gilt für die Berechnung der Marge für USD***-Währungen


Zunächst bestimmen wir den Preis, den wir in die Währung der Einlage umrechnen müssen.

Wenn der Name des Instruments mit der Einzahlungswährung, in diesem Fall USD, beginnt, wird der Preis nicht berücksichtigt.

Wenn der Auftrag OP_BUY ist, benötigen wir den Geldkurs

Wenn der Auftrag OP_SELL ist, dann Ask

double price = stringFind == 0 ? 1 : type%2 == OP_BUY ? bid : ask;
percentage = NormalizeDouble(
                             margin          // Маржа получена в валюте депозита с учётом плеча
                           /(contractSize    // Размер контракта в базовой валюте
                            *price           // Умножаем на текущую цену и получаем в валюте депозита
                            /100)            // Это для того чтобы коэффициент перевести в проценты
                           *(calcMode == 0 ? leverage : 1) // Это получено методом научно-технического тыка.
                                    // Если способ расчёта 0 - Forex; то надо учесть плечо
                                    //                     1 - CFD; то плечо не учитывается
                                    //                     2 - Futures; 3 - CFD на индексы НЕ проверялись, их у меня нету...
                           , 0);
orderMargin = (orderLots         // правильно, в базовой валюте
              *contractSize      // и это тоже в базовой
              *orderOpenPrice    // а вот тут переводим в валюту депозита
              *percentage/100)   // у меня слов не хватает чтобы объяснить что это такое, но видимо очень нужное.
             /(calcMode == 0 ? leverage : 1);  // Это тоже получено методом научно-технического тыка.

Ich hoffe, ich habe die Dinge klar erklärt...

 
Alexey Viktorov:

Ich hoffe, ich habe mich klar ausgedrückt...

Ich glaube, wir reden wieder über verschiedene Dinge. Ich wollte nur versuchen, nicht die Methode der Margenberechnung zu klären (nicht die Berechnungen), sondern wie es dazu kommt, dass wir am Ausgang der Margenberechnungsformel, wo wir praktisch nicht mit der Margenwährung arbeiten, das Ergebnis genau in der Margenwährung erhalten. So habe ich es zumindest in der Nachricht vonir0407 verstanden, und deshalb habe ich die einfachste Berechnungsformel angegeben, bei der es noch keine Anführungszeichen gibt...

Für den Rest (die Bauchgefühl-Methode) habe ich auch alles ausprobiert, aber festgestellt, dass eine einzige Lösung noch nicht gefunden wurde. Ich habe die Makler verwechselt, aber die Ergebnisse - nein, d.h. auf insta Ihre letzte Option mit den oben genannten Parametern, produziert immer noch kosmische Zahlen als gut: https://www.mql5.com/ru/forum/193833/page8#comment_5243991

p.s. Aber danke für die Kommentare! Auf jeden Fall verstehe ich die Denkweise und die von Ihnen beschriebenen Berechnungen)

 
K-2SO:

Ähm... ich glaube, wir reden wieder über verschiedene Dinge. Ich habe gerade beschlossen, zu versuchen, nicht die Methode der Marge Berechnung (nicht die Berechnungen) zu klären, aber wie es ist, dass die Ausgabe der Marge Berechnung Formel, wo wir praktisch nicht mit Marge Währung arbeiten, erhalten wir das Ergebnis in der Währung der Marge. So habe ich es zumindest in der Nachricht vonir0407 verstanden, und deshalb habe ich die einfachste Berechnungsformel angegeben, bei der es noch keine Anführungszeichen gibt...

Für den Rest (die Bauchgefühl-Methode) habe ich auch alles ausprobiert, aber festgestellt, dass eine einzige Lösung noch nicht gefunden wurde. Ich habe die Makler verwechselt, aber die Ergebnisse - nein, d.h. auf insta Ihre letzte Option mit den oben genannten Parametern, produziert immer noch kosmische Zahlen als gut: https://www.mql5.com/ru/forum/193833/page8#comment_5243991

p.s. Aber danke für die Kommentare! Wie auch immer, ich verstehe die Denkweise und die Berechnungen, die Sie beschrieben haben.)

Ich möchte nicht einmal eine Demo auf Insta öffnen. Wenn es nicht schwierig ist, in den Debugger kann zeigen, welche Zwischenwerte erhalten werden. Wie auf meinem Bildschirmfoto


 
Alexey Viktorov:

Ich möchte nicht einmal eine Demo auf Insta öffnen. Wenn es Ihnen nichts ausmacht, können Sie im Debugger zeigen, welche Zwischenwerte Sie erhalten. Wie auf meinem Bildschirmfoto



Wieder mein Pech! Offensichtlich habe ich beim Parsen Ihres Codes etwas verändert (ich habe vergessen, ihn zurückzugeben), und deshalb ist ein solcher Fehler aufgetreten. Jetzt (nur für den Fall) wieder kopiert das Original - richtig und auf insta zählt. Ich werde es dann mit anderen Brokern testen.
 

Hut ab, Sie haben es fast richtig gemacht! Bei allen drei bisher untersuchten Brokern mit unterschiedlichen Margenprozentsätzen ist die Berechnung für Gold (für Aufträge in einer Richtung) korrekt.

Aber das Drehbuch versagt immer noch bei Exoten. Ich habe bei fxcm broker aufgehört. Die prozentuale Marge für Gold beträgt 70000, für konventionelle Währungspaare 130, die Währung der Marge scheint USD zu sein. Und nichts wird irgendwo richtig gezählt! (. Ich selbst habe zwei Tage lang nach dem Schlüssel dafür gesucht, und in der Tat suche ich jetzt nach einer Antwort auf die Frage, wie es kommt, dass wir als Ergebnis der Berechnungen von Basiswährungen und deren Kursen mit Kurswährungen eine Margin-Währung erhalten... Vielleicht ist es das, oder vielleicht ist es die Tatsache, dass dieser Makler berücksichtigt den Prozentsatz der Marge auch für normale Währungspaare.

Hier können Sie das Terminal ru.files.fm/u/xfezz883#_ herunterladen, entpacken, mit der Exe-Datei ausführen, eine Demo machen...

 
K-2SO:

Hut ab, Sie haben es fast richtig gemacht! Bei allen drei bisher untersuchten Brokern mit unterschiedlichen Margenprozentsätzen ist die Berechnung für Gold (für Aufträge in eine Richtung) korrekt.

Aber das Drehbuch versagt immer noch bei Exoten. Ich habe bei fxcm broker aufgehört. Die prozentuale Marge für Gold beträgt 70000, für konventionelle Währungspaare 130, die Währung der Marge scheint USD zu sein. Und nichts wird irgendwo richtig gezählt! (. Ich selbst habe zwei Tage lang nach dem Schlüssel dafür gesucht, und in der Tat suche ich jetzt nach einer Antwort auf die Frage, wie es kommt, dass wir als Ergebnis der Berechnungen von Basiswährungen und deren Kursen mit Kurswährungen eine Margin-Währung erhalten... Vielleicht ist es das, oder vielleicht ist es die Tatsache, dass dieser Makler berücksichtigt den Prozentsatz der Marge auch für normale Währungspaare.

Sie können Terminal hier ru.files.fm/u/xfezz883#_ herunterladen, entpacken, mit der exe-Datei ausführen, die Demo starten...

Es ist kein Problem, die Kreuze zu berechnen. Sie müssen nur ein Angebot annehmen, das von der Margin-Währung in die Einlagenwährung umgerechnet wird.

Zum Beispiel EURJPY-Kurs

double price = stringFind == 0 ? 1 : type%2 == OP_BUY ? bid : ask;

Wenn Ihre Einzahlung in USD erfolgt, sollten Sie EURUSD verwenden. Wenn Sie CADJPY berechnen, sollten Sie USDCAD verwenden. Hier sollten wir sehen, wie man die Einzahlungswährung zur Randwährung hinzufügt, wir sollten sie nicht einfach in die Liste eintragen.

Die Zähler sind mit MarketInfo(symbol, MODE_MARGINHEDGED) nicht so schwierig. Das einzige Problem besteht darin, zuerst Gegenwährung zu finden und dann einen Teil davon mit Gegenwährung und den Rest - in voller Höhe - aufzulösen...

Im Allgemeinen sehe ich den einzigen Vorteil dieses Artikels darin, dass der Händler im Voraus weiß, welche Marge bei der Aktivierung des schwebenden Auftrags genommen wird, und den schwebenden Auftrag löschen kann, wenn er nicht rechtzeitig genug ist, um Fehler zu vermeiden. Ich hatte einmal damit zu kämpfen, als ich einen EA auf dem Markt platzierte.

Grund der Beschwerde: