
Desenvolvimento do Kit de Ferramentas de Análise de Price Action (Parte 1): Projetor de Gráficos
Introdução
Neste artigo, intitulado “O Projetor de Gráficos”, focamos no desenvolvimento de uma ferramenta projetada para simplificar a análise de mercado, especialmente para traders de price action. O Projetor de Gráficos sobrepõe o gráfico do dia anterior ao atual em uma representação no modo fantasma.
Primeiro, forneceremos uma justificativa para o Projetor de Gráficos, explicando a importância de projetar o gráfico do dia anterior sobre o gráfico atual. Em seguida, apresentaremos uma visão geral da ferramenta, seguida de uma discussão sobre a implementação do código. Por fim, concluiremos com um resumo dos nossos achados.
Nossos subtópicos são os seguintes:
- Justificativa do Projetor de Gráficos
- Visão Geral da Ferramenta
- Implementação do Código
- Resultados
- Conclusão
Justificativa do Projetor de Gráficos
Redesenhar o gráfico do dia anterior sobre o gráfico do dia atual oferece várias vantagens para os traders. Veja como essa técnica os ajuda:
Vantagens | Descrição |
---|---|
Contexto Imediato | Sobrepor os dados do dia anterior permite que os traders visualizem rapidamente os movimentos de preço e os principais níveis de suporte/resistência, ajudando-os a avaliar as condições atuais do mercado em relação a referências históricas. |
Identificação Aprimorada de Níveis-Chave | A sobreposição destaca níveis críticos de preço, como suporte e resistência, de forma mais clara do que linhas manuais, auxiliando os traders a prever futuros movimentos ao identificar pressões passadas de compra e venda. |
Reconhecimento de Tendências | Observar a interação do preço atual com a ação do dia anterior ajuda na identificação de tendências. Negociar acima da máxima anterior sugere momentum altista; negociar abaixo da mínima pode indicar sentimento baixista. |
Análise Otimizada | Esse método elimina a necessidade de rolagem histórica, permitindo que os traders se concentrem na análise em tempo real, economizem tempo e tomem decisões mais rápidas em mercados de alta velocidade. |
Percepções Comportamentais | Ao revelar como a ação do preço atual se alinha ao comportamento anterior, a sobreposição ajuda os traders a compreender a psicologia do mercado, como a força potencial em movimentos altistas quando se afasta de níveis de resistência. |
Gestão de Risco | Visuais claros de suportes e resistências passados ajudam os traders a definir ordens de stop-loss em níveis informados, o que auxilia na mitigação de risco. |
Planejamento Simplificado de Operações | Visualizar os movimentos de preço do dia anterior simplifica o planejamento de entradas e saídas, permitindo que os traders estruturem operações em torno de níveis já estabelecidos e melhorem a eficácia da estratégia. |
Foco na Price Action | Ao manter a integridade dos movimentos originais de preço, os traders podem focar diretamente na dinâmica da ação de preço sem a distorção que indicadores típicos podem introduzir. Essa clareza pode levar a entradas e saídas mais precisas. |
Na ilustração abaixo, comparamos os gráficos de dois dias consecutivos, 19 e 20 de setembro de 2024. Tracei linhas para indicar os níveis de suporte e resistência. A comparação mostra claramente como o mercado respeita esses níveis anteriores. No entanto, existe uma limitação: os níveis de suporte identificados nem sempre são os mais significativos. A incapacidade de isolar apenas os principais níveis de suporte e resistência pode introduzir ruído nos dados, dificultando a capacidade do trader de tomar decisões informadas. Sem filtrar os níveis menos relevantes, os traders podem ter dificuldades em identificar tendências ou reversões genuínas, o que aumenta o risco de encontrar sinais falsos. Isso pode levar a entradas e saídas equivocadas, afetando negativamente o desempenho geral da negociação.
É aqui que nossa ferramenta de projeção entra em jogo. Ela pode identificar e exibir as máximas e mínimas mais relevantes, o que melhora significativamente a precisão da análise. Além disso, a ferramenta permite sobrepor o gráfico do dia anterior diretamente sobre o gráfico atual, tornando mais fácil analisar e interpretar os movimentos de preço.
Fig 1. Comparando a Ação de Preço
Desenvolvimento do código
No desenvolvimento de código usando o MetaEditor, o processo começa iniciando o MetaEditor. Uma vez aberto o aplicativo, você navega até a opção “Novo” para iniciar a criação de um novo arquivo. Após selecionar “Novo”, uma janela aparece onde você pode escolher o tipo de arquivo ou projeto que deseja criar. Neste caso, você selecionaria “Script” como a categoria do projeto, já que esse é o tipo de programa que deseja desenvolver.
A Fig 2 abaixo ilustra a janela onde é possível selecionar a opção para criar um script. Essa janela fornece as escolhas necessárias para definir o tipo de projeto em que você vai trabalhar. Ao escolher a opção “Script”, você está especificando que deseja criar um programa automatizado personalizado no MetaTrader. Esse passo é crítico, pois define a base para o ambiente de desenvolvimento, garantindo que o MetaEditor gere o modelo apropriado para escrever seu script MQL5. O layout claro e amigável dessa janela simplifica o processo de começar seu projeto de codificação.
Fig 2. Iniciar Novo Script
Aqui vou guiá-lo sobre como podemos criar o efeito fantasma, bem como projetar o gráfico anterior no gráfico atual usando MQL5.
1. Propriedades:
Um dos principais aspectos que quero enfatizar é a importância das propriedades e dos direitos autorais do script. Adicionar um aviso de copyright ao seu script MQL5 é crucial para proteger seu trabalho. Isso estabelece sua propriedade e deixa claro que você é o criador original, ajudando a prevenir uso não autorizado ou reivindicações sobre o seu código. Em caso de disputas, esse aviso pode servir como prova de autoria. Sem copyright, outros podem assumir que seu script está livre para uso ou distribuição. Ao incluir uma declaração de copyright, você mantém o controle sobre como seu código é compartilhado, vendido ou modificado.
//+------------------------------------------------------------------+ //| Chart Projector.mq5 | //| Christian Benjamin | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Christian Benjamin" #property link "http://www.mql5.com" #property description "Script to overlay yesterday's price action with ghost effect. Projected onto current day's chart and beyond" #property indicator_chart_window #property strict #property script_show_inputs #property version "1.0"
Além disso, o copyright permite oportunidades de monetização. Você pode vender o script, oferecê-lo sob termos específicos de licença ou definir condições de uso. Isso aumenta o profissionalismo do seu trabalho, sinalizando o seu valor, além de garantir que você receba o devido reconhecimento caso outros utilizem ou expandam seu código.
2. Seção de Inputs:
Criamos variáveis de entrada para permitir que os usuários personalizem o efeito de velas fantasma. Esses inputs definem a cor, o estilo de linha e a largura do efeito fantasma. Os usuários também podem ajustar se desejam exibir os preços de máxima e mínima do dia anterior, deslocar o padrão fantasma para frente ou para trás, e projetá-lo ainda mais no futuro.
input color GhostColor = clrGray; // Color for ghost effect (can be transparent) input int LineStyle = STYLE_DOT; // Line style for ghost candlesticks input int LineWidth = 2; // Line width for ghost candlesticks input bool ShowHighLow = true; // Show high/low lines of yesterday input int ShiftBars = 0; // Number of bars to shift ghost forward/backward input int ProjectForwardBars = 100; // Number of bars to project ghost pattern forward
Esta seção é importante porque dá flexibilidade ao usuário, permitindo que o padrão de velas fantasma seja adaptado de acordo com suas preferências.
Fig 3. Entradas do Script
O diagrama acima ilustra como os parâmetros de entrada são apresentados no MetaTrader 5, permitindo aos usuários visualizar, modificar e personalizá-los diretamente ao abrir um gráfico. Esses parâmetros permitem que os traders ajustem aspectos-chave da ferramenta, como estilos de linha, cores e configurações de projeção das velas, garantindo que o gráfico se adapte às suas preferências e estratégias específicas. Essa flexibilidade ajuda a melhorar a experiência do usuário, oferecendo maior controle sobre como a ação de preço passada e presente é visualizada.
3. Função OnStart:
A função OnStart() serve como o ponto de entrada do script. Quando o script é executado, essa função chama a função principal DrawGhostCandles().
void OnStart() { DrawGhostCandles(); // Call the function to draw ghost candles }
Este método mantém a estrutura limpa, garantindo que o script prossiga imediatamente para a função central ao iniciar. Ao chamar uma função dedicada, asseguramos que a tarefa de desenhar velas fantasma seja tratada de forma separada e mais eficiente.
4. Função DrawGhostCandles:
Essa função contém a lógica para sobrepor o padrão de velas fantasma do dia anterior ao gráfico atual. Primeiro, obtemos o timeframe atual, depois calculamos o início e o fim tanto do dia anterior quanto do dia atual. Também determinamos o número de barras de ontem e de hoje usando a função iBarShift().
void DrawGhostCandles() { ENUM_TIMEFRAMES timeFrame = Period(); // Get the current timeframe datetime yesterdayStart = iTime(_Symbol, PERIOD_D1, 1); // Start of yesterday datetime todayStart = iTime(_Symbol, PERIOD_D1, 0); // Start of today datetime todayEnd = todayStart + PeriodSeconds(PERIOD_D1); // Expected end of today (24 hours) int startBarYesterday = iBarShift(_Symbol, timeFrame, yesterdayStart); // Yesterday's first bar int endBarYesterday = iBarShift(_Symbol, timeFrame, todayStart) - 1; // Yesterday's last bar if (startBarYesterday == -1 || endBarYesterday == -1) { Print("No data for yesterday."); return; } int barsToday = Bars(_Symbol, timeFrame, todayStart, todayEnd); // Total number of bars today for (int i = 0; i < barsToday; i++) // Loop through yesterday's bars { int yesterdayIndex = startBarYesterday - i % (endBarYesterday - startBarYesterday + 1); datetime timeYesterday = iTime(_Symbol, timeFrame, yesterdayIndex); double openYesterday = iOpen(_Symbol, timeFrame, yesterdayIndex); double highYesterday = iHigh(_Symbol, timeFrame, yesterdayIndex); double lowYesterday = iLow(_Symbol, timeFrame, yesterdayIndex); double closeYesterday = iClose(_Symbol, timeFrame, yesterdayIndex); datetime projectedTime = todayStart + i * PeriodSeconds() + ShiftBars * PeriodSeconds(); if (projectedTime >= todayEnd) break; // Stop projection if today's end is reached DrawGhostBar(projectedTime, openYesterday, highYesterday, lowYesterday, closeYesterday); // Draw ghost bar } if (ShowHighLow) { double yesterdayHigh = iHigh(_Symbol, PERIOD_D1, 1); // Yesterday's high double yesterdayLow = iLow(_Symbol, PERIOD_D1, 1); // Yesterday's low DrawHorizontalLine("YesterdayHigh", yesterdayHigh); // Draw high DrawHorizontalLine("YesterdayLow", yesterdayLow); // Draw low } }
A função percorre cada barra do dia anterior, recupera seus preços de abertura, máxima, mínima e fechamento, e projeta esses valores no gráfico de hoje. O loop garante que cada vela de ontem seja espelhada como um “fantasma” no gráfico atual. Isso ajuda a visualizar como a ação de preço do dia anterior se compara aos movimentos de preço de hoje.
5. Função DrawGhostBar:
Essa função lida com o desenho de cada vela fantasma individual no gráfico. Uma linha é criada para representar a faixa entre máxima e mínima, e um retângulo é desenhado para representar a faixa entre abertura e fechamento de cada vela.
void DrawGhostBar(datetime time, double open, double high, double low, double close) { string lineName = "GhostLine" + IntegerToString(time); // Line name for high-low ObjectCreate(0, lineName, OBJ_TREND, 0, time, low, time, high); // Create the line ObjectSetInteger(0, lineName, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, lineName, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, lineName, OBJPROP_WIDTH, LineWidth); // Set width string ocName = "GhostOC" + IntegerToString(time); // Rectangle name for open-close ObjectCreate(0, ocName, OBJ_RECTANGLE, 0, time, open, time + PeriodSeconds(), close); // Create rectangle ObjectSetInteger(0, ocName, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, ocName, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, ocName, OBJPROP_WIDTH, LineWidth); // Set width }
Ao separar essa funcionalidade em sua própria função, simplificamos o processo de desenhar cada vela fantasma. Essa abordagem modular torna mais fácil gerenciar, atualizar e personalizar a forma como essas velas aparecem.
6. Função DrawHorizontalLine:
Essa função desenha linhas horizontais no gráfico, marcando os preços de máxima e mínima do dia anterior. Essas linhas atuam como indicadores visuais de níveis-chave de preço que os traders frequentemente observam.
void DrawHorizontalLine(string name, double price) { if (!ObjectCreate(0, name, OBJ_HLINE, 0, TimeCurrent(), price)) { Print("Failed to create horizontal line."); // Error handling } ObjectSetInteger(0, name, OBJPROP_COLOR, GhostColor); // Set color ObjectSetInteger(0, name, OBJPROP_STYLE, LineStyle); // Set style ObjectSetInteger(0, name, OBJPROP_WIDTH, LineWidth); // Set width }
Incluir essa funcionalidade aprimora o script ao adicionar pontos de referência importantes, ajudando os traders a identificar facilmente níveis de suporte e resistência do dia anterior. A função garante que essas linhas sejam desenhadas com as mesmas opções de personalização das velas fantasma.
Resultados
O resultado do código do Projetor de Gráficos é uma representação visual da ação de preço do dia anterior sobreposta ao gráfico do dia atual, fornecendo aos traders percepções valiosas sobre o comportamento do mercado. Isso é alcançado por meio da geração de velas fantasmas do dia anterior, que são projetadas no gráfico atual, permitindo que os traders observem como o mercado se movimentou em relação ao desempenho do dia anterior. Ao visualizar as máximas, mínimas, abertura e fechamento do dia anterior, os traders podem obter uma compreensão mais clara do sentimento do mercado e das tendências de preço.
Além disso, o script opcionalmente desenha linhas horizontais para a máxima e a mínima do dia anterior, servindo como potenciais níveis de suporte e resistência para o dia atual. Os traders podem utilizar esses níveis para tomar decisões informadas sobre pontos de entrada e saída com base no comportamento do mercado em relação a esses marcos históricos. O script também oferece várias entradas personalizáveis, como cor, estilo de linha, largura de linha e a capacidade de deslocar a projeção fantasma para frente ou para trás, permitindo que os traders ajustem a visualização de acordo com suas estratégias e preferências. Isso melhora a experiência do usuário e possibilita ferramentas de análise personalizadas.
Com a sobreposição de velas fantasmas, os traders podem avaliar rapidamente se a ação de preço atual espelha, diverge ou reage aos movimentos anteriores, informando suas estratégias de negociação. O efeito fantasma simplifica a análise de mercado ao eliminar a desordem de indicadores excessivos, focando exclusivamente na ação do dia anterior e fornecendo percepções mais claras sobre a dinâmica do preço. Essa clareza auxilia na identificação de possíveis tendências e reversões, levando a decisões de negociação mais estratégicas. Veja a Fig 4 abaixo.
Fig 4. Resultado da Projeção de Gráficos
Olhando para a Fig 4 acima, há uma apresentação clara dos resultados de acordo com o teste de código no MetaTrader 5. O sistema parece excelente, já que o gráfico do dia atual respeita os níveis de suporte e resistência. É evidente que o preço rompeu abaixo da mínima do dia anterior, como indicado pelas linhas horizontais, antes de recuar e continuar sua tendência de baixa.
Fig 5. Resultado da Projeção de Gráficos
A Figura 5 ilustra os resultados do nosso projetor de gráficos, destacando como a dinâmica atual do mercado está respeitando as máximas e mínimas do dia anterior.
Conclusão
Em conclusão, o desenvolvimento e a implementação do Projetor de Gráficos para análise de price action representam um avanço significativo para traders que buscam aprimorar suas habilidades de interpretação de mercado. Ao sobrepor a ação de preço do dia anterior ao gráfico atual, fornecemos uma poderosa ferramenta visual que facilita o entendimento da dinâmica de mercado sem a desordem de indicadores tradicionais. Essa abordagem permite que os traders identifiquem rapidamente níveis-chave de suporte e resistência, auxiliando significativamente nos processos de tomada de decisão. Os insights obtidos com esse método refletem não apenas o comportamento dos movimentos de preço, mas também o sentimento coletivo dos participantes do mercado, oferecendo uma perspectiva mais profunda sobre possíveis tendências futuras.
Recomendo que todos usem isso apenas para fins educacionais. Por favor, não experimentem com dinheiro real!
Proponho nomear nosso kit de ferramentas como “Lynnchris Tools Chest”, e registrarei cada ferramenta que desenvolvermos, bem como atualizarei o registro sempre que publicarmos uma nova versão. Veja a tabela abaixo.Data | Nome da Ferramenta | Descrição | Versão | Atualizações | Notas |
---|---|---|---|---|---|
01/10/24 | Projetor de Gráficos | Script para sobrepor a ação de preço do dia anterior com efeito fantasma. | 1.0 | Lançamento Inicial | A primeira ferramenta do Lynnchris Tools Chest |
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/16014
Aviso: Todos os direitos sobre esses materiais pertencem à MetaQuotes Ltd. É proibida a reimpressão total ou parcial.
Esse artigo foi escrito por um usuário do site e reflete seu ponto de vista pessoal. A MetaQuotes Ltd. não se responsabiliza pela precisão das informações apresentadas nem pelas possíveis consequências decorrentes do uso das soluções, estratégias ou recomendações descritas.





- 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
Parabéns por um dos maiores eventos de sua vida. Indicador bem feito, mas podemos conseguir isso criando uma SMA do Período 1, deslocada pelo número de períodos do período de tempo em um dia. Para 1H tF, deslocamento por 24, para m15, deslocamento por 1440/15=96. Aguardo ansiosamente sua incursão nos estudos de gráficos.
Parabéns por um dos maiores eventos de sua vida. Indicador muito bem feito, mas podemos conseguir isso criando uma SMA do Período 1, deslocada pelo número de períodos do período de tempo em um dia. Para 1H tF, deslocamento por 24, para m15, deslocamento por 1440/15=96. Aguardo ansiosamente sua incursão nos estudos de mercado.
Muito obrigado