und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 1432
- Rating:
- Veröffentlicht:
- 2016.04.26 09:45
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Der Gleitende Durchschnitt Advisor zum Generieren von Handelssignalen verwendet den gleitenden Durchschnitt. Das Öffnen und Schließen von Positionen wird ausgelöst, wenn der gleitende Durchschnitt den Preis eines kürzliche gebildeten Balkens trifft (der Bar Index ist 1). Die Lotgröße wird anhand eines speziellen Algorithmus optimiert.
Der Expert Advisor analysiert das Verhältnis zwischen gleitendem Durchschnitt um dem Preischart. Die Überprüfung wird durch die CheckForOpen() Funktion durchgeführt. Wenn der gleitende Durchschnitt den Balken so trifft, dass der erstere höher ist als der Eröffnungspreis aber niedriger als der Schlußkurs, wird eine Kaufposition geöffnet. Wenn der gleitende Durchschnitt den Balken so trifft, dass der erstere tiefer als der Eröffnungspreis aber höher als der Schlußkurs ist, wird eine Verkaufsposition geöffnet.
Das im Expert verwendete Money Management ist sehr einfach aber effektiv: die Steuerung der Positionsgröße hängt von den vorherigen Transaktionsergebnissen ab. Der Algorithmus wird über die LotsOptimized() Funktion implementiert. Der anfängliche Lotgröße wird auf Basis des maximal erlaubten Risikos berechnet:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
Der MaximumRisk Parameter zeigt den anfänglichen Risikoprozentsatz für jede Transaktion. Er hat normalerweise einen Wert zwischen 0.01 (1%) und 1 (100%). Wenn die freie Margin (AccountFreeMargin) zum Beispiel $20,500 beträgt und die Regeln des Kapitalmanagements vorgeben, dass ein Risiko von 2% eingegangen werden soll, wird die anfängliche Lotgröße 20500 * 0.02 / 1000 = 0.41 betragen. Es ist sehr wichtig die Lotgrößen sehr genau zu steuern um das Eregebnis mit den erlaubten Werten zu normalisieren. Normalerweise sind Bruchteile von Lots in Schritten von 0.1 zulässig. Ein Transaktion mit einem Volumen von 0.41 wird nicht ausgeführt. Zur Normalisierung wird die NormalizeDouble() Funktion mit einer Genauigkeit von 1 Stelle hinter dem Komma verwendet. Dies ergibt eine anfängliche Lotsize von 0.4. Die anfängliche Lotgrößenberechnung auf Basis der freien Margin erlaubt, dass das Volumen abhängig vom Tradingerfolg steigt, d.h. Gewinne zu reinvestieren. Das ist der grundsätzliche Mechnismus mit obligatorischem Kapitalmanagement zur Verbesserung der Handelseffektivität. DecreaseFactor ist eine Erweiterung mit der die Lotgröße nach Verlusten reduziert wird. Normale Werte sind 2,3,4,5. Wenn die vorangegangenen Transatktionen Verluste waren wird das folgende Volumen durch den in DecreaseFactor angegebenen Faktor reduziert um während Verlustperioden abzuwarten. Das is der Hauptfaktor des Kapitalmanagement Algorithmus. Die Idee ist sehr einfach: wenn der Handel erfolgreich verläuft, arbeitet der Expert mit der anfänglichen Lotgröße um maximalen Profit zu erzielen. Nach der ersten Verlusttransaktion wird der Expert "die Geschwindigkeit reduzieren" bis eine neue erfolgreiche Transaktion gelungen ist. Der Algorithmus ermöglicht es, das "Reduzieren der Geschwindigkeit" abzuschlaten, indem man den DecreaseFactor = 0 setzt. Der Betrag der letzten aufeinanderfolgenden unprofitablen Transaktionen wird über die Trade History berechnet. Die anfängliche Lotgröße wird auf folgender Basis neu berechnet:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Auf diese Weise erlaubt der Algorithmus das Risiko aufgrund einer Serie von nicht profitalen Transaktionen effektiv zu reduzieren. Die Lotgröße wird am Ende der Funktion immer auf die minimal erlaubte Lotgröße geprüft, weil die zuvor durchgeführten Berechnungen in iner Lotgröße von 0 resultieren können:if(lot<0.1) lot=0.1;
Der Expert ist hauptsächlich für Tagesperioden vorgesehen und im Testmodus wird mit Schlußpreisen gearbeitet. Trades werden immer nur zur Eröffnung eines Balken ausgeführt, deshalb wird Modellierung mit "Jeder Tick" nicht benötigt.Testergebenisse werden im Bericht dargestellt.
Strategy Tester Bericht
Gleitender Durchschnitt
Symbol EURUSD (Euro vs US Dollar) Periode 1 Stunde (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Modell Jeder Tick (basierend auf den kleinsten, verfügbaren Timeframes mit fraktaler Interpolation jedes Ticks) Parameter Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Balken im Test 19371 Modellierte Ticks 656918 Modellierungsqualität 25.00% Startkapital 10000.00 Gesamter Nettoprofit 1695.20 Gesamtprofit 4293.20 Gesamtverlsut -2598.00 Profitfaktor 1.65 Erwarteteer Payoff 10.80 Absoluter Drawdown 40.35 Maximaler Drawdown (%) 318.50 (3.0%) Gesamtzahl Trades 157 Short Positionen (gewonnen %) 73 (26.03%) Long Positionen (gewonnen %) 84 (32.14%) Gewinntrades (% von Total) 46 (29.30%) Verlusttrades (% von Total) 111 (70.70%) Gröter Gewinntrade 262.55 Verlusttrade -91.00 Mittlerer Gewinntrade 93.33 Verlusttrade -23.41 Maximaler Gewinne in Folge (Gewinn als Betrag) 2 (387.15) Verluste in Folge (Verlust als Betrag) 7 (-287.25) Maximal Gewinn in Folge (Anzahl Gewinntrades) 387.15 (2) Verluste in Folge (Anzahl Verlusttrades) -287.25 (7) Mittlerer Gewinne in Folge 1 Verluste in Folge 3
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/7927

Eine Version eines Indikators um Unterstützungen/Widerstände zu erkenen.

Dieses kleine Skript zeigt optisch die Identität der beiden gängigen gleitenden Durchschnitte

Dieser Indikator färbt Preise bestimmter Bereche ein. hh: mm_start vor hh: mm_finish.

machXalert Indikator.