Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
1354
Rating:
(31)
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


SymbolEURUSD (Euro vs US Dollar)
Periode1 Stunde (H1) 2003.01.08 00:00 - 2003.11.25 00:00
ModellJeder Tick (basierend auf den kleinsten, verfügbaren Timeframes mit fraktaler Interpolation jedes Ticks)
ParameterLots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11;

Balken im Test19371Modellierte Ticks656918Modellierungsqualität25.00%

Startkapital10000.00



Gesamter Nettoprofit1695.20Gesamtprofit4293.20Gesamtverlsut-2598.00
Profitfaktor1.65Erwarteteer Payoff10.80

Absoluter Drawdown40.35Maximaler Drawdown (%)318.50 (3.0%)


Gesamtzahl Trades157Short Positionen (gewonnen %)73 (26.03%)Long Positionen (gewonnen %)84 (32.14%)

Gewinntrades (% von Total)46 (29.30%)Verlusttrades (% von Total)111 (70.70%)
GröterGewinntrade262.55Verlusttrade-91.00
MittlererGewinntrade93.33Verlusttrade-23.41
MaximalerGewinne in Folge (Gewinn als Betrag)2 (387.15)Verluste in Folge (Verlust als Betrag)7 (-287.25)
MaximalGewinn in Folge (Anzahl Gewinntrades)387.15 (2)Verluste in Folge (Anzahl Verlusttrades)-287.25 (7)
MittlererGewinne in Folge1Verluste in Folge3

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/7927

Unterstützung \ Widerstand Unterstützung \ Widerstand

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

EMA und SMMA sind identisch EMA und SMMA sind identisch

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

Painter_v1 Painter_v1

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

MachXalert MachXalert

machXalert Indikator.