Negociação Sistemática

Burg Extrapolator: O Expert Advisor Ideal para MetaTrader 5
MetaTrader5
Burg Extrapolator: O Expert Advisor Ideal para MetaTrader 5

Autor da ideia: Vladimir, Autor do código mq5: barabashkakvn. O Expert Advisor Burg Extrapolator utiliza o método de Burg para previsão linear. Essa técnica se baseia na busca de valores futuros como funções lineares de valores passados. Por exemplo, temos a faixa de preços x[0]..x[n-1], onde índices mais altos correspondem a preços mais recentes. A previsão do preço futuro x[n] é calculada da seguinte forma: x[n] = -Sum(a[i]*x[n-i], i=1..p) onde a[i=1..p] são as razões do modelo e p é a ordem do modelo. O método de Burg encontra as razões a[] minimizando o erro quadrático médio nas últimas n-p barras de treinamento. Parâmetros de Entrada MaxRisk - risco máximo de todas as operações realizadas simultaneamente. ntmax - número máximo de operações em uma única direção. MinProfit - lucro mínimo previsto para abertura de posições. MaxLoss - perda máxima prevista para fechamento de posições. TakeProfit - valor do Take Profit. StopLoss - valor do Stop Loss. TrailingStop - função de Trailing Stop. PastBars - número de barras anteriores usadas para prever valores futuros. ModelOrder - ordem do modelo de Burg como fração do número de barras passadas (0..1). UseMOM - ativa a remoção da tendência dos dados de entrada: mom(i)=log[p(i)/p(i-1)]. UseROC - ativa a remoção da tendência dos dados de entrada: roc=100*(p(i)/p(i-1)-1). Apenas uma das variáveis UseMOM ou UseROC pode ser verdadeira, ou seja, UseMOM=true AND UseROC=true não é permitido. Como a maioria dos Expert Advisors otimizados, o Burg Extrapolator funciona bem apenas com barras de treinamento. Este Expert Advisor tende a perder dinheiro se não houver uma re-otimização constante.

2017.11.03
Como Funciona o Trade Oposto no MetaTrader 5: Guia Prático
MetaTrader5
Como Funciona o Trade Oposto no MetaTrader 5: Guia Prático

Fala, galera! Hoje vamos falar sobre uma estratégia bem interessante no trading: o Trade Oposto. A ideia básica é abrir uma posição oposta à que foi fechada, mantendo o mesmo volume. Essa abordagem pode ser aplicada em qualquer símbolo e com qualquer número mágico. Por exemplo, digamos que você tenha uma posição aberta de compra (BUY) em AUDUSD com volume de 0.01. Assim que você fechar essa posição (seja manualmente ou por outro motivo), o Expert Advisor de Trade Oposto vai abrir automaticamente uma nova posição em AUDUSD, mas agora como venda (SELL). Todo o código necessário para isso está na função OnTradeTransaction: //+------------------------------------------------------------------+ //| Função TradeTransaction                                        | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans,                         const MqlTradeRequest &request,                         const MqlTradeResult &result)   { //--- obtém o tipo de transação como valor enumerado    ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- se a transação é resultado da adição da transação no histórico    if(type==TRADE_TRANSACTION_DEAL_ADD)      {       long     deal_type         =-1;       long     deal_entry        =-1;       double   deal_volume       =0.0;       string   deal_symbol       ="";       if(HistoryDealSelect(trans.deal))         {          deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);          deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);          deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);          deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);         }       else          return;       if(deal_entry==DEAL_ENTRY_OUT)         {          switch((int)deal_type)            {             case  DEAL_TYPE_BUY:                m_trade.Buy(deal_volume,deal_symbol);                break;             case  DEAL_TYPE_SELL:                m_trade.Sell(deal_volume,deal_symbol);                break;             default:                break;            }         }      }   } Nessa parte do código, estamos aguardando o fechamento da posição (DEAL_ENTRY_OUT). Assim que essa transação aparece, verificamos se foi uma compra ou uma venda e abrimos a nova posição de acordo. É uma estratégia simples, mas que pode ser muito eficaz se utilizada corretamente!

2017.11.03
Up3x1 Investor: O Melhor EA para MetaTrader 5
MetaTrader5
Up3x1 Investor: O Melhor EA para MetaTrader 5

Autor da ideia: PPP, Autor do código MQL5: barabashkakvn. O Expert Advisor (EA) Up3x1 é voltado para aproveitar a tensão gerada pelas liberações de indicadores econômicos importantes no mercado FOREX. A estratégia analisa os valores de High-Low e Open-Close das velas para encontrar oportunidades de entrada. Os parâmetros do EA estão configurados para operar o par EUR/USD no gráfico H1. O depósito inicial recomendado é de R$ 1.000 ou mais. Embora seja tentador aumentar o lucro elevando o fator de risco, é sempre melhor seguir as regras de gerenciamento de risco e utilizar as configurações padrão. Parâmetros de Entrada Parâmetros de Negociação Stop Loss (em pips) - Valor do Stop Loss. Take Profit (em pips) - Valor do Take Profit. Trailing Stop (em pips) - Valor do trailing stop. Trailing Step (em pips) - Valor do passo do trailing. Risco em porcentagem sobre a margem livre - Risco por negociação em porcentagem da margem livre. Fator de diminuição (baseado no histórico de negociação) - Este fator é utilizado em caso de operações perdedoras. Dias de histórico (apenas se o "Fator de diminuição" > 0) - Número de dias para a análise do histórico de negociação. Parâmetros de Diferença Diferença high#1 menos low#1 (em pips) - Valor mínimo da vela High menos Low; Diferença open#1 menos close#1 (em pips) - Valor mínimo da vela Open menos Close. Exemplo de teste no EUR/USD, H1:

2017.11.03
Last ZZ50: Um Sistema de Trading Inovador para MetaTrader 5
MetaTrader5
Last ZZ50: Um Sistema de Trading Inovador para MetaTrader 5

A estratégia Last ZZ50 é baseada no indicador ZigZag e utiliza ordens pendentes para operar no mercado. A ideia original surgiu em um tópico do fórum Uma estratégia baseada no indicador ZigZag - "Last ZZ50" (em russo). O autor da ideia é Vitaly Muzichenko, enquanto o código MQL5 foi desenvolvido por Vladimir Karputov. O princípio geral da estratégia "Last ZZ50" é o seguinte: No indicador ZigZag, sempre analisamos os últimos dois segmentos: AB e BC. O segmento AB ainda não está fixo e pode mudar (a posição do ponto A pode variar). As ordens pendentes são posicionadas entre os segmentos AB e BC para que: A ativação da ordem pendente no segmento AB represente a continuação da tendência mostrada pelo segmento BC. A ativação da ordem pendente no segmento BC represente a reversão da tendência indicada pelo segmento BC. Como o segmento AB ainda não está fixo, a ordem pendente será constantemente ajustada para se manter na posição média do AB. As posições abertas são acompanhadas com base na seguinte regra: aguardamos até que a posição se mova para a área de lucro (sem considerar comissões e swaps) por pelo menos (Trailing Stop + Trailing Step) pontos, e então ativamos a função de trailing para essa posição. O processo de busca por máximas e mínimas é implementado neste Sistema Trading: o indicador é adicionado ao gráfico, e três linhas verticais adicionais são desenhadas através dos pontos A, B e C:

2017.11.03
OzFx: Sistema de Sinais para MetaTrader 5
MetaTrader5
OzFx: Sistema de Sinais para MetaTrader 5

Autor da ideia: Yuri, autor do código mq5: barabashkakvn. Descrição da geração de sinais de abertura de posições: Stoh_main_1 - valor do Oscilador Estocástico na barra #1. InpStochasticLevel - entrada para o nível do Estocástico. AC_1 - valor do Oscilador Acelerador na barra #1. ACPrev_2 - valor do Oscilador Acelerador na barra #2. Sinal de COMPRA - ocorre quando o Oscilador Estocástico na barra #1 é maior que o nível de entrada do Estocástico e o Oscilador Acelerador na barra #1 é maior que o Oscilador Acelerador na barra #2. Neste caso, o Oscilador Acelerador na barra #1 deve estar acima de zero, e o Oscilador Acelerador na barra #2 deve estar abaixo de zero: if(Stoh_main_1>InpStochasticLevel && AC_1>ACPrev_2 && AC_1>0 && ACPrev_2<0 && count_buys==0) Sinal de VENDA - ocorre quando o Oscilador Estocástico na barra #1 é menor que o nível de entrada do Estocástico e o Oscilador Acelerador na barra #1 é menor que o Oscilador Acelerador na barra #2. Neste caso, o Oscilador Acelerador na barra #1 deve estar abaixo de zero, e o Oscilador Acelerador na barra #2 deve estar acima de zero: if(Stoh_main_1<InpStochasticLevel && AC_1<ACPrev_2 && AC_1<0 && ACPrev_2>0 && count_sells==0) Exemplo de um sinal de VENDA: Quando um sinal é recebido, abrimos cinco posições com o mesmo lote. A primeira posição tem Stop Loss e Take Profit iguais a zero. Todas as posições subsequentes têm um Stop Loss igual e cada uma tem um Take Profit crescente, com um passo do parâmetro Take Profit (em pips). Resultados dos testes em todos os símbolos no PERÍODO_D1:

2017.11.03
Martin: Estrategia de Trading para MetaTrader 5
MetaTrader5
Martin: Estrategia de Trading para MetaTrader 5

Autor da ideia — Vladimir Khlystov, autor do código mq5 — barabashkakvn. Descrição do autor da ideia: Descrição O Expert Advisor foi criado a pedido de um dos participantes do fórum. Um comentário de vvx080: A ideia é criar uma grade de ordens de stop, por exemplo, primeiro configuramos duas ordens, uma de venda e uma de compra; assim que uma das ordens é ativada, a segunda deve ser cancelada. Se a operação não for lucrativa, após 10 pontos abrimos uma ordem oposta com o lote dobrado. Se ainda assim não for lucrativa, após 20 pontos abrimos outra ordem oposta, que será duas vezes maior que a anterior. E se a operação continuar negativa, após 30 pontos abrimos uma nova ordem oposta, novamente o dobro da anterior, e assim por diante. Com essas condições, é difícil que o depósito seja completamente perdido. Em caso de um movimento positivo no trade, utilizamos um bom trailing para capturar 300 pontos de lucro. Não utilizamos stop loss e take profit para as ordens; as operações são fechadas quando atingimos um lucro comum. Essa estratégia não teme tendências ou mercados laterais. Durante uma tendência, o lucro total é seguido. Aqui está o cálculo preliminar de lotes e do depósito: venda 0.1 -10p = -1, compra 0.2 -20p = -3 venda 0.4 -30p = -12 compra 0.8 -40p = -32 venda 1.6 -50p = -87 compra 3.2 -60p = -213 venda 6.4 -70p = -514 compra 12.8 -80p = -1194 venda 25.6 -90p = -2886 Acredito que um depósito de 3000 deve ser suficiente, mas a estratégia dificilmente chegará à 8ª ou 9ª ordem. Posso estar errado em algum ponto, mas a ideia é essa. O Expert Advisor será mais preciso. O EA utiliza aumento de lotes, mas não pode ser chamado de um martingale puro. Além disso, o EA consegue sair de movimentos laterais, enquanto muitos martingales não conseguem. Por favor, adicione seus comentários e ideias para melhorar a estratégia. Entretanto, evitemos discutir que "martingale é ruim" sem antes testar o EA em uma conta demo e sem entender seu princípio de funcionamento. Parâmetros do Expert Advisor InpStep - passo entre as posições. InpProfitClose - lucro mínimo, a partir do qual todas as posições serão fechadas. InpLot - volume da posição. Resultados dos testes no EURUSD:

2017.11.03
iCCI iMA: Sistema de Trading para MetaTrader 5
MetaTrader5
iCCI iMA: Sistema de Trading para MetaTrader 5

Autor da Ideia: Andrey, o autor do código MQL5: barabashkakvn. Este sistema utiliza a Média Móvel com dados do Índice de Canal das Mercadorias para tomar decisões de trading. //--- cria o handle do indicador iMA    handle_iMA = iMA(m_symbol.Name(), Period(), 15, 0, MODE_EMA, handle_iCCI); //--- se o handle não for criado    if(handle_iMA == INVALID_HANDLE)      {       //--- informa sobre a falha e exibe o código de erro       PrintFormat("Falha ao criar handle do indicador iMA para o símbolo %s/%s, código de erro %d",                   m_symbol.Name(),                   EnumToString(Period()),                   GetLastError());       //--- o indicador é interrompido       return(INIT_FAILED);      } Esse método é semelhante a ativar o indicador Média Móvel na janela do Índice de Canal das Mercadorias, selecionando "Dados do Indicador Anterior" nos parâmetros (aplicando o indicador aos dados de outro indicador). Princípios de Abertura e Fechamento de Posições: Se a Média Móvel calculada com base no Índice de Canal das Mercadorias cruzar o Índice de Canal das Mercadorias para baixo, uma posição de COMPRA é aberta. Se a Média Móvel cruzar o Índice de Canal das Mercadorias para cima, uma posição de VENDA é aberta. Se a Média Móvel cruzar o Índice de Canal das Mercadorias para cima, uma posição de COMPRA é fechada. Se a Média Móvel cruzar o Índice de Canal das Mercadorias para baixo, uma posição de VENDA é fechada. Teste realizado no EURUSD, H1:

2017.11.03
Como Usar Stop Loss e Take Profit no MetaTrader 5: Guia Prático
MetaTrader5
Como Usar Stop Loss e Take Profit no MetaTrader 5: Guia Prático

Se você é trader, sabe que gerenciar suas operações é fundamental para o sucesso. Uma das ferramentas que podem ajudá-lo nesse gerenciamento são os comandos Stop Loss e Take Profit. Vamos entender como eles funcionam no MetaTrader 5. Quando um trade é fechado por Stop Loss, o volume é duplicado; já se for fechado por Take Profit, o volume mínimo é utilizado. O OnTradeTransaction é o que usamos para determinar se uma operação foi realizada após a ativação do Stop Loss ou Take Profit. Na versão 1625, foi adicionada uma excelente enumeração chamada ENUM_DEAL_REASON: ENUM_DEAL_REASON Descrição ... ... DEAL_REASON_SL A operação foi executada em decorrência da ativação do Stop Loss DEAL_REASON_TP A operação foi executada em decorrência da ativação do Take Profit ... ... Essas informações podem ser verificadas no OnTradeTransaction. Em outras palavras, essa é uma maneira simples e confiável de determinar se uma operação resultou de um Take Profit ou Stop Loss. Atualmente, na versão 1626, esse Expert Advisor só pode ser verificado em um teste ao vivo - seja lançando-o em um gráfico ou em modo de depuração com dados reais (F5 no MetaEditor). Eu utilizei a seguinte manobra para contornar: No OnTradeTransaction, determinamos se foi o Take Profit ou Stop Loss que acionou:       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             if(deal_reason==DEAL_REASON_SL)                ExtLot*=2.0;             else if(deal_reason==DEAL_REASON_TP)                ExtLot=m_symbol.LotsMin();            }

2017.11.03
Multi Arbitration 1.1xx: O EA Ideal para MetaTrader 5
MetaTrader5
Multi Arbitration 1.1xx: O EA Ideal para MetaTrader 5

Hoje vamos falar sobre a nova versão do Multi Arbitration 1.000, que agora chega com a versão 1.1xx. Se você é trader e está buscando otimizar seu tempo e suas operações, essa ferramenta pode ser a chave para alavancar seus resultados! Principais diferenças em relação à versão 1.000: O EA agora é executado apenas no PERIOD_M1 (confira a explicação abaixo no parâmetro Time frame). Agora, o EA consegue operar com dois símbolos simultaneamente. O segundo símbolo é escolhido a partir do array estático ExtArrSymbols: string         ExtArrSymbols[20]=   {    "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",    "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",    "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",    "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"   }; //+------------------------------------------------------------------+ //| Função de inicialização do expert                                   | //+------------------------------------------------------------------+ int OnInit() O princípio de abertura de posições foi alterado: Agora, uma nova posição de COMPRA só pode ser aberta quando o preço atual estiver abaixo da posição de COMPRA mais baixa. Uma nova posição de VENDA só pode ser aberta quando o preço atual estiver acima da posição de VENDA mais alta. O novo parâmetro Time frame permite otimizar o EA em qualquer gráfico. O Expert Advisor funciona quando aparece uma nova barra do símbolo principal (ou seja, o símbolo do gráfico onde o EA está rodando): //+------------------------------------------------------------------+ //| Função tick do expert                                             | //+------------------------------------------------------------------+ void OnTick()   { //--- trabalhamos apenas no momento do nascimento de uma nova barra    static datetime prevtime=0;    datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);    if(time_0==prevtime)       return;    prevtime=time_0; Aqui a variável InpTimeFrame é a nossa entrada de Time frame. Dependendo do Time frame que você inserir, podemos fazer com que o EA trabalhe em qualquer período! Resultados dos testes no EURUSD:

2017.11.03
Primeiro Anterior 23 24 25 26 27 28 29 30 31 32 33 Próximo Último