Negociação Sistemática

Multi Arbitragem 1.000: A Ferramenta Essencial para MetaTrader 5
MetaTrader5
Multi Arbitragem 1.000: A Ferramenta Essencial para MetaTrader 5

Se você é trader, sabe que a essência do mercado é comprar a preços baixos e vender a preços altos. É assim que a Multi Arbitragem 1.000 funciona! Nesta versão, o Expert Advisor (ou EA, como chamamos por aqui) é projetado para operar apenas um símbolo, que você define no parâmetro "Symbol" nas configurações de entrada. Aqui está o princípio básico para abrir posições: Se o lucro total das posições de COMPRA for menor que o lucro das posições de VENDA, a tendência atual é de baixa, e devemos abrir uma posição de VENDA. Se o lucro total das posições de VENDA for menor que o lucro das posições de COMPRA, a tendência atual é de alta, e devemos abrir uma posição de COMPRA.       if(lucro_compras<lucro_vendas) // tendência de baixa          m_trade.Comprar(m_symbol.LotsMin(),m_symbol.Name());       else if(lucro_vendas<lucro_compras) // tendência de alta       m_trade.Vender(m_symbol.LotsMin(),m_symbol.Name());       else if(lucro_compras==0.0 && lucro_vendas==0.0)          m_trade.Comprar(m_symbol.LotsMin(),m_symbol.Name()); Veja os resultados dos testes no par EURUSD, no gráfico H4: É importante notar que, durante tendências de longo prazo, a carga sobre o depósito pode aumentar bastante. Este é um problema que ainda não foi resolvido.

2017.11.03
SaveTicks: A Ferramenta Essencial para MetaTrader 5
MetaTrader5
SaveTicks: A Ferramenta Essencial para MetaTrader 5

Se você é um trader que utiliza o MetaTrader 5, precisa conhecer o SaveTicks. Este programa é uma verdadeira mão na roda para gravar cotações de ticks em formatos de texto (CSV) e binário (BIN). Os arquivos são salvos na pasta MQL5\Files, e o mais bacana é que ele registra as cotações com uma frequência de amostragem constante, facilitando a análise dos ticks em programas matemáticos. Parâmetros de Entrada Intervalo de gravação - o intervalo de gravação dos ticks, em milissegundos. Os símbolos escolhidos como... - método de seleção de símbolos para gravação. Todos os símbolos - grava todos os símbolos disponíveis pelo seu corretor. Símbolos do Market Watch - grava todos os símbolos que aparecem no Market Watch. Carregar lista de símbolos de arquivo - a lista de símbolos é carregada a partir de um arquivo. Nome do arquivo com todos os nomes dos símbolos - o nome do arquivo com a lista de símbolos, por exemplo, "InputSymbolList.txt". Formato de gravação - CSV ou Binário. Formato de hora - configuração de hora. Pode ser a hora do servidor ou a hora do computador. Veja um exemplo de algoritmo usando "Carregar lista de símbolos de arquivo": Execute o Expert Advisor com quaisquer parâmetros e, em seguida, descarregue o EA. O arquivo gerado "\MQL5\Files\AllSymbols_SaveTicks.txt" conterá os nomes de todos os símbolos disponíveis pelo seu corretor. Renomeie-o, por exemplo, para "InputSymbolList.txt". Edite "InputSymbolList.txt" deixando apenas os símbolos que você precisa. A primeira linha deve mostrar o número de símbolos no arquivo. Confira um exemplo na lista de downloads no topo desta página. Execute o EA novamente com as configurações necessárias e ele registrará os ticks para os símbolos da lista. Verifique a pasta "\MQL5\Files\*****"; deverá conter arquivos com nomes como EURUSD_SaveTicks.csv.

2017.11.03
Trailing Profit: O Sistema de Gestão de Lucros para MetaTrader 5
MetaTrader5
Trailing Profit: O Sistema de Gestão de Lucros para MetaTrader 5

Autor da ideia — Vitaly, autor do código MQL5 — barabashkakvn.O Sistema de Trading gerencia todas as posições abertas no terminal (em todos os símbolos e com todos os números mágicos). Se o lucro total ainda não atingiu o lucro_mínimo, o EA aguarda.Quando o lucro total atinge lucro_mínimo, o EA define uma porcentagem de queda de lucro e ativa o monitoramento.O parâmetro percentual_de_lucro é especificado em porcentagem. Por exemplo, se lucro_mínimo = 1000 e percentual_de_lucro = 20. O lucro total de todas as posições abertas chega a 1000. Se o lucro cair para 800 (1000 - 20%), as posições serão fechadas. Se o lucro continuar crescendo, por exemplo, até 2000, a queda permitida será de 400 (2000 - 20%). Ou seja, todas as posições serão fechadas com um lucro total de 1600. Não existe um limite fixo de queda, pois não vejo utilidade em utilizar valores absolutos.Na teoria, é possível definir a porcentagem = 0. Isso funcionará como um Take Profit total. Também é possível definir a porcentagem = 100, que funcionará como breakeven (não se esqueça que, à medida que algumas ordens são fechadas, outras podem se tornar perdedoras).Atenção! O Sistema de Trading opera com um intervalo de 3 segundos:void OnTick()  {//--- permite o funcionamento a cada três segundos   static datetime prev_time=0;   datetime time_current=TimeCurrent();   if(time_current-prev_time<3)      return;   prev_time=time_current;//---  }

2017.08.10
ExpertClor_v01: O Assistente Ideal para Fechamento de Posições no MetaTrader 5
MetaTrader5
ExpertClor_v01: O Assistente Ideal para Fechamento de Posições no MetaTrader 5

Autor da ideia — John Smith, autor do código MQL5 — barabashkakvn.Apresentamos o ExpertClor_v01, um assistente Expert Advisor que se dedica exclusivamente ao fechamento de posições.Com o ExpertClor, suas posições são automaticamente movidas para o Breakeven, e o Stop Loss é calculado com base no indicador StopATR_auto. As posições são fechadas quando ocorre a interseção de duas Médias Móveis (MAs).Para garantir que o EA funcione corretamente, você precisa adicionar o arquivo compilado do indicador StopATR_auto na pasta MQL5\Indicators\Downloads://+------------------------------------------------------------------+ //| Função de inicialização do Expert                                   | //+------------------------------------------------------------------+ int OnInit()   { //--- ... //--- cria a handle do indicador iCustom    handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\\StopATR_auto",                           CountBarsForAverage,                           Target                           ); Embora esse Expert Advisor se concentre apenas no fechamento de posições, eu adicionei uma pequena parte de código para abrir posições://+------------------------------------------------------------------+ //| Função de tick do Expert                                             | //+------------------------------------------------------------------+ void OnTick()   { //---    if(MQLInfoInteger(MQL_DEBUG) || MQLInfoInteger(MQL_PROFILER) ||       MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION))      {       static long counter=-50;       static bool trade_buy=true;       if(counter==0)          m_trade.Buy(m_symbol.LotsMin());       else if(counter%1500==0)         {          if(RefreshRates())            {             if(trade_buy)               {                OpenBuy(m_symbol.LotsMin());                trade_buy=false;               }             else               {                OpenSell(m_symbol.LotsMin());                trade_buy=true;               }            }          else             counter=counter-9;     }       counter++;   }//--- Essa unidade só funciona quando você está testando ou otimizando este Expert Advisor. Compras ou Vendas são abertas a cada 1.500 ticks.

2017.08.10
Sistema de Trading: Expert RSI Stochastic MA para MetaTrader 5
MetaTrader5
Sistema de Trading: Expert RSI Stochastic MA para MetaTrader 5

O autor da ideia é Oksana Berenko, e o autor do código mq5 é barabashkakvn.Esse Sistema de Trading utiliza três indicadores: MA(150), RSI(3) com níveis de 80 e 20, e Stochastic(6, 3, 3) com níveis de 70 e 30. Você pode personalizar esses parâmetros e definir seus próprios valores.1. Direção de EntradaA direção de entrada das operações é determinada com base na MA (Média Móvel). Apenas uma operação é aberta em uma única direção.Se o Bid for maior que a MA, considere a direção de compra.Se o Ask for menor que a MA, considere a direção de venda.2. Entrada da PosiçãoA entrada da posição é realizada quando as condições do RSI e do Stochastic são atendidas.Compre se o RSI e o Stochastic estiverem abaixo do nível inferior, ou seja, RSI < 20 e Stochastic < 30.Venda se o RSI e o Stochastic estiverem acima do nível superior, ou seja, RSI > 80 e Stochastic > 70.3. SaídaA saída é baseada no Stochastic.Saída com pontos de lucro.(Trailing Stop = 0) Se o Trailing Stop estiver configurado como zero, feche a posição ao atingir o nível oposto do Stochastic, caso a operação tenha um certo lucro em pontos.b) Fechar COMPRA se Stochastic > 70 e Preço de Abertura <= Bids) Fechar VENDA se Stochastic < 30 e Preço de Abertura >= Ask(Trailing Stop > 0) Se o valor do Trailing Stop estiver especificado, uma vez que o nível oposto do Stochastic for alcançado, o Stop Loss da posição será ajustado na abertura de cada nova vela, mantendo a distância especificada em relação ao preço. Note que, neste caso, uma posição pode ser fechada com prejuízo, já que o Stop Loss nem sempre é imediatamente movido para o nível de breakeven.Fechamento com prejuízo em pontos.(permitir Prejuízo = 0) Se 'permitir Prejuízo' estiver configurado como 0, feche a posição ao atingir o nível oposto do Stochastic, caso a operação tenha um certo prejuízo em pontos.b) Fechar COMPRA se Stochastic > 70 e Preço de Abertura > Bids) Fechar VENDA se Stochastic < 30 e Preço de Abertura < Ask(permitir Prejuízo > 0) Se 'permitir Prejuízo' estiver especificado e saímos da zona de entrada da posição conforme o Stochastic, enquanto a operação tiver um prejuízo especificado em pontos ou mais, a posição será fechada.b) Fechar COMPRA se Stochastic > 30 e Preço de Abertura - Bid >= permitir Prejuízo em pontosb) Fechar VENDA se Stochastic < 70 e Ask - Preço de Abertura >= permitir Prejuízo em pontosTestes realizados no EURUSD, H1:

2017.08.10
Nevalyashka BreakdownLevel: Sistema de Trading para MetaTrader 5
MetaTrader5
Nevalyashka BreakdownLevel: Sistema de Trading para MetaTrader 5

Autor da ideia — Vladimir Khlystov, autor do código MQL5 — barabashkakvn. Esta estratégia de trading foca na quebra de um High/Low dentro de um intervalo de tempo selecionado. Para recuperar posições perdidas, o EA utiliza a estratégia "Nevalyashka" junto com uma técnica de martingale para aumentar o lote. O EA calcula os preços de High e Low no intervalo de tempo especificado entre Time start e Time end: Se o preço ultrapassar o High desse período, uma posição de COMPRA é aberta. Se o preço estiver abaixo do Low, uma posição de VENDA é aberta. O StopLoss é configurado na borda oposta do período, ou seja, no preço Low para posições de COMPRA e no preço High para posições de VENDA. O TakeProfit é definido com base na altura do período de controle. Se a opção Use time close estiver ativada, o parâmetro Time close (tempo para fechar todas as posições) estará ativo. Apenas horas e minutos são considerados para os parâmetros Time start, Time end e Time close. A monitorização de fechamento por StopLoss é feita em OnTradeTransaction. Quando "DEAL_ENTRY_OUT" é encontrado, verifique o campo de comentário dessa transação. Se o comentário contiver "sl", isso significa que a transação foi fechada pelo StopLoss:       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             MqlDateTime str1;             TimeToStruct(TimeCurrent(),str1);             //--- há uma chance de que isso tenha sido um fechamento no TakeProfit             if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit>=0.0)               {                  TradeDey=str1.day;                return;               }             //--- há uma chance de que isso tenha sido um fechamento no StopLoss             if(StringFind(deal_comment,"sl",0)!=-1)               {                if(TradeDey!=str1.day)                  {                   Print("Um fechamento de StopLoss foi detectado!");                   double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume);                   if(deal_type==DEAL_TYPE_SELL) // a posição de compra foi fechada                 {                   double SL=m_symbol.Bid()+loss*m_symbol.Point();                  double TP=m_symbol.Bid()-loss*m_symbol.Point();                  double Lot=LotCheck(deal_volume*InpK_martin);                   if(Lot==0.0)                     return;                  OpenSell(SL,TP,Lot,"Nevalyashka");                 }                  if(deal_type==DEAL_TYPE_BUY) // a posição de venda foi fechada                 {                   double SL=m_symbol.Ask()-loss*m_symbol.Point();                  double TP=m_symbol.Ask()+loss*m_symbol.Point();                  double Lot=LotCheck(deal_volume*InpK_martin);                   if(Lot==0.0)                     return;                  OpenBuy(SL,TP,Lot,"Nevalyashka");                 }               return;               }           } Uma posição oposta à que foi fechada é aberta (se o tipo de transação for "DEAL_TYPE_SELL", então uma posição de COMPRA foi fechada; "DEAL_TYPE_BUY" significa que uma posição de VENDA foi fechada), com um lote aumentado multiplicado por K. martin. Se uma posição foi fechada com lucro positivo, o Expert Advisor aguarda o início do próximo período Time end e repete o procedimento mencionado acima. O parâmetro "No loss" significa que quando metade do lucro da posição é alcançado, o StopLoss é movido para o preço de abertura da posição. Exemplo se testando no EURUSD, M30:

2017.08.10
DoubleZigZag: O EA que Revoluciona suas Análises no MetaTrader 5
MetaTrader5
DoubleZigZag: O EA que Revoluciona suas Análises no MetaTrader 5

O autor da ideia é Maksim, e o autor do código mq5 é barabashkakvn.O Expert Advisor utiliza dois indicadores ZigZag para análise: um ZigZag menor com parâmetros (13.5,3) e um ZigZag maior, cujos parâmetros são multiplicados por oito: (13*8,5*8,3*8).//--- cria o handle do indicador iCustom    handle_iCustom=iCustom(Symbol(),Period(),"Examples\ZigZag",13,5,3); //--- se o handle não foi criado    if(handle_iCustom==INVALID_HANDLE)      {       //--- informar sobre a falha e mostrar o código de erro       PrintFormat("Falha ao criar o handle do indicador iCustom para o símbolo %s/%s, código de erro %d",                   Symbol(),                   EnumToString(Period()),                   GetLastError());       //--- o indicador é interrompido prematuramente       return(INIT_FAILED);      } //--- cria o handle do indicador iCustom    handle_iCustomX8=iCustom(Symbol(),Period(),"Examples\ZigZag",13*8,5*8,3*8); //--- se o handle não foi criado    if(handle_iCustomX8==INVALID_HANDLE)      {       //--- informar sobre a falha e mostrar o código de erro       PrintFormat("Falha ao criar o handle do indicador iCustomX8 para o símbolo %s/%s, código de erro %d",                   Symbol(),                   EnumToString(Period()),                   GetLastError());       //--- o indicador é interrompido prematuramente       return(INIT_FAILED);      } Para tomar uma decisão de negociação, as duas pernas do último pico do ZigZag maior (13*8,5*8,3*8) são analisadas, enquanto o número de picos do ZigZag menor (13,5,3) contidos nessas duas pernas é contado.Se um sinal para abrir uma posição de COMPRA for recebido, todas as posições de VENDA são fechadas. E vice-versa: se um sinal para abrir uma posição de VENDA for recebido, todas as posições de COMPRA são fechadas.Parâmetros do Expert Advisor:k é a razão do número de picos do ZigZag menor nas pernas do ZigZag maiork2 é a razão da diferença de preço nos picos do ZigZag maiorExemplo:O ZigZag maior (13*8,5*8,3*8) é mostrado em vermelho, enquanto o ZigZag menor (13,5,3) é amarelo.Assim, ABC são os picos do ZigZag maior (13*8,5*8,3*8).As pernas AB e AC contêm nove picos do ZigZag menor (13,5,3).Resultados dos testes no EURUSD, M1:

2017.08.10
Exp_XROC2_VG_X2: O Sistema de Trading para MetaTrader 5 que Você Precisa Conhecer
MetaTrader5
Exp_XROC2_VG_X2: O Sistema de Trading para MetaTrader 5 que Você Precisa Conhecer

O sistema de trading Exp_XROC2_VG_X2 é um verdadeiro aliado na hora de seguir tendências. Ele se baseia nos sinais gerados por dois indicadores XROC2_VG, que vão te ajudar a tomar decisões mais assertivas. Como Funciona? O primeiro indicador determina a direção da tendência lenta, observando a posição das linhas principal e de sinal. Já o segundo indicador te avisa quando é o momento ideal para abrir uma operação, seja quando as linhas se cruzam ou se tocam. Para que um sinal de entrada seja gerado, é necessário que duas condições sejam atendidas: A coincidência dos sinais de tendência rápida e lenta; A tendência rápida tenha mudado de direção. Parâmetros do EA: //+-------------------------------------------------+ //| Parâmetros de entrada do EA | //+-------------------------------------------------+ input string Trade="Gerenciamento de trades";    //+================ GESTÃO DE TRADES ================+ input double MM=0.1;               //Porcentagem do depósito em uma operação input MarginMode MMMode=LOT;      //Método de detecção do valor do lote input uint    StopLoss_=1000;      //Stop Loss em pontos input uint    TakeProfit_=2000;    //Take Profit em pontos input string MustTrade="Permissões de trade";    //+=============== PERMISSÕES DE TRADE ===============+ input int    Deviation_=10;       //Desvio máximo de preço em pontos input bool   BuyPosOpen=true;     //Permissão para abrir posições longas input bool   SellPosOpen=true;    //Permissão para abrir posições curtas //+-------------------------------------------------+ //| Parâmetros de entrada do indicador de filtro        | //+-------------------------------------------------+ input string Filter="PARÂMETROS DE TENDÊNCIA LENTA";    //+============== PARÂMETROS DE TENDÊNCIA ==============+ input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6;  //1 Período do gráfico para a tendência input uint ROCPeriod1=8; input Smooth_Method MA_Method1=MODE_JJMA;          //Método de suavização do primeiro indicador input uint Length1=5;                              //Profundidade da primeira suavização                     input int Phase1=15;                               //Parâmetro da primeira suavização, //---- para JJMA dentro do intervalo de -100 ... +100, influencia a qualidade do processo de transição; //---- para VIDIA é um período de CMO, para AMA é um período de média lenta input uint ROCPeriod2=14; input Smooth_Method MA_Method2=MODE_JJMA;          //Método de suavização do segundo indicador input uint Length2 = 5;                            //Profundidade da segunda suavização input int Phase2=15;                               //Parâmetro da segunda suavização, //---- para JJMA dentro do intervalo de -100 ... +100, influencia a qualidade do processo de transição; //---- para VIDIA é um período de CMO, para AMA é um período de média lenta input ENUM_TYPE ROCType=MOM; input uint SignalBar=1; //Índice da barra para receber o sinal de entrada input bool   BuyPosClose=true;     //Permissão para fechar posições longas pela tendência input bool   SellPosClose=true;    //Permissão para fechar posições curtas pela tendência //+-------------------------------------------------+ //| Parâmetros de entrada do indicador de entrada         | //+-------------------------------------------------+ input string Input="PARÂMETROS DE ENTRADA";       //+=============== PARÂMETROS DE ENTRADA ==============+   input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;  //2 Período do gráfico para entrada input uint ROCPeriod1_=8; input Smooth_Method MA_Method1_=MODE_JJMA;          //Método de suavização do primeiro indicador input uint Length1_=5;                              //Profundidade da primeira suavização                     input int Phase1_=15;                               //Parâmetro da primeira suavização, //---- para JJMA dentro do intervalo de -100 ... +100, influencia a qualidade do processo de transição; //---- para VIDIA é um período de CMO, para AMA é um período de média lenta input uint ROCPeriod2_=14; input Smooth_Method MA_Method2_=MODE_JJMA;          //Método de suavização do segundo indicador input uint Length2_ = 5;                            //Profundidade da segunda suavização input int Phase2_=15;                               //Parâmetro da segunda suavização, //---- para JJMA dentro do intervalo de -100 ... +100, influencia a qualidade do processo de transição; //---- para VIDIA é um período de CMO, para AMA é um período de média lenta input ENUM_TYPE ROCType_=MOM; input uint SignalBar_=1;//Índice da barra para receber o sinal de entrada input bool   BuyPosClose_=false;     //Permissão para fechar posições longas pelo sinal input bool   SellPosClose_=false;    //Permissão para fechar posições curtas pelo sinal As variáveis de string contendo o texto nos parâmetros de entrada são usadas apenas para melhorar a visualização da janela de parâmetros do EA. Os indicadores XROC2_VG_HTF no EA servem apenas para uma visualização mais conveniente das tendências no testador de estratégia, em outros modos de operação, eles ficam inativos. Para garantir o funcionamento adequado do Expert Advisor compilado, você deve adicionar os arquivos compilados XROC2_VG.ex5 e XROC2_VG_HTF.ex5 na pasta <terminal_data_folder>\MQL5\Indicators. Vale ressaltar que a biblioteca TradeAlgorithms.mqh permite o uso de Expert Advisors com corretores que oferecem spread não zero e a opção de definir Stop Loss e Take Profit durante a abertura da posição. Você pode baixar mais variantes da biblioteca no seguinte link: Algoritmos de Trade. Os parâmetros de entrada padrão do Expert Advisor foram utilizados durante os testes mostrados abaixo. O Stop Loss e o Take Profit não foram utilizados durante os testes. Fig. 1. Exemplos de operações no gráfico Resultados dos testes para 2015 no AUDUSD, tendência lenta em H6, entrada pela tendência rápida em M30: Fig. 2. Gráfico de resultados dos testes

2017.08.10
Exp_XROC2_VG_Tm: EA para MetaTrader 5 com Sinais Precisos
MetaTrader5
Exp_XROC2_VG_Tm: EA para MetaTrader 5 com Sinais Precisos

O Exp_XROC2_VG_Digit_Tm é um Sistema de Trading que opera baseado em sinais gerados pelo oscilador XROC2_VG. Além disso, ele oferece a flexibilidade de definir um intervalo de tempo estrito para as operações. Um sinal de trade é formado no fechamento de uma barra, caso a cor do indicador tenha mudado (a linha principal do indicador cruzou a linha de sinal). Você pode especificar o horário de operação nos parâmetros de entrada para negociar dentro do intervalo de tempo desejado: input bool   TimeTrade=true;      //Permitir negociação no intervalo especificado input HOURS  StartH=ENUM_HOUR_0;  //Início da negociação (horas) input MINUTS StartM=ENUM_MINUT_0; //Início da negociação (minutos) input HOURS  EndH=ENUM_HOUR_23;   //Fim da negociação (horas) input MINUTS EndM=ENUM_MINUT_59;  //Fim da negociação (minutos) Duas variáveis (horas e minutos) são fornecidas para definir o horário de início da operação, e duas variáveis semelhantes para o horário de encerramento. As configurações padrão permitem que o EA opere durante toda a sessão de trading, começando à 0:00, enquanto todas as posições são fechadas às 23:59. Se o horário de início for posterior ao horário de término definido, o EA fechará as posições no dia seguinte, no horário especificado. Para o funcionamento correto do Expert Advisor, é necessário salvar o arquivo compilado do indicador XROC2_VG.ex5 na pasta <terminal_data_folder>\MQL5\Indicators. Vale ressaltar que a biblioteca TradeAlgorithms.mqh permite utilizar Expert Advisors com corretores que oferecem spread não zero e a opção de definir Stop Loss e Take Profit durante a abertura da posição. Você pode baixar mais variantes da biblioteca através do seguinte link: Trade Algorithms. Os parâmetros de entrada padrão do Expert Advisor foram utilizados nos testes mostrados abaixo. Stop Loss e Take Profit não foram utilizados durante os testes. Fig. 1. Exemplos de operações no gráfico Resultados dos testes de 2015 para XAUUSD H4: Fig. 2. Gráfico de resultados do teste

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