Der Moving Average Expert Advisor nutzt einen gleitenden Durchschnitt, um Handelssignale zu generieren. Positionen werden eröffnet und geschlossen, wenn der gleitende Durchschnitt den Preis der zuletzt gebildeten Kerze erreicht (Kerzenindex entspricht 1). Die Lotgröße wird dabei durch einen speziellen Algorithmus optimiert.
Der Expert Advisor analysiert die Übereinstimmung zwischen dem gleitenden Durchschnitt und dem Markpreis-Chart. Diese Überprüfung erfolgt durch die Funktion CheckForOpen(). Wenn der gleitende Durchschnitt die Kerze so trifft, dass er über dem Eröffnungspreis, aber unter dem Schlusskurs liegt, wird eine BUY-Position eröffnet. Umgekehrt wird eine SELL-Position eröffnet, wenn der gleitende Durchschnitt unter dem Eröffnungspreis und über dem Schlusskurs liegt.
Das Money Management des Experten ist einfach, aber effektiv: Die Kontrolle über das Volumen jeder Position erfolgt basierend auf den Ergebnissen der vorherigen Transaktionen. Dieser Algorithmus wird durch die Funktion LotsOptimized() implementiert. Die Grundlotgröße wird auf der Grundlage des maximal zulässigen Risikos berechnet:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
Der Parameter MaximumRisk zeigt den Grundrisikoanteil für jede Transaktion an. In der Regel liegt dieser Wert zwischen 0,01 (1%) und 1 (100%). Angenommen, das freie Margin (AccountFreeMargin) beträgt 20.500 Euro und die Regeln des Kapitalmanagements schreiben ein Risiko von 2% vor, dann beträgt die Grundlotgröße 20500 * 0.02 / 1000 = 0.41. Es ist wichtig, die Genauigkeit der Lotgröße zu kontrollieren und das Ergebnis mit den zulässigen Werten zu normalisieren. Normalerweise sind Bruchlots mit einer Schrittgröße von 0.1 erlaubt. Eine Transaktion mit einem Volumen von 0.41 wird nicht ausgeführt. Zur Normalisierung wird die Funktion NormalizeDouble() verwendet, die eine Genauigkeit von 1 Zeichen nach dem Komma liefert. Dies ergibt eine Grundlotgröße von 0.4. Die Berechnung der Grundlotgröße auf Basis des freien Margins ermöglicht es, die Volumen der Operationen je nach Erfolg im Handel zu erhöhen, d.h. mit Reinvestitionen zu handeln. Dies ist der grundlegende Mechanismus für ein verpflichtendes Kapitalmanagement zur Steigerung der Handelseffektivität.
Der DecreaseFactor gibt an, um wie viel die Lotgröße nach unprofitablen Handelsgeschäften reduziert wird. Normale Werte sind 2, 3, 4, 5. Wenn die vorhergehenden Transaktionen unprofitabel waren, verringern sich die folgenden Volumina um den Faktor DecreaseFactor, um die unprofitable Phase abzuwarten. Dies ist der Hauptfaktor im Kapitalmanagement-Algorithmus. Die Idee ist ganz einfach: Wenn der Handel erfolgreich ist, arbeitet der Expert Advisor mit der Grundlotgröße und maximiert den Gewinn. Nach der ersten unprofitablen Transaktion wird der Expert Advisor "langsamer" arbeiten, bis eine neue positive Transaktion erfolgt. Es ist möglich, die Funktion der "Geschwindigkeitsreduzierung" zu deaktivieren, indem man DecreaseFactor = 0 angibt. Die Anzahl der letzten aufeinanderfolgenden unprofitablen Transaktionen wird in der Handelsgeschichte ermittelt. Die Grundlotgröße wird auf dieser Basis neu berechnet:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Auf diese Weise ermöglicht der Algorithmus eine effektive Reduzierung des Risikos, das aus einer Reihe unprofitabler Transaktionen resultiert. Am Ende der Funktion wird die Lotgröße unbedingt auf die minimale zulässige Lotgröße überprüft, da die vorherigen Berechnungen zu lot = 0 führen können:
if(lot<0.1) lot=0.1;
Der Expert Advisor ist hauptsächlich für die Arbeit mit täglichen Perioden gedacht und im Testmodus für das Handeln zum Schlusskurs. Er wird nur beim Öffnen einer neuen Kerze handeln, weshalb die Modi der Every-Tick-Modellierung nicht benötigt werden.
Die Testergebnisse werden im Bericht dargestellt.
Strategie Tester Bericht
Moving Average
Symbol EURUSD (Euro gegen US Dollar) Periode 1 Stunde (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Modell Jeder Tick (basierend auf allen verfügbaren Zeitrahmen mit fraktaler Interpolation jedes Ticks) Parameter Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Balken im Test 19371 Ticks modelliert 656918 Modellierungsqualität 25.00% Startkapital 10000.00 Gesamt Nettogewinn 1695.20 Bruttogewinn 4293.20 Bruttoverlust -2598.00 Gewinnfaktor 1.65 Erwarteter Gewinn 10.80 Absoluter Drawdown 40.35 Maximaler Drawdown (%) 318.50 (3.0%) Gesamttransaktionen 157 Short-Positionen (gewonnen %) 73 (26.03%) Long-Positionen (gewonnen %) 84 (32.14%) Gewinntransaktionen (% des Gesamt) 46 (29.30%) Verlusttransaktionen (% des Gesamt) 111 (70.70%) Größte Gewinntransaktion 262.55 Verlusttransaktion -91.00 Durchschnitt Gewinntransaktion 93.33 Verlusttransaktion -23.41 Maximal aufeinanderfolgende Gewinne (Gewinn in Geld) 2 (387.15) aufeinanderfolgende Verluste (Verlust in Geld) 7 (-287.25) Maximal aufeinanderfolgende Gewinne (Anzahl der Gewinne) 387.15 (2) aufeinanderfolgende Verluste (Anzahl der Verluste) -287.25 (7) Durchschnitt aufeinanderfolgende Gewinne 1 aufeinanderfolgende Verluste 3
Verwandte Beiträge
- Handelssignale mit MQL5 Wizard: Bullish und Bearish Harami mit CCI bestätigen
- MQL5 Wizard: Trade Signale auf Basis von Kurs-Crossover mit gleitendem Durchschnitt und ADX Bestätigung
- MQL5 Wizard: Handels-Signale mit 3 schwarzen Krähen / 3 weißen Soldaten + CCI für MetaTrader 5
- MQL5 Wizard: Handelssignale durch 3 Schwarze Krähen/3 Weiße Soldaten + RSI
- MQL5 Wizard: Handelssignale mit 3 schwarzen Krähen/3 weißen Soldaten und Stochastik erstellen