Indicadores: AutoGannAutoTrend

 

AutoGannAutoTrend:

O indicador traça o canal de preço, os níveis de Fibonacci e o fan de Gann, nos últimos topos do ZigZague.

Fig.1. Indicador AutoGannAutoTrend

Autor: Nikolay Kositsin

 

Ótimo indicador. Fiz algumas alterações na versão que uso, ou seja, um leque de gann e retração de fibra para as oscilações atuais e anteriores, além de adicionar arcos de fibra e timexones


 

Então, depois de experimentar, parece que há um erro no código.

Usar ingenuamente os horários do período de tempo do ziguezague (não sei o que significa "// Òàéìôðåéì Çèãçàãà äëÿ ðàñ÷åòà èíäèêàòîðà") faz com que o indicador desenhe as linhas de gann e outros pontos a partir de um ponto inicial e final incorretos quando visualizado em um período de tempo inferior. Assim, por exemplo, ao usar um ZigZag diário, as linhas de Gann começariam no início do dia, mesmo que o preço máximo/mínimo estivesse em um horário diferente do dia. O bloco de snippet a seguir corrige o problema:

...
          if(UpSign[bar])
           {
            swing_value[found]=UpSign[bar];

            swing_date[found]=TIME[bar];

              {
               MqlRates rates[];
               int copied=CopyRates(Symbol(),Period(),swing_date[found],swing_date[found]+PeriodSeconds(Timeframe),rates);
               if(copied<=0)
                  Print("Error copying price data ",GetLastError());
               for(int i=0; i<copied; i++)
                  if(rates[i].high==swing_value[found])
                    {
                     swing_date[found]=rates[i].time;
                     break;
                    }

              }

            found++;

...

E, é claro, um snippet semelhante para os mínimos de oscilação, verificando se rates[i].low é igual ao valor.