Negociação Sistemática

Como Calcular o Número de Reversões em Estratégias Grid e Martingale no MetaTrader 4
MetaTrader4
Como Calcular o Número de Reversões em Estratégias Grid e Martingale no MetaTrader 4

O dimensionamento de lotes e a quantidade de operações em estratégias como Grid e Martingale são aspectos cruciais para o sucesso nas negociações. Uma pergunta que sempre fazemos é: Quantas vezes o preço reverteu entre dois níveis de uma zona de preços histórica?! Isso é o que chamamos de Número de Reversões. Ele pode ser determinado através de uma análise estatística do histórico de qualquer ativo no mercado. Para ilustrar melhor, vamos dar uma olhada na imagem 1. Imagem 1: Definição do Número de Reversões, seus objetivos e aplicações A imagem ilustra como o movimento do preço gera estatísticas do Ferramenta Número de Reversões. Para evitar sobrecarga no gráfico, criei um EA que utiliza a função Sleep. Essa função ajuda a prevenir travamentos no gráfico devido ao número elevado de candles definidos nos parâmetros da ferramenta. A próxima imagem (Imagem 2) mostra de forma resumida a estrutura gráfica da ferramenta e o significado de seus objetos. Imagem 2: Estatísticas do Número de Reversões. Uso da ferramenta: Considerando a Imagem 2, se configurarmos a Altura do Canal de Reversão para 600 pontos: Identificamos 6 números diferentes de reversão, variando de 1 a 6 para este ativo. O número de reversão 2 indica que o preço começa na metade do canal de reversão (altura de 2 * 600 = 1200 pontos) e se movimenta para cima e para baixo, tocando uma vez a linha vermelha e uma vez a linha azul antes de atingir o TP=1200 pontos. Para o número de reversão 5, significa que o preço começa do ponto médio do canal e toca 2 vezes a linha vermelha e 3 vezes a linha azul, ou vice-versa, antes de alcançar o TP=1200 pontos. O mesmo se aplica a outros números de reversão. Não temos o número de reversão 7, o que significa que não houve 7 toques entre as linhas vermelha e azul (com uma distância de 1200 pontos) em todo o histórico selecionado nos parâmetros da ferramenta. Vale ressaltar que, ao selecionar mais dados históricos (Número máximo de candles de análise), a chance de encontrar 7 reversões aumenta. No entanto, mesmo a chance de encontrar 6 reversões é de apenas 22 em 9020 itens totais onde o preço atingiu os TPs. Parâmetros da ferramenta: - Número máximo de candles de análise: Assim como em outras ferramentas de análise, tenha cuidado com o número que você define para este campo. Evite aumentá-lo drasticamente para prevenir travamentos de memória. - Time-Frame: O time-frame dos candles que você deseja usar para encontrar reversões nos limites do canal e também para tocar nas linhas de TP. Utilize um time-frame menor para canais mais estreitos. Se não souber o que definir, é melhor usar o time-frame M1. - Altura do Canal de Reversão: Esta é a distância da linha verde em relação às linhas vermelha e azul, medida em pontos. - Cor do fundo do gráfico: - Cor do gráfico de barras 1/Cor do gráfico de barras 2: Para deixar as barras estatísticas um pouco mais atraentes. - Cor das células de contagem: - Cor das células de números de reversões: - Cor da barra de carregamento: Durante o cálculo, esta barra de carregamento ajudará o usuário a saber se a ferramenta está funcionando e qual é a velocidade dos cálculos. - Um botão adicional foi adicionado para iniciar e inserir o número de candles históricos a partir da tela.

2024.01.12
Alerta Sonoro de Conexão e Desconexão para MetaTrader 5
MetaTrader5
Alerta Sonoro de Conexão e Desconexão para MetaTrader 5

Se você é um trader que busca otimizar sua experiência no MetaTrader 5, a utilidade de alerta sonoro de conexão e desconexão pode ser um verdadeiro divisor de águas. Vamos entender como implementar isso de forma simples e eficaz! Primeiro, você precisa adicionar os arquivos de som (no formato .wav) na pasta MQL5\Files\Sounds do seu MetaTrader. Esses sons serão acionados sempre que você se conectar ou desconectar da plataforma. Depois, copie o código abaixo e compile o seu EA (Expert Advisor). O arquivo anexo possui linhas comentadas, pois o uso de #resource pode impossibilitar o upload na plataforma. Aqui está o código: //+------------------------------------------------------------------+ //|                                       Connect_Disconnect_Sound_Alert.mq5 | //|                                       Copyright 2024, Rajesh Kumar Nait | //|                                         https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- Arquivos de som #resource "\Files\Sounds\CONNECTED.wav" #resource "\Files\Sounds\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Função de inicialização do Expert                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                      Print("Erro: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                   Print("Erro: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                      Print("Erro: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                   Print("Erro: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+ Para ver a implementação em ação, assista ao vídeo abaixo:

2024.01.08
Ferramentas Avançadas em MQL5 para Traders: Integrações e Recursos
MetaTrader5
Ferramentas Avançadas em MQL5 para Traders: Integrações e Recursos

Parte 7. Ferramentas Avançadas em MQL5Neste capítulo, "Parte 7. Ferramentas Avançadas em MQL5" do livro "Programação MQL5 para Traders", vamos explorar as capacidades avançadas da API MQL5, que são essenciais para o desenvolvimento de programas robustos para o MetaTrader 5. Entre os recursos discutidos, destacam-se os símbolos financeiros personalizados, eventos do calendário econômico embutidos e tecnologias versáteis como redes, bancos de dados e criptografia.Esta parte do livro também aborda bibliotecas – um tipo especial de programa que fornece APIs prontas para conectar-se a outros programas MQL. Além disso, falaremos sobre a possibilidade de desenvolver pacotes de software e unir programas logicamente interconectados em projetos.Para finalizar, vamos apresentar as integrações com outros ambientes de software, incluindo o Python. Começaremos estudando recursos, que são arquivos de qualquer tipo que podem ser incorporados ao código do programa. Esses recursos podem conter:Elementos multimídiaConfigurações "hard" de programas externosOutros programas MQL5 em formato compiladoO ambiente de desenvolvimento MQL5 permite a inclusão de arrays de dados de aplicativos, imagens, sons e fontes no arquivo fonte, tornando o programa um produto autossuficiente e conveniente para o usuário final.Vamos dar especial atenção aos recursos gráficos com imagens raster em formato BMP: Você aprenderá como criar, editar e exibir essas imagens dinamicamente no gráfico.Concluiremos esta parte do livro estudando a integração do OpenCL no MQL5. O OpenCL é um padrão aberto para programação paralela em sistemas multiprocessadores, incluindo processadores gráficos (GPUs) e unidades centrais de processamento (CPUs). Ele possibilita a aceleração de tarefas computacionais intensivas, desde que os algoritmos possam ser paralelizados. Exemplos incluem o treinamento de redes neurais, transformadas de Fourier e resolução de sistemas de equações.A utilização do OpenCL em programas MQL requer a presença de drivers especiais do fabricante e suporte para a versão 1.1 do OpenCL ou superior. É importante mencionar que a presença de uma placa gráfica não é obrigatória, pois o processador central também pode ser utilizado para computação paralela.

2023.12.16
Automatização de Trading com MQL5: Parte 6 do Guia para Traders
MetaTrader5
Automatização de Trading com MQL5: Parte 6 do Guia para Traders

Parte 6. Automatização de Trading No "Parte 6. Automatização de Trading" do livro "Programação MQL5 para Traders", vamos explorar um componente fundamental da linguagem MQL5. Começaremos com uma descrição das entidades básicas, como as especificações dos instrumentos financeiros e as configurações da conta de trading. Esses são pré-requisitos essenciais para criar Expert Advisors (EAs) que funcionem corretamente. Seguiremos analisando funções integradas e estruturas de dados, eventos específicos de robôs, além de aspectos importantes do funcionamento dos EAs no testador de estratégias. O Testador de Estratégias do MetaTrader 5 é uma ferramenta crucial no desenvolvimento de robôs de trading, pois permite avaliar o desempenho financeiro e otimizar estratégias de trading. Também vamos dar uma olhada em uma representação diferente dos dados de mercado: a Profundidade de Mercado e sua interface de software. O MetaTrader 5 oferece a capacidade de analisar e negociar instrumentos financeiros (símbolos), que formam a base de todos os subsistemas do terminal. Os usuários podem selecionar símbolos da lista disponibilizada pelo corretor e monitorá-los no Market Watch. Com a API MQL5, é possível visualizar e analisar as características de todos os símbolos, adicionando ou removendo-os do Market Watch. Além dos símbolos padrão fornecidos pelos corretores, o MetaTrader 5 suporta a criação de símbolos personalizados, carregando suas propriedades e histórico de cotações de fontes de dados arbitrárias ou calculando-os usando fórmulas e programas em MQL5.

2023.12.16
Programação MQL5 para Traders: Criando Aplicativos no MetaTrader 5
MetaTrader5
Programação MQL5 para Traders: Criando Aplicativos no MetaTrader 5

Parte 5: Criando Aplicativos em MQL5 No "Parte 5: Criando Aplicativos em MQL5" do livro Programação MQL5 para Traders, vamos nos aprofundar nas APIs relacionadas ao trading algorítmico, incluindo análise e processamento de dados financeiros, visualização de gráficos, automação e interações do usuário. Começaremos com os princípios gerais para criar programas em MQL e abordaremos os tipos de eventos, recursos e modelos disponíveis no terminal. Em seguida, exploraremos o acesso às séries temporais, operações com gráficos e objetos gráficos, assim como os princípios de criação e aplicação de cada tipo de programa MQL separadamente. O terminal MetaTrader 5 suporta cinco tipos de programas: indicadores técnicos, Sistemas de Trading (também conhecidos como EAs) para trading automático ou semi-automático, scripts para executar tarefas pontuais, serviços para operações em segundo plano e bibliotecas para módulos funcionais individuais. Vamos nos aprofundar no trabalho com indicadores e gráficos, aprendendo técnicas que também são aplicáveis aos Sistemas de Trading. O desenvolvimento de Sistemas de Trading será abordado na próxima parte do livro, onde exploraremos a execução automática de ordens, a formalização de estratégias de trading, além de seus testes e otimizações utilizando dados históricos. Aprenderemos como usar indicadores padrão integrados e como criar nossas aplicações personalizadas do zero ou baseadas em outros indicadores. Todos os programas compilados são exibidos no Navegador do MetaTrader 5, exceto as bibliotecas EX5, que são utilizadas por outros programas mas não têm uma representação separada no Navegador. Como resultado, teremos uma compreensão mais abrangente das capacidades da linguagem MQL5 e sua aplicação no trading algorítmico. Isso nos permitirá trabalhar de forma eficaz com dados financeiros e criar indicadores de trading e Sistemas de Trading.

2023.12.16
Domine as Funções MQL5: APIs Essenciais para Traders no MetaTrader 5
MetaTrader5
Domine as Funções MQL5: APIs Essenciais para Traders no MetaTrader 5

Parte 4: APIs Comuns do MQL5 No conteúdo anterior, exploramos os fundamentos da linguagem de programação MQL5 e analisamos sua sintaxe, regras de uso e conceitos-chave. Contudo, para desenvolver programas que realmente façam a diferença no processamento de dados e no trading automatizado, é fundamental utilizar diversas funções integradas para interagir com o terminal do MetaTrader 5. Na "Parte 4: APIs Comuns do MQL5", nosso foco será dominar as funções integradas (API MQL5) e, com o tempo, aprofundar em subsistemas especializados. Qualquer programa em MQL5 pode tirar proveito de uma infinidade de tecnologias e funcionalidades. Portanto, faz sentido começarmos pelas funções mais simples e úteis, que podem ser aplicadas na maioria dos programas. Entre os principais tópicos, vamos estudar operações com arrays, manipulação de strings, interações com arquivos, conversão de dados e funções de interação com o usuário. Também vamos explorar funções matemáticas e gestão do ambiente do programa. Diferentemente de algumas outras linguagens de programação, o uso das funções integradas da API MQL5 não exige diretivas de pré-processador adicionais. Os nomes de todas as funções da API MQL5 estão disponíveis no contexto global (namespace) e podem ser acessados a qualquer momento de forma incondicional. Vamos também discutir a possibilidade de usar nomes semelhantes em diferentes contextos de programa, como nomes de métodos de classe ou namespaces personalizados. Nesses casos, é necessário utilizar o operador de resolução de contexto para chamar a função global, o que já abordamos na seção sobre tipos aninhados, namespaces e o operador de contexto '::'. A programação frequentemente exige operações com vários tipos de dados. Nas seções anteriores, já vimos os mecanismos para conversão explícita e implícita de tipos de dados integrados. No entanto, nem sempre esses mecanismos são adequados por diferentes razões. Para proporcionar uma conversão mais refinada entre diferentes tipos, a API MQL5 inclui um conjunto de funções de conversão. Um destaque especial é dado às funções de conversão entre strings e outros tipos, como números, datas e horas, cores, estruturas e enumerações.

2023.12.15
Programação Orientada a Objetos em MQL5: Aprenda a Criar Sistemas de Trading Eficazes
MetaTrader5
Programação Orientada a Objetos em MQL5: Aprenda a Criar Sistemas de Trading Eficazes

Parte 3: Programação Orientada a Objetos em MQL5 "Parte 3: Programação Orientada a Objetos em MQL5" é uma imersão no universo da programação orientada a objetos (OOP) na linguagem MQL5. O desenvolvimento de software muitas vezes envolve a complexidade de gerenciar múltiplas entidades, exigindo tecnologia avançada para aprimorar a conveniência, produtividade e qualidade na programação. A tecnologia OOP é baseada no conceito de objetos, que são variáveis de um tipo personalizado definidas pelo programador usando as ferramentas do MQL5. Criar tipos personalizados permite modelar objetos e simplifica a escrita e a manutenção dos programas. Nesta parte, analisamos diversas maneiras de definir novos tipos, incluindo classes, estruturas e uniões. Esses tipos personalizados podem combinar dados e algoritmos para descrever o estado e o comportamento dos objetos da aplicação. O autor explora o princípio de "dividir para conquistar", mostrando que objetos são mini-programas, cada um responsável por resolver uma pequena, mas logicamente completa, tarefa. Você pode combinar objetos em um único sistema e criar produtos e serviços de complexidade arbitrária. Para ajudar os usuários a estudarem as capacidades do MQL5, a parte "Programação Orientada a Objetos em MQL5" introduz os princípios da OOP juntamente com exemplos práticos de implementação. O livro também aborda templates, interfaces e namespaces, revelando a flexibilidade e o poder da OOP no desenvolvimento de programas em MQL5.

2023.12.15
Introdução ao MQL5: O Guia Completo para Traders
MetaTrader5
Introdução ao MQL5: O Guia Completo para Traders

Parte 1: Introdução ao MQL5 e ao Ambiente de Desenvolvimento A primeira parte do nosso guia, intitulada "Introdução ao MQL5 e ao Ambiente de Desenvolvimento", é um ponto de partida essencial para quem deseja se aprofundar na programação com MQL5. Uma das principais novidades que o MQL5 trouxe em relação ao MQL4 (a linguagem do MetaTrader 4) é o suporte à programação orientada a objetos (POO), o que o torna mais semelhante ao C++. Embora algumas funções de POO tenham sido transferidas do MQL5 para o MQL4, muitos traders que não têm familiaridade com programação podem achar a POO um pouco complicada. O objetivo deste guia é tornar essa abordagem compreensível e acessível a todos. Este material complementa a referência do MQL5, abordando todos os aspectos da programação em MQL5 e explicando cada processo de forma detalhada. Os desenvolvedores podem optar por estilos de programação orientados a objetos ou procedimentais, ou até mesmo combinar ambos. Se você já tem experiência em programação, pode pular as partes mais básicas. Programadores de C++ provavelmente acharão mais fácil dominar o MQL5, mas é importante ficar atento às diferenças entre as linguagens para evitar erros. Com o MQL5, você pode desenvolver diferentes tipos de programas, como indicadores para exibição gráfica de dados, Sistemas de Trading para automação de operações, scripts para ações únicas e serviços para tarefas em segundo plano. Uma característica marcante do MetaTrader 5 é que ele permite gerenciar todo o sistema de trading diretamente do terminal do cliente, onde os programas MQL5 são executados e enviam comandos de trading para o servidor de trading. É importante ressaltar que as aplicações MQL5 não são instaladas no servidor. Nesta primeira parte, vamos abordar como editar, compilar e executar programas, além de explorar diversos tipos de dados, variáveis, expressões, arrays, depuração e saídas.

2023.12.15
Reconhecimento de Dígitos Manuscritos com um Expert Advisor para MetaTrader 5
MetaTrader5
Reconhecimento de Dígitos Manuscritos com um Expert Advisor para MetaTrader 5

Um Expert Advisor que Reconhece Dígitos Manuscritos A base de dados MNIST é composta por 60.000 imagens para treinamento e 10.000 imagens para teste. Essas imagens foram criadas a partir de um conjunto original do NIST, com amostras em preto e branco de 20x20 pixels, coletadas do Censo dos EUA e complementadas com amostras de estudantes do ensino médio americanos. As amostras foram normalizadas para um tamanho de 28x28 pixels e passaram por um processo de suavização, o que introduziu níveis de cinza. O modelo treinado para reconhecimento de dígitos manuscritos, mnist.onnx, foi baixado do Github, no Model Zoo (opset 8). Para quem se interessar, é possível baixar e testar outros modelos, exceto aqueles com opset 1, que não são mais suportados pela versão mais recente do ONNX. Curiosamente, o vetor de saída não foi processado com a função de ativação Softmax, como é comum em modelos de classificação. Mas não se preocupe, isso podemos implementar facilmente. int PredictNumber(void)   {    static matrixf image(28,28);    static vectorf result(10);    PrepareMatrix(image);    if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))      {       Print("OnnxRun error ",GetLastError());       return(-1);      }    result.Activation(result,AF_SOFTMAX);    int predict=int(result.ArgMax());    if(result[predict]<0.8)       Print(result);       Print("valor ",predict," previsto com probabilidade ",result[predict]);    return(predict);   }  Desenhe os dígitos em uma grade especial usando o mouse, mantendo o botão esquerdo pressionado. Para reconhecer o dígito desenhado, clique no botão CLASSIFICAR. Se a probabilidade obtida para o dígito reconhecido for inferior a 0.8, o vetor resultante com as probabilidades de cada classe é impresso no log. Por exemplo, tente classificar um campo de entrada vazio. [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]valor 5 previsto com probabilidade 0.11471312493085861Por algum motivo, a precisão do reconhecimento é notavelmente menor para o número nove (9). Dígitos inclinados para a esquerda são reconhecidos com mais precisão.

2023.11.23
Como Usar o Take Profit Baseado no Lucro Atual no MetaTrader 4
MetaTrader4
Como Usar o Take Profit Baseado no Lucro Atual no MetaTrader 4

Introdução Olá, trader! Se você é daquelas pessoas que costumam usar EAs (Robôs de Trading) para gerenciar suas operações, provavelmente já percebeu que muitos deles fecham ordens com take profit baseado na distância em pips do preço de compra. Mas hoje, quero te apresentar uma abordagem diferente, que pode facilitar bastante a sua vida: usar o lucro atual como base para o take profit. O EA Perceptron faz isso e eu vou te explicar como! Esse método permite gerenciar o take profit de várias posições abertas, monitorando o lucro total em função do número mágico, especialmente se você estiver utilizando várias instâncias de robôs ou EAs diferentes ao mesmo tempo. Me adicione como amigo e fique por dentro das novidades! Além disso, usar essa abordagem pode te ajudar a evitar alguns problemas comuns que surgem ao usar o take profit baseado em pips. Por exemplo, o take profit em pips pode variar dependendo do slippage do seu corretor, o que pode limitar seus lucros. Com o lucro atual, você ganha mais controle sobre suas operações. Se você quiser aprender mais sobre como configurar um take profit baseado no lucro atual, pode usar o código do EA SwingBot como referência. Total de Ordens Vamos começar com o código que calcula o total de ordens abertas com o mesmo número mágico. O número mágico é um identificador único atribuído a uma ordem pelo trader ou pelo EA. O código inicializa uma variável total_orders como zero e, em seguida, usa um loop para percorrer todas as ordens abertas, selecionando cada uma com a função OrderSelect(). Se a ordem for selecionada com sucesso, a variável total_orders é incrementada em um. //-----------------    int total_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == MagicNumber)          {          total_orders++;         }         }      } Calculando o Lucro Atual O código inicializa duas variáveis: ProfittoMinimo e Profit. A variável ProfittoMinimo é usada para ativar o take profit nesse nível, sendo o valor expresso na moeda da conta. A variável Profit acumula o lucro atual de todas as posições abertas com o mesmo número mágico. Em seguida, o código usa um loop para iterar por todas as posições abertas com a função OrdersTotal(). Para cada posição, a ordem correspondente é selecionada com a função OrderSelect(). Se a ordem for selecionada com sucesso e tiver o mesmo número mágico, o lucro da ordem é adicionado à variável Profit.       double ProfittoMinimo = 3; // lucro alvo       double Profit = 0; // lucro atual              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // Se você estiver usando múltiplos EAs, pode remover o filtro MagicNumber para manter a função em todas as ordens abertas               {                Profit += OrderProfit();               }         }       } A variável de lucro mínimo pode ser configurada como uma variável externa nas opções do EA: Fechando Posições ao Alcançar o Lucro Agora, vamos falar sobre como fechar as posições assim que o lucro desejado for atingido. O código utiliza um loop para iterar por todas as ordens abertas com a função OrdersTotal(). O loop começa pela última ordem e vai até a primeira. Para cada ordem, a operação correspondente é selecionada com a função OrderSelect(). Se a operação selecionada tiver o mesmo símbolo que o gráfico atual, for do tipo OP_BUY e tiver o mesmo número mágico conforme o código, ele verifica se o Profit da operação é maior ou igual ao ProfittoMinimo. Caso positivo, a operação é fechada no preço de venda usando a função OrderClose(), e uma mensagem é impressa indicando que a ordem de compra foi fechada. Da mesma forma, se a operação selecionada tiver o mesmo símbolo que o gráfico atual, for do tipo OP_SELL e tiver o mesmo número mágico, verifica se o Profit é maior ou igual ao ProfittoMinimo. Se sim, a operação é fechada no preço de compra usando a função OrderClose(), e uma mensagem é impressa indicando que a ordem de venda foi fechada.       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // A ordem só será modificada se o número mágico corresponder ao da ordem atual.               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Preço de venda                   Print("Ordem de compra fechada", Profit, " - Stoploss mínimo: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Preço de compra                   Print("Ordem de venda fechada", Profit, " - Stoploss mínimo: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }         }         } Conclusão Esse código pode ser útil para todas aquelas estratégias de fechamento de posições baseadas em take profit, mas também pode ser combinado com um trailing stop baseado no aumento do lucro atual. O sistema é especialmente útil se você estiver usando vários EAs. Se você remover a condição if relacionada ao MagicNumber, pode definir níveis de take profit gerais para controlar simultaneamente todas as posições abertas de todos os EAs ativos.

2023.10.27
Estratégia das Duas Bandas de Bollinger no MT4: Guia Completo para Traders
MetaTrader4
Estratégia das Duas Bandas de Bollinger no MT4: Guia Completo para Traders

1. Visão Geral A Estratégia das Duas Bandas de Bollinger utiliza duas bandas de Bollinger para filtrar entradas e saídas no mercado de câmbio. O objetivo da estratégia é abrir operações de Compra (ou Venda) quando o preço ultrapassa (ou cai abaixo) da banda superior de 3 desvios padrão (3σ). Além disso, a estratégia considera o nível de 2 desvios padrão (2σ) das Bandas de Bollinger para tomar decisões de negociação. Parâmetros padrão: 2σ Bandas de Bollinger (20,2): a média móvel simples (20) e o número de desvios padrão (2). 3σ Bandas de Bollinger (20,3): a média móvel simples (20) e o número de desvios padrão (3). Parâmetros de entrada 2. Entrada Longa Abra uma ordem de Compra quando estas duas condições forem atendidas: Condição 1: O preço Ask cruza acima da banda superior de 3σ (BB3UP). Condição 2: Se a condição 1 estiver OK, verifique se o preço atual está dentro da faixa da banda superior de 2σ (BB2UP) e da banda inferior de 2σ (BB2LO). 3. Entrada de Venda Abra uma ordem de Venda quando estas duas condições forem atendidas: - Condição 1: o preço Bid cruza abaixo da banda inferior de 3σ (BB3LO). - Condição 2: se a condição 1 estiver OK. Verifique se o preço atual está dentro da faixa da banda inferior de 2σ (BB2LO) e da banda superior de 2σ (BB2UP). 4. Ordens de Saída Utilizando um formato OCO, tanto o stop-loss quanto o take-profit são configurados em N pips. ※N: Configuração dos parâmetros de entrada.

2023.10.02
Estratégia Breakout Martin Gale: Expert Advisor para MetaTrader 4
MetaTrader4
Estratégia Breakout Martin Gale: Expert Advisor para MetaTrader 4

A estratégia "Martin Gale Breakout" é um Expert Advisor (EA) que foi desenvolvido para operar no mercado Forex. Esse EA combina uma abordagem de trading de breakout com elementos do sistema de gestão de dinheiro Martin Gale, visando otimizar o desempenho nas operações. Parâmetros de Entrada: TakeProfPoints: Este parâmetro permite definir o nível de Take Profit em pontos para cada operação. BalancePercentageAvailable: Especifique a porcentagem do saldo da sua conta que será utilizada para as negociações. TP_Percentage_of_Balance: Determina a porcentagem do saldo da sua conta a ser utilizada como Take Profit em cada operação. SL_Percentage_of_Balance: Este parâmetro define a porcentagem do seu saldo a ser alocada como Stop Loss para as operações. Start_The_Recovery: Este parâmetro desempenha um papel crucial no processo de recuperação, controlando quando e como as medidas de recuperação são ativadas. TP_Points_Multiplier: Um multiplicador para os pontos de Take Profit, permitindo estratégias de realização de lucro flexíveis. MagicNumber: Um identificador único para este EA, garantindo que ele possa gerenciar suas próprias operações de forma independente. Destaques da Estratégia: Trading de Breakout: O EA é especializado em identificar oportunidades de breakout no mercado, onde os movimentos de preço ultrapassam níveis-chave. Dimensionamento Dinâmico de Lote: Os tamanhos dos lotes são ajustados dinamicamente com base no saldo da sua conta e nas suas preferências de risco, seguindo os princípios de gestão de dinheiro do Martin Gale. Recuperação de Perdas: O EA inclui um mecanismo poderoso de recuperação, projetado para recuperar perdas por meio da modificação adaptativa dos parâmetros de negociação quando necessário. A função principal utilizada neste EA é a CalcLotWithTP(), que possui 3 parâmetros de entrada: Takeprofit, Startprice e Endprice. Essa função calcula o volume necessário para a operação de forma a atingir o objetivo de lucro ao entrar em uma negociação no Startprice e sair no Endprice. Todo o código está comentado, facilitando a compreensão. Eu fiz um vídeo no YouTube sobre isso:

2023.09.26
Expert Advisor Martin Gale Breakout para MT5: Maximize Seus Ganhos
MetaTrader5
Expert Advisor Martin Gale Breakout para MT5: Maximize Seus Ganhos

A estratégia "Martin Gale Breakout" é um sistema de trading desenvolvido para o mercado Forex, ideal para quem busca otimizar sua performance. Este EA (Expert Advisor) combina a abordagem de breakout com o gerenciamento de risco do sistema Martin Gale. Parâmetros de Entrada: TakeProfPoints: Define o nível de Take Profit em pontos para cada operação. BalancePercentageAvailable: Especifique a porcentagem do saldo da sua conta que será utilizada para trading. TP_Percentage_of_Balance: Determina a porcentagem do seu saldo que será usada como Take Profit em cada operação. SL_Percentage_of_Balance: Estabelece a porcentagem do seu saldo a ser alocada como Stop Loss nas operações. Start_The_Recovery: Esse parâmetro é crucial para o processo de recuperação, controlando quando e como as medidas de recuperação são ativadas. TP_Points_Multiplier: Um multiplicador para os pontos de Take Profit, permitindo estratégias flexíveis de realização de lucros. MagicNumber: Um identificador único para este EA, garantindo que ele possa gerenciar suas próprias operações de forma independente. Destaques da Estratégia: Trading de Breakout: O EA se especializa em identificar oportunidades de breakout no mercado, onde os movimentos de preço rompem níveis chave. Dimensionamento Dinâmico de Lotes: Os tamanhos dos lotes são ajustados dinamicamente com base no saldo da sua conta e nas suas preferências de risco, seguindo os princípios de gerenciamento de risco do Martin Gale. Recuperação de Perdas: O EA conta com um mecanismo de recuperação robusto, projetado para recuperar perdas ao modificar adaptativamente os parâmetros de operação quando necessário. A principal função utilizada neste EA é a CalcLotWithTP(), que possui 3 parâmetros de entrada: Takeprofit, Startprice e Endprice. Ela calcula o volume necessário para a operação, de forma que alcance o objetivo de lucro ao entrar em uma operação no Startprice e sair no Endprice. O código está totalmente comentado, facilitando a compreensão do funcionamento.

2023.09.26
Como Determinar a Política de Preenchimento de Símbolos no MetaTrader 5
MetaTrader5
Como Determinar a Política de Preenchimento de Símbolos no MetaTrader 5

Quando falamos sobre a política de preenchimento de símbolos no MetaTrader 5, é fundamental entender como essa função pode influenciar suas decisões de trading. Vamos dar uma olhada em como determinar essa política de maneira simples e prática. 1. Entrada do Símbolo A função começa recebendo como entrada o símbolo de um instrumento financeiro, que é o que vamos analisar para descobrir qual é a política de preenchimento aplicável. 2. Obtendo o Tipo de Política de Preenchimento O primeiro passo é utilizar a função SymbolInfoInteger para pegar as informações necessárias sobre a política de preenchimento desse símbolo. Essas informações são armazenadas em uma variável chamada filling, que contém um valor numérico. 3. Comparação das Políticas de Preenchimento Em seguida, com esse valor numérico em mãos, fazemos uma comparação com constantes pré-definidas que representam diferentes políticas de preenchimento. As mais comuns são: Fill or Kill (SYMBOL_FILLING_FOK) Immediate or Cancel (SYMBOL_FILLING_IOC) Return (SYMBOL_FILLING_RETURN) 4. Retornando o Tipo de Política de Preenchimento Por fim, com base na comparação, a função determina qual é a política de preenchimento. Se corresponder a Fill or Kill, ela retorna ORDER_FILLING_FOK. Se for Immediate or Cancel, retorna ORDER_FILLING_IOC. E se não coincidir com nenhuma das duas, então retorna ORDER_FILLING_RETURN. Em resumo, essa função é uma ferramenta valiosa para você que deseja entender e aplicar a política de preenchimento de um símbolo no MetaTrader 5. Com esse conhecimento, suas decisões de trading ficarão muito mais embasadas e acertadas.

2023.09.26
Primeiro Anterior 3 4 5 6 7 8 9 10 11 12 13 Próximo Último