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
Expert Advisors

Zwei MA und ein RSI - Experte für den MetaTrader 5

Veröffentlicht:
Vladimir Karputov
Ansichten:
1072
Rating:
(26)
Veröffentlicht:
2018.06.27 14:35
\MQL5\Profiles\Tester\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Nach einer Idee von: Iurii Tokman.

MQL5-Code von: Vladimir Karputov.

Der EA handelt zwei iMA (Moving Average, MA) und einen iRSI (Relative Strength Index, RSI). Ein Handelssignal entsteht nur bei Erscheinen einer neuen Bar, während Stop-Loss der Positionen und ihr Schließen (im Falle eines Gewinns) bei jedem Tick kontrolliert werden.

Ein unkonventionelle Lösung wurde verwendet: Die Periodenlänge des Langsamen (Slow) Indikators beträgt das Doppelte des Schnellen (Fast), während die Periodenlänge des RSI immer gleich der des Schnellen (Fast) ist. Das reduziert die Anzahl der Parameter für die Optimierung.

Dafür können Sie jedes der Zeichen "<" und ">" in der Formel der Signale optimieren. Dafür wurden eigene Variablen (InpMoreLessBuy_1, InpMoreLessBuy_2, InpMoreLessBuy_3, InpMoreLessSell_1, InpMoreLessSell_2, und InpMoreLessSell_3) eingeführt. Mit diesen Variablen wird die Formel wie folgt modifiziert:

   bool signal_buy=(!InpMoreLessBuy_1  ?  ArrayFast[1]<ArraySlow[1]:  ArrayFast[1]>ArraySlow[1]) && 
                   (InpMoreLessBuy_2   ?  ArrayFast[0]>ArraySlow[0]:  ArrayFast[0]<ArraySlow[0]) &&
                   (InpMoreLessBuy_3   ?  RSI>InpRSI_level_UP      :  RSI<InpRSI_level_UP);
   bool signal_sell=(InpMoreLessSell_1 ?  ArrayFast[1]>ArraySlow[1]:  ArrayFast[1]<ArraySlow[1]) && 
                    (!InpMoreLessSell_2?  ArrayFast[0]<ArraySlow[0]:  ArrayFast[0]>ArraySlow[0]) &&
                    (!InpMoreLessSell_3?  RSI<InpRSI_level_DOWN    :  RSI>InpRSI_level_DOWN);


Eingabeparameter

  • Parameter des gleitenden Durchschnitts:

    • Fast: av. period - Glättungslänge des gleitenden Durchschnitts "Fast";
    • Fast: horizontal shift - horizontaler Versatz des gleitenden Durchschnitts "Fast";
    • Fast: type of price - Preistyp des gleitenden Durchschnitts "Fast";
    • Slow: horizontal shift - horizontaler Versatz des gleitenden Durchschnitts "Slow";
    • Slow: type of price - Preistyp des gleitenden Durchschnitts "Slow";
    • Fast and Slow: smoothing type - Glättungstyp (gleich für beide "Fast" und "Slow");

  • Parameter des RSI und der Signale:

    • RSI: type of price - Preistyp des RSI;
    • RSI: level UP - UP-Level des RSI;
    • RSI: level DOWN - DOWN-Level RSI.

  • Handelsparameter:

    • Stop Loss - Stop Loss (ist er "0", werden keine verwendet);
    • Take Profit - Take Profit (ist er "0", werden keine verwendet);
    • Trailing Stop - Trailing (ist er "0", werden kein Trailing verwendet);
    • Trailing Step - Schrittweite der Trailing-Stops;
    • Lots - konstante Lotgröße (Parameter Lots ist größer Null, Risk ist gleich Null);
    • Risk - dynamische Lotgröße (Parameter Risk ist größer Null und Lots ist gleich Null);
    • Maximum number of positions in one direction - Maximalzahl von Positionen in einer Richtung;
    • Close all positions when profit is achieved - Gewinn, bei dessen Erreichen alle Positionen geschlossen werden (ist der Wert Null, wird es nicht verwendet).
    • Close opposite positions - Gegenpositionen werden geschlossen (wenn "false" ist dieser Parameter deaktiviert);
    • magic number - eindeutiger Identifikator, Magicnummer des EAs.

Wie Sie sehen können, ermöglicht dieses EA neben der Einstellung der Parameter der Indikatoren auch die flexible Einstellung (und Deaktivierung) von Stop Loss, Take Profit, Trailing, die maximale Anzahl der in eine Richtung geöffneten Positionen, das Schließen von Positionen bei Gewinnzuwachs und das Schließen entgegengesetzter Positionen. Sie können auch die Berechnungen des Bestandsvolumens verwalten: Sie können mit einer permanenten Losgröße handeln (Lots über Null und Risk gleich Null), oder die Losgröße kann dynamisch berechnet werden (Risk über Null und Lots gleich Null).


Empfehlungen zur Optimierung

Wählen Sie im Modus "OHLC auf M1" ein Symbol und einen Zeitrahmen M15. Deaktivieren (auf Null setzen) Sie Stop Loss, Take Profit und Trailing und setzen Sie die maximale Anzahl der Positionen in jeder Richtung auf "1". Oder kopieren Sie in den Ordner MQL5\Profiles\Tester\ die Datei Two MA one RSI M15 Start.set, die bereits die ersten Optimierungsparameter für M15 enthält.

Wählen Sie die Art der Optimierung als "Schnell (genetischer Algorithmus)" und den zu optimierenden Parameter "Balance max".

Zur Optimierung empfehle ich das MQL5 Cloud Network zu verwenden: Optimierung mit USDJPY des Jahres 2017, in der Cloud plus meinem Vier-Kern Laptop

benötigte

2018.05.28 08:03:19.923 optimization done in 7 minutes 58 seconds

und kostete $0.08.

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

Exp_SilverTrend_CrazyChart Exp_SilverTrend_CrazyChart

Ein Handelssystem basierend auf den Signalen des Indikators SilverTrend_CrazyChart.

EA Stochastic EA Stochastic

Ein Handel auf Basis des Indikators iStochastic (Stochastic Oscillator, Stochastik). Stop Loss, Take Profit, und Trailing können für die Positionen verwendet werden.

OzFX_D1_IndAES_v1.0_HTF OzFX_D1_IndAES_v1.0_HTF

Der OzFX_D1_IndAES_v1.0 Indikator mit in den Eingabeparameter bestimmbarem Zeitrahmen.

CandlesticksBW_Alert CandlesticksBW_Alert

Ein Indikator mit farbigen Kerzen nach B. Williams, mit einer Hinweisgebung bei einer Trendwende und dem Senden von E-Mails und Push-Benachrichtigungen in solchen Situationen.