Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
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
Bibliotheken

SignalMAAboveBelow 3 - Bibliothek für den MetaTrader 5

Ansichten:
760
Rating:
(14)
Veröffentlicht:
2018.05.02 10:20
\MQL5\Signal\ \MQL5\Experts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Diese Bibliothek ist eine Weiterentwicklung von SignalMAAboveBelow 2.


Was ist neu in Version 3

  • Der Parameter CurrentBarSize erlaubt das Bestimmen der aktuellen Bar (berechnet als Close-Open);
  • PreviousBarSize ist die Größe der vorherigen Bar (berechnet als Close-Open).

Wenn der Preis der aktuellen Bar ÜBER dem Indikator liegt, müssen beide Bars bullish sein. Wenn der Preis der aktuellen Bar UNTER dem Indikator liegt, müssen beide Bars bearish sein. Damit sind beide Parameter (CurrentBarSize und PreviousBarSize) Schutzfilter bei der Positionseröffnung.

Im Modul der Signale müssen wir die Zeitreihen in den Konstruktor einbinden:

//+------------------------------------------------------------------+
//| Konstruktor                                                      |
//+------------------------------------------------------------------+
CSignalMA::CSignalMA(void) : m_reverse(false),
                             m_ma_period(12),
                             m_ma_shift(0),
                             m_ma_method(MODE_SMA),
                             m_ma_applied(PRICE_CLOSE),
                             m_pattern_0(80),
                             m_size_current_bar(40),
                             m_size_previous_bar(20)
  {
//--- initialization of protected data
   m_used_series=USE_SERIES_OPEN+USE_SERIES_HIGH+USE_SERIES_LOW+USE_SERIES_CLOSE;
  }

Nach dem Einbinden von Zeitreihen können wir auf die Objekte m_close und m_open der Klassen CiClose bzw. CiOpen zugreifen (die Objekte werden auf einer höheren Ebene deklariert - auf der Elternebene ExpertBase.mqh).

Wir arbeiten mit diiese4n Objekten in CSignalMA::LongCondition

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalMA::LongCondition(void)
  {
   if(m_type_trade==1) // m_type_trade: enum type of trade: 0 -> BUY, 1 -> SELL, 2 -> BUY and SELL
      return(0);
   int result=0;
   int idx   =StartIndex();
//---
   if(m_close.GetData(idx+1)-m_open.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_close.GetData(idx)-m_open.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar

и в CSignalMA::ShortCondition

//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalMA::ShortCondition(void)
  {
//--- m_type_trade: enum type of trade: 0 -> BUY, 1 -> SELL, 2 -> BUY and SELL
   if(m_type_trade==0)
      return(0);
   int result=0;
   int idx=StartIndex();
//---
   if(m_open.GetData(idx+1)-m_close.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_open.GetData(idx)-m_close.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar

Beispiel für Öffnungspositionen bei Reverse == false:

SignalMAAboveBelow 3 Kaufen

Abb. 1. SignalMAAboveBelow 3 - Eröffnen einer Kaufposition

SignalMAAboveBelow 3 Verkaufen

Abb. 2. SignalMAAboveBelow 3 - Eröffnen einer Verkaufsposition


Parameter des Signal-Moduls

  • Reverse - Umkehren der Signale;
  • PeriodMA - die Mittelungsperiode des Indikators Gleitender Durchschnitt;
  • Shift - die horizontale Verschiebung des Indikators Gleitender Durchschnitt;
  • Methode - Art der Glättung des Indikators Gleitender Durchschnitt;
  • Applied - Berechnungspreis für den gleitenden Durchschnitt;
  • TypeOfTrade - Arten der Handelssignale: 0 → KAUF, 1 → VERKAUF, 2 → KAUF und VERKAUF;
  • CurrentBarSize - Größe der aktuellen Bar (berechnet als Close-Open);
  • PreviousBarSize - Größe der vorherigen Bar (berechnet als Close-Open);

Der Test-Expert Advisor TestSignalMAAboveBelow3.mq5 verwendet die Standardparameter ohne Optimierung.

Falls der Expert Advisor TestSignalMAAboveBelow3.mq5 mit dem MQL5-Assistenten erstellt wird

//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title                 ="TestSignalMAAboveBelow3"; // Document name
ulong                    Expert_MagicNumber           =20884;                     // 
bool                     Expert_EveryTick             =false;                     // 
//--- inputs for main signal

aktivieren wir die Operation ON EVERY TICK (ändern Sie die Voreinstellung "false" auf "true") und können dann interessantere Ergebnisse erzielen: der EA wird die Bedingung schneller verarbeiten, wenn die aktuelle Bar (Bar mit dem Index #0) gleich oder etwas größer als der Parameter CurrentBarSize wird.

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

VSI VSI

VSI - Volatility Switch Indikator.

IDayIIndex IDayIIndex

Der Oszillator IDayIIndex (Intraday Intensity Index).

Alexav SpeedUp M1 Alexav SpeedUp M1

Gleichzeitiges Öffnen zweier Gegenpositionen Trailing Stop.

Cross_Line_Trader Cross_Line_Trader

Der Expert Advisor öffnet Positionen, wenn der Preis die Linien überschreitet.