Negociação Sistemática

Criando um EA de Cruzamento de Médias Móveis no MetaTrader 4
MetaTrader4
Criando um EA de Cruzamento de Médias Móveis no MetaTrader 4

Vamos começar a criar esse EA (Expert Advisor) definindo as variáveis de entrada. //--- parâmetros de entrada input    int      periodo_ma_rapida = 8;  // Período da Média Móvel Rápida input    int      periodo_ma_lenta = 20; // Período da Média Móvel Lenta input    double  takeProfit  = 20.0;  // Take Profit (pips) input    double  stopLoss    = 20.0  // Stop Loss (pips) input    double  tamanhoLote     = 0.10;  // Tamanho do Lote input    double  minimoEquity   = 100.0; // Mínimo Equity ($) input    int slippage = 3;       // Slippage input    int numeroMagico = 889;  // Número Mágico Agora, vamos definir as variáveis globais. Essas variáveis com escopo global estarão disponíveis em todas as funções. // Variáveis Globais double  meuPonto    = 0.0; int      minhaSlippage = 0; int      CompraTicket   = 0; int      VendaTicket  = 0; Quando o EA é executado, a primeira função chamada é a OnInit(). Usamos essa função para validar e inicializar as variáveis globais que serão utilizadas. int OnInit() {    // validação das entradas, sempre valide ao inicializar dados de entrada    if (periodo_ma_rapida >= periodo_ma_lenta || takeProfit < 0.0 || stopLoss < 0.0 || tamanhoLote < 0.01 || minimoEquity < 10){       Alert("ATENÇÃO - Dados de entrada não são válidos");       return (INIT_PARAMETERS_INCORRECT);    }       double volume_minimo=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);    if(tamanhoLote<volume_minimo)    {       string mensagem =StringFormat("Volume menor que o permitido de %.2f",volume_minimo);       Alert (mensagem);       return(INIT_PARAMETERS_INCORRECT);    }       meuPonto = GetPipPoint(Symbol());    minhaSlippage = GetSlippage(Symbol(),slippage);    return(INIT_SUCCEEDED); } Quando o preço do mercado se move (tick), a função OnTick() será chamada e executará todas as instruções contidas nesse bloco. Dentro da função OnTick(), chamaremos várias outras funções. Começamos chamando a função checkMinEquity() para controlar a adequação do equity para operações. Se o equity for suficiente (acima do mínimo), continuamos com a declaração da variável de sinal e chamamos a função NewCandle(), que informa quando uma nova vela é formada. A função getSignal() irá ler os valores nos dois indicadores de média móvel e retornar a informação sobre um cruzamento, seja para compra ou venda. Com base nessa informação de sinal, ela será encaminhada para a função transaction(), que definirá as posições de compra ou venda. Depois, chamamos a função setTPSL(), que serve para definir os preços de take profit e stop loss.Se o equity não atender ao requisito mínimo, um alerta será exibido e o EA será encerrado. void OnTick() {    if (checkMinEquity()){              int sinal = -1;       bool novaCandle = NewCandle(Period(), Symbol());              sinal = getSignal(novaCandle);       transaction(novaCandle, sinal);       setTPSL();                  }else{       // Parar a operação, pois o equity não é suficiente       Print("EA será encerrado pois o equity é insuficiente");    } } A função para setTPSL() void setTPSL(){    int   ordemTotal = 0;    string   strMN = "", par = "";    double sl = 0.0, tp = 0.0;       par = Symbol();       ordemTotal = OrdersTotal();    for (int i=ordemTotal-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       strMN = IntegerToString(OrderMagicNumber());       if (StringFind(strMN, IntegerToString(numeroMagico), 0) == 0 && StringFind(OrderSymbol(), par, 0) == 0 ){          if (OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0) ){             if (takeProfit > 0) {                tp = OrderOpenPrice() + (takeProfit * meuPonto);             }else{                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() - (stopLoss * meuPonto);             }else{                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl ){                if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)){                   Print ("Modificação da Ordem Bem Sucedida");                }             }          }          if (OrderType() == OP_SELL && (OrderTakeProfit() == 0 || OrderStopLoss() == 0) ){             if (takeProfit > 0) {                tp = OrderOpenPrice() - (takeProfit * meuPonto);             }else{                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() + (stopLoss * meuPonto);             }else{                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl ){                if (OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrRed)){                   Print ("Modificação da Ordem Bem Sucedida");                }             }          }       }// fim do if número mágico && par           }// fim do for } Para educação e compartilhamento, junte-se ao nosso grupo no Telegram t.me/codeMQL Se você está procurando um App para apoiar suas operações, baixe nosso aplicativo SignalForex na Play Store https://play.google.com/store/apps/details?id=com.autobotfx.signalforex

2021.03.30
EA Adaptativo e Inteligente: Conheça o Sistema de Deep Learning para MetaTrader 4
MetaTrader4
EA Adaptativo e Inteligente: Conheça o Sistema de Deep Learning para MetaTrader 4

Olá, traders! Hoje quero compartilhar com vocês uma novidade que pode revolucionar a forma como operamos no mercado. Estou falando do meu Expert Advisor adaptativo, que desenvolvi com base em Deep Learning. A ideia surgiu após criar um EA que negocia padrões estáticos, o The Unreal Engine. Se você ainda não conhecia, dê uma olhada aqui. Enfrentei algumas limitações ao testar esse EA de aprendizado profundo, principalmente devido ao meu computador, que é um dual core com apenas 4 GB de RAM. Para realizar testes mais extensos, um supercomputador é praticamente essencial, ou o processo pode demorar bastante. O nome do meu EA é The Enchantress, e ele é projetado para coletar cada padrão que aparece no mercado, abrindo ordens virtuais com stop loss e take profit. Esse EA tem a capacidade de detectar os melhores padrões do mercado para abrir uma operação real. Vale lembrar que, por se tratar de um sistema de deep learning, ele precisará de um tempo de adaptação, geralmente de 3 a 5 meses, antes de começar a abrir operações reais. Antes de operar em uma conta real, recomendo que você teste no estratégia tester do MetaTrader. E se você testar esse EA, por favor, compartilhe seus resultados conosco! Você pode fazer isso no link aqui. Se você quer acompanhar mais novidades, confira o nosso canal aqui. Feliz testes a todos! E uma dica: experimente testar em pares de 5 dígitos e no menor timeframe (H1).

2021.03.13
Como Criar um EA Simples Usando o Indicador DeMarker no MetaTrader 4
MetaTrader4
Como Criar um EA Simples Usando o Indicador DeMarker no MetaTrader 4

Olá, trader! Hoje quero compartilhar uma experiência que tive quando comecei a explorar o uso de Expert Advisors (EAs) no meu trading. Este é um dos EAs mais simples que já utilizei, e espero que você possa aproveitar essa dica. Após ler, não esqueça de deixar sua avaliação! Este EA é projetado para operar em um único par de moedas. As configurações completas, como período, lotes, stop loss e take profit, estão disponíveis no menu de propriedades. extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// Selecionar o Período extern int period = 8;// Período DeMarker extern double lt = 0.01;// Lotes extern int sl = 100;// Stop Loss extern int tp = 100;// Take Profit extern double OB = 0.7;// Sobrevendido extern double OS = 0.3;// Sobrecomprado extern bool OPENBAR = false;// Operar no preço de abertura de nova barra Aqui está o segredo: eu divido as variáveis em três partes: Dados | Período Ordens Pares //+------------------------------------------------------------------+ //-- período | indicador double dmrk[5]; int signal = -1;//-- 0.compra 1.venda int hold = 0; //-- ordens int ticket = 0; double lot = 0.0; int typ = -1; //-- pares datetime t1 = 0; bool newbar = false; bool entry = false; //+------------------------------------------------------------------+ Na função OnInit(), inicializo o array do indicador DeMarker e verifico o tamanho mínimo de lotes que o corretor exige para operar. //+------------------------------------------------------------------+ //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| //+------------------------------------------------------------------+ void OnInit() &nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;ArrayInitialize(dmrk,0.0); &nbsp;&nbsp;&nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(lt < test_lot) lt = test_lot; &nbsp;&nbsp;} Na função OnTick(), realizamos o cálculo do indicador e determinamos os sinais de compra e venda. //--------------------------------------------------------------------------- &nbsp;&nbsp; signal = -1; //--------------------------------------------------------------------------- //---cálculo &nbsp;&nbsp; for(int i = 0; i < ArraySize(dmrk); i++) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dmrk[i] = iDeMarker(Symbol(), TF, period, i); &nbsp;&nbsp;&nbsp;&nbsp; } //--- &nbsp;&nbsp; if(dmrk[1] > OB) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hold = 1;//definir &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[1] < OS) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hold = -1;//definir &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hold = 0;//resetar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp; if(hold == 1) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[0] < OB && dmrk[1] > OB) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = OP_SELL; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; if(hold == -1) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[0] > OS && dmrk[1] < OS) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = OP_BUY; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; } Para abrir um sinal de compra ou venda... //--------------------------------------------------------------------------- &nbsp;&nbsp; if(signal != -1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newbar == true) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(entry == false)//portão aberto &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry = true;//definir &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(signal == OP_BUY) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ticket = OrderSend(Symbol(), OP_BUY, lt, Ask, (int)((Ask-Bid)/Point), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl > 0?Bid-sl*Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tp > 0?Bid+tp*Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EAName+":sinal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EANumber, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clrBlue); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = -1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //hold =0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//resetar &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(signal == OP_SELL) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ticket = OrderSend(Symbol(), OP_SELL, lt, Bid, (int)((Ask-Bid)/Point), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl > 0?Ask+sl*Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tp > 0?Ask-tp*Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EAName+":sinal= "+IntegerToString(signal)+":hold= "+IntegerToString(hold), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EANumber, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clrRed); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = -1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //hold =0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }//resetar sinal &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } Agora, para o fechamento... &nbsp;&nbsp; if(entry == true) // fechamento &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderSelect(ticket, SELECT_BY_TICKET)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(OrderCloseTime() == 0)//-- ordem ativa &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;todo condição para fechar&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //entry = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderCloseTime() != 0)//--&nbsp;&nbsp;fechar por 1. manual 2. sl/tp 3. ea &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry = false;//resetar entrada &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; } Se você está começando a explorar o mundo dos EAs, essa é uma ótima oportunidade para entender como os indicadores podem ser usados para automatizar suas operações. Espero que tenha gostado da dica e que ela possa te ajudar em suas negociações!

2020.12.17
Exemplo de Expert Advisor: Criando um Arquivo CSV no MetaTrader 4
MetaTrader4
Exemplo de Expert Advisor: Criando um Arquivo CSV no MetaTrader 4

Olá, pessoal! Eu sou o Lucas e achei que poderia contribuir com algo para esta comunidade incrível da qual aprendi tanto, lendo artigos informativos e muito mais. Sou investidor no mercado de Forex e ações, e estou desenvolvendo Expert Advisors para o meu próprio trading. Então, aqui está a minha contribuição, espero que alguns de vocês possam aproveitar este expert! Este é um exemplo de como você pode escrever os dados das ordens em um arquivo CSV, que você pode estudar e usar em suas análises posteriormente. Este expert não deve ser usado para operar (na sua forma atual); ele serve apenas como uma demonstração de como você pode implementar e usar essa função em seu próprio expert. Fique à vontade para continuar construindo e modificando este expert com sua própria estratégia. Este expert irá abrir operações na direção selecionada. As ordens são fechadas virtualmente através das configurações de TP/SL no menu. Se a opção 'WriteCloseData' estiver ativada, um arquivo será criado onde os dados das ordens, como direção, ganho/perda, preço, entre outros, serão armazenados em um arquivo CSV no seu terminal. Ao testar este expert no testador de estratégias, você encontrará este arquivo em OpenDataFolder/tester/CSVexpert/CSVexample. O diretório CSVexpert será criado quando você começar os testes, e o arquivo que armazena todos os dados CSVexample será gerado automaticamente. Quando você implementar essa função em seu próprio expert ou continuar a desenvolver e rodá-lo em contas demo ou reais, você encontrará este arquivo criado em MQL4/Files/CSVexpert/CSVexample. Você pode renomear o diretório e o nome do arquivo como preferir, exceto pela extensão .csv, que deve permanecer inalterada. Lembre-se, mais uma vez, que este é apenas um exemplo de expert do que você pode fazer com isso e como usar essa função, pois não quero que você perca fundos achando que ele pode ser utilizado para trading neste momento!

2020.11.14
Descubra o Potencial do Multiplicador com o Expert Advisor Mission Impossible Power Two
MetaTrader4
Descubra o Potencial do Multiplicador com o Expert Advisor Mission Impossible Power Two

Se você é trader, já deve ter ouvido falar sobre as maravilhas que um multiplicador pode oferecer. Hoje, vamos explorar um pouco mais sobre o Expert Advisor Mission Impossible Power Two, que se destaca no MetaTrader 4. Este Expert Advisor é uma ferramenta poderosa que demonstra as possibilidades do multiplicador, permitindo que você maximize seus ganhos de maneira estratégica. Mas, como qualquer trader sabe, é fundamental entender como utilizá-lo corretamente para evitar armadilhas comuns. O que é um Multiplicador? Um multiplicador é uma característica que permite aumentar a exposição do seu capital em uma operação, potencializando os lucros (ou perdas). Isso significa que, ao usá-lo com sabedoria, é possível transformar pequenas variações de preço em grandes resultados. Por que usar o Mission Impossible Power Two? Estratégias avançadas: O EA oferece estratégias que foram testadas em diferentes cenários de mercado. Fácil de usar: Mesmo que você não seja um expert em programação, a instalação e configuração são simples. Resultados promissores: Muitos traders relataram ganhos significativos ao utilizá-lo em suas operações. Lembre-se: toda ferramenta tem seu tempo e lugar. É importante realizar testes em conta demo antes de operar com dinheiro real, assim você se familiariza com o comportamento do EA e ajusta suas estratégias conforme necessário. Em suma, o Mission Impossible Power Two pode ser uma adição valiosa ao seu arsenal de trading, mas requer cautela e uma boa dose de aprendizado. Boa sorte e boas operações!

2020.11.10
Plano de Saída Master: Estratégias para Gerenciar suas Ordens no MetaTrader 4
MetaTrader4
Plano de Saída Master: Estratégias para Gerenciar suas Ordens no MetaTrader 4

O Plano de Saída Master é uma coleção de estratégias simples que vai ajudar você, trader, a gerenciar de forma eficaz como sair de negociações abertas e ordens pendentes. ATENÇÃO: Este EA não abre trades para você. Ele apenas gerencia suas negociações abertas e ordens pendentes. A seguir, confira a lista de estratégias de saída que você pode usar: Meta de Equity - esta parte do programa ajuda a proteger a sua equity de forma conservadora. Stop-Loss Fixo - você pode definir um stop-loss visível fixo em cada trade que realizar. Stop-Loss Oculto - aqui você pode configurar um stop-loss fixo que não será visível em suas operações. Stop-Loss Dinâmico Fixo - este stop-loss visível se ajusta conforme o preço se movimenta. Isso permite que você negocie como se não tivesse um stop-loss, mesmo sabendo que há um. A explicação completa desse conceito revolucionário está no e-book Estratégias Inexploradas: Profundezas Desconhecidas do Forex. Existem, na verdade, mais de uma dúzia de novas ideias que você pode aplicar a partir desse livro. Stop-Loss Dinâmico Oculto - como o nome indica, esta é uma versão oculta do stop-loss dinâmico. Trailing Stop - este não é um método de trailing stop comum. Ele traz uma ideia revolucionária de ativar o trailing stop quando um certo lucro positivo em percentual é alcançado, garantindo também que você tenha pips positivos a ganhar. Trailing para Ordem Pendente - esta função ajusta as ordens de stop para maximizar posições vantajosas.

2020.11.07
Estratégia Rijfie Pyramid 1.12 para MetaTrader 4: Maximize Seus Lucros
MetaTrader4
Estratégia Rijfie Pyramid 1.12 para MetaTrader 4: Maximize Seus Lucros

Olá, pessoal! Hoje quero compartilhar com vocês a estratégia que estou utilizando, chamada Rijfie Pyramid versão 1.12, que tem me ajudado bastante nas minhas operações. Vamos lá? Meu plano de ação: 1. Pesquisar ações dos EUA que estão abaixo de 20 euros/dólares. 2. Quando o preço subir acima do nível baixo do estocástico, comprarei o primeiro lote de 0,01. 3. Se o preço cair, comprarei mais um lote de 0,01. 4. Quando o preço subir acima do preço de compra mais o spread, o trailing stop será ativado. O nível baixo para compra acontece quando o estocástico cruza o nível 10. O preço máximo é o limite que não permite compras acima desse valor (máx = preço + spread). Já o preço mínimo evita compras abaixo do valor mais baixo que você definiu. Não esqueça de alterar o número mágico para cada novo gráfico que você abrir. O timeframe é o gráfico que você escolher, e o maperios refere-se à média móvel que está utilizando. O steplevel é a porcentagem em que uma ordem de compra será colocada. Se você definir o lucro como 0, isso significa que todas as ordens abertas em lucro serão fechadas ao final do dia, caso a opção fechar tudo esteja ativada (true). Você também pode definir a hora e o minuto para fechar as ordens. Por exemplo, se fechar tudo estiver como verdadeiro, lucro for 10, hora for 20:00 e minuto for 55, todas as ordens abertas com lucro acima de 10 serão fechadas entre 20:55 e 21:00. Dicas importantes: A melhor estratégia é buscar ações com swap baixo, como Zynga, Nokia e Vale. Quando você definir o preço mínimo como 1, será possível calcular a possível perda máxima. Por exemplo, se o seu maxloss for de 1% e você estiver operando ações de 5 euros, sua perda máxima será de cerca de 500 euros. Já se você estiver lidando com ações de 15 euros, a perda máxima pode chegar a 1500 euros. Lembre-se, você só corre esse risco se a empresa falir. Se você quiser fechar todas as operações em perda, terá que arcar com esse prejuízo. Além disso, você pode perder uma parte se seu corretor não apoiar mais a ação. Esta é a versão mais recente que estou usando: Rijfie Pyramid versão 1.12.mq4 Uma observação: ao usar este Expert Advisor, considere fechar todas as ordens abertas acima de 0 pouco antes do horário de fechamento. Isso é importante para evitar gaps na abertura do dia seguinte. Com a versão 1.10, é possível fechar as operações antes do horário final, se você ativar a opção de lucro e definir fechar tudo como verdadeiro, além de ajustar a hora e o minuto. A nova versão 1.12 permite que você altere a porcentagem do steplevel simplesmente definindo steplevel1. Colocá-lo em 1 significa 1%, enquanto 5 significa 5%. No fim das contas, você verá algumas perdas, mas isso é normal devido ao período de testes.

2020.10.26
DreamBot: O Robô de Trading Que Funciona no MetaTrader 4
MetaTrader4
DreamBot: O Robô de Trading Que Funciona no MetaTrader 4

Introdução Quando falamos sobre robôs de trading para o MetaTrader 4, é importante deixar claro: não existe um "santo graal" no mercado. O DreamBot é uma ferramenta que promete auxiliar os traders em suas operações, mas não podemos esperar que ele faça milagres. Com isso em mente, vamos explorar o que realmente podemos esperar do DreamBot e como ele pode ser útil no nosso dia a dia como traders. O Que é o DreamBot? O DreamBot é um robô de trading projetado para funcionar no MetaTrader 4, uma das plataformas mais populares entre os traders. Ele utiliza algoritmos para analisar dados de mercado e executar operações automaticamente, visando maximizar os lucros e minimizar os riscos. Como Funciona? O funcionamento do DreamBot é baseado em análises técnicas e na interpretação de sinais de mercado. Aqui estão algumas características que você deve conhecer: Estratégias Predefinidas: O robô vem com várias estratégias que podem ser ajustadas de acordo com seu perfil de risco. Operações Automatizadas: O DreamBot realiza operações automaticamente, o que pode ser uma grande vantagem para quem não tem tempo de monitorar o mercado constantemente. Backtesting: Você pode testar as estratégias em dados históricos, permitindo que você veja como o robô teria se comportado no passado. Considerações Finais Embora o DreamBot possa ser uma ferramenta valiosa, é fundamental lembrar que nenhuma estratégia é infalível. O mercado é volátil e pode ser imprevisível. Por isso, é sempre bom manter uma gestão de risco adequada e não investir mais do que você pode perder. Se você está pensando em experimentar o DreamBot, faça isso com cautela e sempre busque se informar e aprender mais sobre trading.

2020.10.22
MarketsMaster EA: O Expert Advisor Ideal para MetaTrader 4
MetaTrader4
MarketsMaster EA: O Expert Advisor Ideal para MetaTrader 4

O MarketsMaster EA é um Expert Advisor desenvolvido em MQL4, que utiliza 4 sinais baseados em 6 indicadores. Ele pode operar em diversos mercados, como Forex, Índices e Metais, bastando ajustar os parâmetros corretos para obter os melhores resultados. O EA está disponível em espanhol (ES) e inglês (EN), mas é totalmente adaptável para o nosso mercado brasileiro. No meu modo de operar, percebi que ele se sai melhor em Timeframes de M15 a H1, mas qualquer Timeframe pode ser rentável se a sua estratégia estiver alinhada com as necessidades do ativo. Você pode abrir ordens utilizando lotes fixos ou optar por um lote baseado em uma porcentagem do risco da sua conta. O MarketsMaster funciona com uma variedade de indicadores, incluindo Volumes, PSAR, Estocástico, Bull e Bear Power, ATR e MFI. Os lucros são gerenciados através de Tailing e Tailing Step para cada ordem. Caso mais ordens sejam abertas, o lucro pode ser retirado em dinheiro ou por uma porcentagem sobre o saldo, assim como as perdas. Lembre-se: não ativar a perda em porcentagem é o mesmo que dar a ele uma taxa de 100%. Antes de fazer testes retroativos, recomendo que você anexe os indicadores no seu gráfico primeiro. Observe os volumes mínimos para identificar a tendência e avalie as melhores combinações entre os indicadores e Timeframes para realizar backtests com menos parâmetros. Além disso, avalie o movimento médio por operação para definir um valor para o Tailing Profit. IMPORTANTE: Não se esqueça de adicionar URLs em Ferramentas / Opções / Expert Advisors / ative: Permitir WebRequest para as URLs listadas e adicione ambas as URLs para notícias. Lembre-se, as notícias não podem ser obtidas para Índices e Metais, então NUNCA ative essa opção para esses ativos, pois pode parar a operação dos outros EAs em outros gráficos. Se alguém quiser traduzir para MQL5, seria ótimo! Eu ainda não conheço MQL5. Se você souber, por favor, me envie uma cópia 😉.

2020.10.04
VR Watch List e Linker Lite: A Ferramenta Ideal para MetaTrader 4
MetaTrader4
VR Watch List e Linker Lite: A Ferramenta Ideal para MetaTrader 4

Se você é trader e utiliza o MetaTrader 4, já deve ter se deparado com a necessidade de alterar rapidamente os instrumentos financeiros nos gráficos. É para isso que entra em cena o VR Watch List e Linker Lite, uma ferramenta leve e de código aberto que facilita muito seu trabalho. Com o Expert Advisor, você pode simplesmente arrastar e soltar o instrumento financeiro da janela Market Watch para o gráfico onde o advisor está instalado. Isso significa que você pode visualizar rapidamente qualquer instrumento financeiro em todos os gráficos abertos, sem precisar mudar constantemente de template ou perfil. O melhor de tudo é que, ao trocar o instrumento, apenas o ativo muda nos gráficos – o período do gráfico, os indicadores e suas configurações permanecem intactos. Dica: É recomendável instalar o advisor em cada janela. Assim, não importa para qual janela você arraste o instrumento financeiro, a funcionalidade continuará intacta. Atenção: Ao trocar o instrumento financeiro nas janelas, todos os indicadores e advisors serão reinicializados. Por exemplo, se o advisor estava operando no EURUSD, ao mudar para outro instrumento, ele começará a operar automaticamente nesse novo ativo. O código deste programa é extremamente simples, o que pode ser bastante útil para programadores iniciantes. Além disso, vale ressaltar que ele funciona da mesma maneira tanto no MetaTrader 4 quanto no MetaTrader 5.

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