Discussão do artigo "Receitas MQL5 - sinais de negociação de pivô"

 

Novo artigo Receitas MQL5 - sinais de negociação de pivô foi publicado:

No artigo, é apresentado o processo de desenvolvimento e implementação de uma classe-robô de sinais com base em pivôs, isto é, níveis de reversão. Com base nesta classe é construída uma estratégia usando a Biblioteca padrão. São consideradas as possibilidades de desenvolver uma estratégia de pivôs adicionando filtros.

ES é o nível i de resistência, enquanto SUP é o nível i de suporte. No total haverá: 1 nível base de reversão (PP), 6 níveis de resistência (RES) e 6 níveis de suporte (SUP).

Assim, o indicador aparece como um conjunto de níveis horizontais construídos segundo diferentes preços. A primeira execução do indicador no gráfico plotará os níveis apenas para o dia atual (Fig.1).


Fig.1 Indicador de pivôs: plotagem para o dia atual

Fig. 1 Indicador de pivôs: plotagem para o dia atual

Autor: Dennis Kirichenko

[Excluído]  
Eu já fiz isso, mas o resultado final é puramente em piwits, você precisa diluí-lo com algo e filtrá-lo com mais eficiência :)
 
Maxim Dmitrievsky:
Já fiz isso e, no final, puramente por piwits você consegue uma moeda, você precisa de algo para diluir e filtrar com mais eficiência :).

Uma anedota me vem à mente.

- Doutor, meu vizinho, ele já tem 70 anos, diz que durante a noite pode cinco vezes.


- Abra a boca. Ok, língua no lugar... O que o impede de dizer a mesma coisa?

 
MetaQuotes Software Corp.:

Artigo publicado MQL5 Recipes - Pivot Trading Signals:

Autor: Dennis Kirichenko


Há negociações estranhas que fecham imediatamente na próxima barra e não há uma palavra sobre elas no diário.


Além disso, em SignalPivots.mqh da pasta Model, há uma discrepância em LongCondition e 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:


E também em SignalPivots.mqh da pasta Model há uma discrepância em LongCondition e ShortCondition:


Ela é imaginária :-)

O sinalizador no método CSignalPivots::LongCondition() é simplesmente redefinido, porque ele é chamado primeiro.

Há negociações estranhas que são imediatamente fechadas na próxima barra, e não há uma palavra sobre elas no log....

Preciso de seus detalhes. Corretora, tipo de conta, configurações do EA e do testador.

Não notei esse comportamento....

 

O indicador de pivôs não está carregando

 
Tavamanya:

O indicador de pivôs não está carregando


Dê uma olhada nas duas últimas frases do artigo:


É mais conveniente colocar os arquivos de estratégia em uma única pasta Pivots. Mova os arquivos de indicadores (Pivots.ex5 e MaTrendCatcher.ex5) para a pasta de indicadores %MQL5\Indicators após a compilação.