Tarde. Crítica. Um dia nem sempre é um número fixo de velas. No seu caso, nem sempre é correto verificar os dados de 96 candles para M15. Às vezes, você pode entrar nos dados de outro dia.
Obrigado pelo comentário. Eu realmente não me deparei com isso, pois desisti da TL diária em favor da negociação intradiária (olho para 4 horas, hora e m15). Mas, em geral, teremos que analisar melhor a situação.
Isso é válido para qualquer TF, não necessariamente para o M15. A questão é que, se você estiver procurando topos/raízes em um dia, por exemplo, no dia anterior, não deve confiar em um número fixo de velas, é melhor confiar no tempo: da abertura do dia anterior, nesse caso, até a abertura (a primeira vela, que pode ter um horário diferente de 00h00) do dia atual.
Agora mesmo estou escrevendo um EA no mql4 e me lembrei de sua crítica. Embora não tenha me deparado com essa situação na prática, decidi excluí-la. A solução é a seguinte:
//1.2 Determine a barra que segue o extremo int UpperFractal_1_base_next=UpperFractal_1_base-1; int UpperFractal_2_base_next=UpperFractal_2_base-1; int LowerFractal_1_base_next=LowerFractal_1_base-1; int LowerFractal_2_base_next=LowerFractal_2_base-1; //1.3 Determinar o tempo de formação do fractal datetime UpFractalTime_1_base=iTime(NULL,base_tf,UpperFractal_1_base); datetime UpFractalTime_2_base=iTime(NULL,base_tf,UpperFractal_2_base); datetime LowFractalTime_1_base=iTime(NULL,base_tf,LowerFractal_1_base); datetime LowFractalTime_2_base=iTime(NULL,base_tf,LowerFractal_2_base); //1.4 Determine o tempo da barra após o extremo datetime UpFractalTime_1_base_next=iTime(NULL,base_tf,UpperFractal_1_base_next); datetime UpFractalTime_2_base_next=iTime(NULL,base_tf,UpperFractal_2_base_next); datetime LowFractalTime_1_base_next=iTime(NULL,base_tf,LowerFractal_1_base_next); datetime LowFractalTime_2_base_next=iTime(NULL,base_tf,LowerFractal_2_base_next); //1.5 Determine os índices de barra em m15 para o tempo de abertura da barra fractal int UpperFractal_1_m15_base=iBarShift(NULL, 15, UpFractalTime_1_base,true); int UpperFractal_2_m15_base=iBarShift(NULL, 15, UpFractalTime_2_base,true); int LowerFractal_1_m15_base=iBarShift(NULL, 15, LowFractalTime_1_base,true); int LowerFractal_2_m15_base=iBarShift(NULL, 15, LowFractalTime_2_base,true); //1.6 Determine os índices de barra em m15 para a barra após o extremo int UpperFractal_1_m15_base_next=iBarShift(NULL, 15, UpFractalTime_1_base_next,true); int UpperFractal_2_m15_base_next=iBarShift(NULL, 15, UpFractalTime_2_base_next,true); int LowerFractal_1_m15_base_next=iBarShift(NULL, 15, LowFractalTime_1_base_next,true); int LowerFractal_2_m15_base_next=iBarShift(NULL, 15, LowFractalTime_2_base_next,true); //1.7 Encontre o número de barras em m15 entre a barra - fractal e a próxima barra int UpperFractal_1_m15_NumBars_base=(UpperFractal_1_m15_base-UpperFractal_1_m15_base_next); int UpperFractal_2_m15_NumBars_base=(UpperFractal_2_m15_base-UpperFractal_2_m15_base_next); int LowerFractal_1_m15_NumBars_base=(LowerFractal_1_m15_base-LowerFractal_1_m15_base_next); int LowerFractal_2_m15_NumBars_base=(LowerFractal_2_m15_base-LowerFractal_2_m15_base_next); // --- Estágio 2 - - refinamento de extremos //2.1 Para o primeiro menor fractal int Bar_1_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_1_m15_NumBars_base,LowerFractal_1_m15_base_next); datetime Time_1_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Lowest_m15_base); double Price_1_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_1_Lowest_m15_base); //2.2 Para o segundo menor fractal int Bar_2_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_2_m15_NumBars_base,LowerFractal_2_m15_base_next); datetime Time_2_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Lowest_m15_base); double Price_2_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_2_Lowest_m15_base); //2.3 Para o primeiro maior fractal int Bar_1_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_1_m15_NumBars_base,UpperFractal_1_m15_base_next); datetime Time_1_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Highest_m15_base); double Price_1_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_1_Highest_m15_base); //2.4 Para o segundo maior fractal int Bar_2_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_2_m15_NumBars_base,UpperFractal_2_m15_base_next); datetime Time_2_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Highest_m15_base); double Price_2_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_2_Highest_m15_base);
Embora eu não tenha me deparado com essa situação na prática, decidi excluí-la mesmo assim
Hoje, por exemplo, ao abrir o par GBPUSD/EURUSD M5, a primeira vela foi aberta às 00:05. Se tomarmos 288 candlesticks por analogia com M15, entraremos nos dados de outro dia.
É verdade que isso é para o MT5... no MT4 (servidor MetaQuotes-Demo) - também, em outra corretora a partir das 00:00, portanto... tudo é individual e você ainda precisa verificar.
Foi publicado o novo artigo Plotting trend lines based on fractals using MQL4 and MQL5:
Autor: Almat Kaldybay
Hi,
Não consigo obter a linha de tendência conforme ilustrado acima.
Alguma configuração especial?
Hi,
Não consigo obter a linha de tendência conforme ilustrado acima.
Alguma configuração especial?
Olá, Almat,
Não estou recebendo linhas de tendência no gráfico, mas estou recebendo alertas móveis contínuos. Por favor, me ajude se eu estiver perdendo alguma coisa.
Obrigado,
Prakash.R
Olá, Almat,
Não estou recebendo linhas de tendência no gráfico, mas estou recebendo alertas móveis contínuos. Por favor, me ajude se eu estiver perdendo alguma coisa.
Obrigado,
Prakash.R
Hi,
1. Você precisa compilar o arquivo mq4 no metaeditor;
2. acho que você tem linhas de tendência no gráfico, mas não as vê por causa da escala do gráfico

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Traçando linhas de tendência baseadas em fractais usando MQL4 e MQL5 foi publicado:
O artigo descreve a automação da plotagem de linhas de tendência com base no indicador Fractals usando MQL4 e MQL5. A estrutura do artigo fornece uma visão comparativa da solução para as duas linguagens. As linhas de tendência são plotados usando os dois últimos fractais conhecidos.
Recentemente, eu estive pensando sobre o uso de linhas de tendência. Houve uma questão sobre a escolha do método para determinar os pontos para a plotagem das linhas, e também sobre a precisão da plotagem. Eu decidi usar os fractais como base.
Eu costumo analisar os mercados em meu trabalho principal, onde eu posso passar algum tempo nas negociações. Além disso, você não pode simplesmente desenhar as linhas em um período de tempo grande - a linha deve ser traçada pelos pontos extremos com uma precisão de até 15 minutos. A razão para isto é que o tempo do fractal em um período de tempo maior nem sempre coincide com o tempo do mesmo ponto extremo no M15. Em suma, isto é onde a automação vem para ajudar. Aconteceu que eu comecei a escrever o código usando MQL5 e, em seguida, eu mudei para MQL4, porque eu precisava este programa para o MetaTrader 4.
Neste artigo eu apresentei a minha solução do problema usando MQL4 e MQL5. O artigo fornece uma visão comparativa, mas seria inadequado comparar aqui a eficiência da MQL4 e MQL5. Além disso, eu entendo que provavelmente há outras soluções, mais eficaz do que a minha. O artigo pode ser útil para iniciantes que escrevem scripts usando tanto o MQL4 quanto o MQL5, especialmente para aqueles que planejam usar fractais e linhas de tendência.
3. Determinando os valores de preço e de tempo dos fractais
Para traçar a linha que precisamos para determinar o tempo e o preço de um fractal. Claro que, em MQL4 poderíamos simplesmente usar as séries de tempo predefinidas High[] e Alta Low[], e a função iTime(), no entanto, também precisamos obter as coordenadas de tempo com maior precisão para garantir a plotagem correta da linha de tendência.
Figo. 1-2 mostram a diferença entre os valores de tempo dos pontos de extremos nos períodos de tempo H4 e M15.
Fig.1. O valor de tempo do ponto extremo em H4
Fig.2. O valor de tempo do ponto extremo em M15
Autor: Almat Kaldybay