Diskussion zum Artikel "Die Rezepte MQL5 - die Handelssignale der Pivots"

 

Neuer Artikel Die Rezepte MQL5 - die Handelssignale der Pivots :

Im Artikel wurde der Prozess der Entwicklung und der Realisierung des Klasse-Signalgebers auf der Grundlage der Pivots dargestellt — der Wendeebenen. Auf der Grundlage dieser Klasse wird die Strategie unter Verwendung der Standardbibliothek gebaut. Es werden die Möglichkeiten der Entwicklung der Pivots-Strategie durch das Hinzufügen der Filter betrachtet.

Also, optisch sieht der Indikator wie ein Satz aus horizontalen Ebenen aus, die nach verschiedenen Preisen gebaut werden. Der erste Start des Indikators auf dem Chart wird die Ebenen nur für den laufenden Tag (die Abb.1) aufbauen.

Abb.1 Der Indikator Pivots: die Zeichnung für den aktuellen Tag

in Abb. 1. Der Indikator Pivots: die Zeichnung für den aktuellen Tag

Autor: Dennis Kirichenko

 
Ich habe dies getan, das Endergebnis ist rein auf piwits, müssen Sie es mit etwas verdünnen und filtern es effizienter :)
 
Maxim Dmitrievsky:
Ich habe dies getan, am Ende, rein durch piwits Sie eine Münze zu bekommen, müssen Sie etwas zu verdünnen und Filter effektiver :).

Eine Anekdote fällt mir dazu ein.

- Herr Doktor, mein Nachbar, er ist schon 70, sagt, dass er in der Nacht fünfmal kann.


- Mach den Mund auf. Okay, Zunge an Ort und Stelle... Was hindert Sie daran, das Gleiche zu sagen?

 
MetaQuotes Software Corp.:

Veröffentlichter Artikel MQL5 Recipes - Pivot Trading Signals:

Autor: Dennis Kirichenko


Es gibt seltsame Trades, die sofort mit dem nächsten Balken geschlossen werden, ohne dass im Journal ein Wort darüber steht.


Auch in SignalPivots.mqh aus dem Model-Ordner gibt es eine Diskrepanz in LongCondition und ShortCondition:

//+------------------------------------------------------------------+
//| Проверка условия на покупку                                      |
//+------------------------------------------------------------------+
int CSignalPivots::LongCondition(void)
  {
   int result=0;
//--- если Модель 0 учитывается
   if(IS_PATTERN_USAGE(0))
      //--- если Модель 0 не отработана
      if(!m_pattern_0_done)
        {
         m_is_signal=false;
         //--- если день открылся ниже пивота
         if(m_daily_open_pr<m_pivot_val)
           {
            //--- максимальная цена на прошлом баре
            double last_high=m_high.GetData(1);
            //--- если цена получена
            if(last_high>WRONG_VALUE && last_high<DBL_MAX)
               //--- если было касание снизу (с учётом допуска)
               if(last_high>=(m_pivot_val-m_pnt_near))
                 {
                  result=m_pattern_0;
                  m_is_signal=true;
                  //--- в Журнал
                  this.Print(last_high,ORDER_TYPE_BUY);
                 }
           }
         //--- если Модель 1 учитывается
         if(IS_PATTERN_USAGE(1))
           {
            //--- если на прошлом баре был бычий тренд
            if(m_trend_val>0. && m_trend_val!=EMPTY_VALUE)
              {
               //--- если есть ускорение
               if(m_trend_color==0. && m_trend_color!=EMPTY_VALUE)
                  result+=(m_pattern_1+m_speedup_allowance);
               //--- если нет ускорения
               else
                  result+=(m_pattern_1-m_speedup_allowance);
              }
           }
        }
//---
   return result;
  }
//+------------------------------------------------------------------+
//| Проверка условия на продажу                                      |
//+------------------------------------------------------------------+
int CSignalPivots::ShortCondition(void)
  {
   int result=0;
//--- если Модель 0 учитывается
   if(IS_PATTERN_USAGE(0))
      //--- если Модель 0 не отработана
      if(!m_pattern_0_done)
        {
         //--- если день открылся выше пивота
         if(m_daily_open_pr>m_pivot_val)
           {
            //--- минимальная цена на прошлом баре
            double last_low=m_low.GetData(1);
            //--- если цена получена
            if(last_low>WRONG_VALUE && last_low<DBL_MAX)
               //--- если было касание сверху (с учётом допуска)
               if(last_low<=(m_pivot_val+m_pnt_near))
                 {
                  result=m_pattern_0;
                  m_is_signal=true;
                  //--- в Журнал
                  this.Print(last_low,ORDER_TYPE_SELL);
                 }
           }
         //--- если Модель 1 учитывается
         if(IS_PATTERN_USAGE(1))
           {
            //--- если на прошлом баре был медвежий тренд
            if(m_trend_val<0. && m_trend_val!=EMPTY_VALUE)
              {
               //--- если есть ускорение
               if(m_trend_color==0. && m_trend_color!=EMPTY_VALUE)
                  result+=(m_pattern_1+m_speedup_allowance);
               //--- если нет ускорения
               else
                  result+=(m_pattern_1-m_speedup_allowance);
              }
           }
        }
//---
   return result;
  }
 
Igor Nistor:


Und auch in SignalPivots.mqh aus dem Model-Ordner gibt es eine Diskrepanz in LongCondition und ShortCondition:


Sie ist imaginär :-)

Das Flag in der Methode CSignalPivots::LongCondition() wird einfach zurückgesetzt, weil sie zuerst aufgerufen wird.

Es gibt seltsame Trades, die sofort beim nächsten Bar geschlossen werden, und kein Wort darüber im Log....

Ich brauche Details von Ihnen. Broker, Kontotyp, EA- und Tester-Einstellungen.

Ich habe ein solches Verhalten nicht bemerkt....

 

Pivots-Indikator wird nicht geladen

 
Tavamanya:

Pivots-Indikator wird nicht geladen


Schauen Sie sich die letzten 2 Sätze des Artikels an:


Es ist am praktischsten, die Strategiedateien in den einzelnen Pivots-Ordner zu legen. Verschieben Sie die Indikator-Dateien (Pivots.ex5 und MaTrendCatcher.ex5) nach der Kompilierung in den Indikator-Ordner %MQL5\Indicators.