Algoritmo "centrífuga" algorítmica - página 8

 
Primeiro, precisamos definir o que são"pontos ideais de entrada" e"pontos ideais de saída".
 
Реter Konow:

2. O ZigZag não mostrará pontos de entrada perfeitos. Não é isso. Haverá ali uma grande margem de erro. Um otimista com uma AG pode fazer muito melhor. IMHO.

ZigZag mostra apenas pontos ideais de entrada/saída e nada mais

Embora se estamos falando de um ZZ específico, então sim, podemos discutir, eu usei o meu - não tem ajuste de min.bar - ele simplesmente desenha linhas de Alto para Baixo, o ajuste é a distância mínima de Alto para Baixo

https://www.mql5.com/ru/forum/318267#comment_12508440

 
Você precisa de um ziguezague não por barras, mas por pontos, com um limite de 1 ponto a mais do que o spread e por minutos dele, Sim, é claro, algumas flutuações dentro das barras que não vai pegar... e esse é o problema!
 

Oops! 8888


 
Dmitry Fedoseev:
e nas atas que o

Na verdade não, eu tenho testado tudo no otimizador ;)

Em M1 com a configuração mínima afetará muito o spread, é melhor tomar mais configurações em pp ou outra TF, mas não mais velho que H1, em H4 e acima será menor retorno

 
Igor Makanu:

Na verdade não, eu tenho testado tudo no otimizador ;)

Em M1 com a configuração mínima afetará muito o spread, é melhor tomar mais configurações em pp ou outra TF, mas não mais velho que H1, em H4 e acima será menor retorno

O que era o ziguezague?

 
Олег avtomat:
Primeiro, precisamos definir o que são "pontos ideais de entrada" e"pontos ideais de saída".

O ponto de entrada ideal é o preço e a hora de início do "comércio ideal".

Ponto de saída ideal - o preço e o tempo de conclusão do "comércio ideal".

O comércio ideal é o comércio com a melhor relação entre a duração do tempo e o lucro.

imho.

 
Dmitry Fedoseev:

O que era o ziguezague?

para MT5 feito há muito tempo,https://www.mql5.com/ru/forum/318267#comment_12508440

//+------------------------------------------------------------------+
//|                                                     ZigZagZZ.mq5 |
//|                                                            IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

// plot ZigZagZZ
#property indicator_label1  "ZigZagZZ"
#property indicator_type1   DRAW_SECTION
#property indicator_color1  clrDarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  3
// input parameters
input int   Deviation=100;
// indicator buffers
double         ZZBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
// indicator buffers mapping
   SetIndexBuffer(0,ZZBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int        rates_total,
                const int        prev_calculated,
                const datetime   &time[],
                const double     &open[],
                const double     &high[],
                const double     &low[],
                const double     &close[],
                const long       &tick_volume[],
                const long       &volume[],
                const int        &spread[])
  {
   static bool UP;
   static double max,min;
   static int LastExt=0;
   static const double dev=NormalizeDouble(Deviation*_Point,_Digits);
   int limit=prev_calculated-1;
   if(prev_calculated==0)
     {
      ArrayInitialize(ZZBuffer,0.0);
      limit=2; LastExt=0;
      if(low[0]<high[1]) { min=low[0];  max=high[1];   UP=true;  }
      else               { max=high[0]; min  = low[1]; UP=false; }
     }
   for(int i=limit; i<rates_total; i++)
     {
      ZZBuffer[i]=0.0;
      if(UP)
        {
         if(low[i]-min<=0.0) { min=low[i]; ZZBuffer[LastExt]=0.0; LastExt=i; ZZBuffer[i]=min; }
         else
           {
            if(high[i]-min-dev>0.0) { max=high[i]; LastExt=i; ZZBuffer[i]=max; UP=false; }
           }
        }
      else
        {
         if(high[i]-max>=0.0) { max=high[i]; ZZBuffer[LastExt]=0.0; LastExt=i; ZZBuffer[i]=max; }
         else
           {
            if(low[i]-max+dev<0.0) { min=low[i]; LastExt=i; ZZBuffer[i]=min; UP=true; }
           }
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

para MT5 feito há muito tempo,https://www.mql5.com/ru/forum/318267#comment_12508440

Sim, o ziguezague certo para a tarefa.

 
Igor Makanu:

ZigZag mostra apenas pontos ideais de entrada/saída e nada mais

Embora se estamos falando de um ZZ específico, então sim, podemos discutir, eu usei o meu - não tem ajuste de min.bar - ele simplesmente desenha linhas de Alto para Baixo, o ajuste é a distância mínima de Alto para Baixo

https://www.mql5.com/ru/forum/318267#comment_12508440

ZigZag não se baseia nos princípios do "comércio perfeito" - a melhor relação entre tempo comercial e lucro. ZZ terá que entrar e sair em todos os seus picos e mínimos. Não é uma solução ideal.
Razão: