Diskussion zum Artikel "Geldverwaltungsfunktionen in einem Expert Advisor"

 

Neuer Artikel Geldverwaltungsfunktionen in einem Expert Advisor :

Die Entwicklung von Handelsstrategien konzentriert sich in erster Linie auf die Suche nach Mustern für den Marktein- und -austritt sowie auf die Aufrechterhaltung von Positionen. Wenn wir in der Lage sind, einige Muster in Regeln für den automatisierten Handel zu gießen, steht der Händler vor der Frage der Berechnung der Menge der Positionen, der Größe der Margen sowie der Aufrechterhaltung eines soliden Bestandes an verpfändbaren Mitteln zur Sicherung offener Positionen im automatisierten Handel. In diesem Beitrag verwenden wir die Programmiersprache MQL5 zur Konstruktion einfacher Beispiele für die Durchführung dieser Berechnungen.

Autor: MetaQuotes Software Corp.

 

Oh, hier ist das Köstlichste im "Reading Room" erschienen, lasst uns lesen, was und wie ...

Vor allem von so einem Autor. :)

 

Ich würde auch gerne die Funktion zur Berechnung von Swaps sehen. Es gibt 5 Arten von Swaps, und jede hat ihre eigenen Nuancen.

Manchmal kommt man mit der wissenschaftlichen Methode nicht an die richtige Stelle.

Ich habe drei Varianten durch Auswahl gefunden, aber es gibt noch SYMBOL_SWAP_MODE_BY_INTEREST. Ich kann es nicht überprüfen, weil ich keinen Broker mit dieser Berechnungsmethode finden kann.

Bitte - wenn es eine Möglichkeit gibt, in der CodeBase die Funktion der Swap-Berechnung für die angegebene Währung und das Lot zu posten - werden wir dankbar sein.

 
sergeev:

Ich würde auch gerne die Funktion zur Berechnung von Swaps sehen. Es gibt 5 Arten von Swaps, und jede hat ihre eigenen Nuancen.

Manchmal kommt man mit der wissenschaftlichen Methode nicht an die richtige Stelle.

Ich habe drei Varianten durch Auswahl gefunden, aber es gibt noch SYMBOL_SWAP_MODE_BY_INTEREST. Ich kann es nicht überprüfen, weil ich keinen Broker mit dieser Berechnungsmethode finden kann.

Bitte - wenn es eine Möglichkeit gibt, in CodeBase die Funktion der Swap-Berechnung für die angegebene Währung und das Lot zu posten - werden wir dankbar sein.

+1. Oder noch besser, implementieren Sie alle diese Berechnung in der Standard-Bibliothek, und wir werden sehen, wie und was richtig zu tun...
 
Ich glaube, das steht in der Dokumentation. und in mcl4 war es dasselbe, nur die Formeln wurden geändert.
 
Если даже торговля на данном счете разрешена, то это еще не означает, что эксперт имеет право торговать. Чтобы проверить, разрешено ли торговать эксперту, пишем:

Was sind diese Fälle, Handel ist erlaubt, aber der Expert Advisor ist nicht erlaubt zu handeln?

Handelt es sich um ein Verbot des Brokers oder um Terminaleinstellungen?

In Analogie zu 4: - " ...wenn der Experte handeln darf und der Fluss für Handelsoperationen frei ist ..."

d.h. IsTradeAllowed = IsExpertEnabled + IsTradeContextBusy ??? ?

IsTradeAllowed - Документация на MQL4
  • docs.mql4.com
IsTradeAllowed - Документация на MQL4
 

Interessanter und notwendiger Artikel! Ich habe versucht, die Formeln in diesem Artikel zu überprüfen und das ist, was ich bekam. Nehmen wir EURGBP als Beispiel. Die Kontowährung ist in Dollar. Das nächstgelegene Währungspaar ist EURUSD, d.h. mode=true. So weit, so gut? Wir verwenden die Formeln aus dem Artikel, um die erforderliche Marge zu ermitteln:

   if(direction==POSITION_TYPE_BUY)
     {
      //--- umgekehrtes Zitat
      if(mode)
        {
         //--- Zählung des Kaufpreises für die umgekehrte Notierung
         calc_price=tick.ask;
         answer=lot*lot_size*calc_price;
        }
...
if(direction==POSITION_TYPE_SELL)
     {
      //--- umgekehrtes Zitat
      if(mode)
        {
         //--- Zählung nach Verkaufspreis für den umgekehrten Kurs
         calc_price=tick.bid;
         answer=lot*lot_size*calc_price;
        }

Das heißt, wenn wir kaufen, sollte laut Artikel die erforderliche Marge sein:

KAUFEN: Marge = Lot*Lotgröße*Tick_ask/Leverage

und beim Verkaufen:

SELL: Marge = lot*lot_size*tick_bid/leverage

Wir kodieren diese Formeln in einem einfachen EA und versuchen, EURUSD mit geringen Mitteln im Voraus zu verkaufen und zu kaufen, damit der Metatrader uns sagt, welche Margin benötigt wird. Gleichzeitig geben wir unsere berechnete Marge aus. Wir erhalten diese Meldungen vom Tester:

2010.07.06 16:34:01 Core 1 no enough money [instant sell 0.10 EURGBP at 0.82227 sl: 0.83296 tp: 0.79796]
2010.07.06 16:34:01 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.91, NewFreeMargin: -112.91 - vom Tester berechnete Marge
2010.07.06 16:34:01 Core 1 Fehler: nicht genug Geld. Freie Marge = 10, erforderliche Marge = 122,899 - von uns berechnete Marge.


2010.07.06 16:34:01 Kern 1 nicht genug Geld [ Sofortkauf 0.10 EURGBP zu 0.81247 sl: 0.80191 tp: 0.82988]
2010.07.06 16:34:01 Kern 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.72, NewFreeMargin: -112.72 - vom Tester berechnete Marge
2010.07.06 16:34:01 Core 1 Fehler: nicht genug Geld. Freie Marge = 10, erforderliche Marge = 122,737 - von uns berechnete Marge.

Das ist ein Unterschied. Jetzt ändern wir die Formeln zur Berechnung der erforderlichen Marge in

KAUFEN: Marge = Lot*Lotgröße*Tick_Bid/Leverage

SELL: Marge = lot*lot_size*tick_ask/leverage

was dem Artikel widerspricht. Wir erhalten solche Meldungen von den Testern:

2010.07.06 16:39:49 Core 1 no enough money [instant sell 0.10 EURGBP at 0.82227 sl: 0.83296 tp: 0.79796]
2010.07.06 16:39:49 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.91, NewFreeMargin: -112.91 - vom Tester berechnete Marge
2010.07.06 16:39:49 Core 1 Fehler: nicht genug Geld. Free Margin = 10, Required Margin = 122.911 - von uns berechnete Margin

2010.07.06 16:39:49 Core 1 nicht genug Geld [instant buy 0.10 EURGBP at 0.81247 sl: 0.80191 tp: 0.82988]
2010.07.06 16:39:49 Core 1 PrevBalance: 10.00, PrevEquity 10.00, PrevMargin: 0.00, NewMargin: 122.72, NewFreeMargin: -112.72 - vom Tester berechnete Marge
2010.07.06 16:39:49 Core 1 Fehler: nicht genug Geld. Freie Marge = 10, erforderliche Marge = 122,722 - von uns berechnete Marge
.

Hier ist die vom Expert Advisor mit der "falschen" Methode berechnete Marge genau dieselbe wie die vom Tester berechnete Marge. Es stellt sich heraus, dass entweder im Tester oder im Artikel Bid und Ask bei der Berechnung von Crosses wie EURGBP neu angeordnet werden. Wer hat Recht: der Artikel oder der Tester?

 

Der Artikel ist gut und nützlich für mich.

Sowohl für das Verständnis als auch für die Zeitersparnis. Ich danke Ihnen

Ich verstehe nur nicht, was wir mit dieser Funktion erreichen.

Wenn der Betrag der Sicherheiten erforderlich ist, sollte dann nicht der Vertragswert durch die Hebelwirkung geteilt werden?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
SHOOTER777:

Der Artikel ist gut und nützlich für mich.

Sowohl für das Verständnis als auch für die Zeitersparnis. Dankeschön

Ich verstehe nur nicht, was wir mit dieser Funktion erreichen.

Wenn die Höhe der geforderten Sicherheiten, sollte dann nicht der Vertragswert durch den Hebel geteilt werden?

Ich habe es nicht sofort verstanden. Ich habe eine Stunde gebraucht, um herauszufinden, warum das Ergebnis 100 Mal vom tatsächlichen Ergebnis abweicht.
 
SHOOTER777:

Wenn die Höhe der Einschusszahlung erforderlich ist, sollte dann nicht der Kontraktwert durch die Hebelwirkung geteilt werden?

Der Kontraktwert ist nicht der Einschussbetrag. Der Code teilt dann den Wert durch die Hebelwirkung, um den Einschussbetrag zu erhalten.
 
auf das EURUSD-Paar auf Ihrer Demo... mit verfügbaren Mitteln von 10 000 kann ich nicht mit Lot 10 öffnen... warum? Warum? und wie berechnet man das maximal mögliche Lot auf der Grundlage des verfügbaren Kapitals. danke.