Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Experts

Estratégia de negociação Cara ou Coroa (Heads or Tails) - expert para MetaTrader 4

Visualizações:
23
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

A estratégia de negociação "Cara ou Coroa" pertence à categoria de abordagens de negociação de curto prazo de alto risco, utilizadas principalmente no mercado de ações e no mercado Forex. Seu nome deve-se à aleatoriedade na tomada de decisões, semelhante ao lançamento de uma moeda ("cara" — comprar o ativo, "coroa" — vender). Esta estratégia baseia-se exclusivamente em decisões intuitivas ou sinais aleatórios e ignora fatores fundamentais de análise de mercado.

Como funciona a estratégia?

A estratégia é estruturada da seguinte forma:

  1. Seleção do instrumento: o trader escolhe um instrumento financeiro (ação, moeda, commodity).
  2. Tomada de decisão: a decisão de comprar ou vender é tomada aleatoriamente, por exemplo, lançando uma moeda ou usando outro método para escolher entre duas ações possíveis.
  3. Encerramento da negociação: a negociação é fechada automaticamente após um tempo predefinido ou ao atingir um nível específico de lucro ou perda.

Esta estratégia não requer uma compreensão profunda dos mecanismos e análises de mercado, mas também não pressupõe uma abordagem séria à gestão de riscos.

Desvantagens da estratégia:

  1. Alto nível de risco:
    • Ao confiar apenas na sorte, a probabilidade de perdas aumenta significativamente. A estratégia ignora quaisquer indicadores objetivos e recomendações, aumentando as chances de perda de capital.
  2. Falta de controle de risco:
    • Como a compra ou venda ocorre de forma totalmente aleatória, não há possibilidade de uma gestão de capital racional, avaliação de riscos e distribuição de ativos.
  3. Impossibilidade de sucesso a longo prazo:
    • Mesmo que negociações individuais sejam lucrativas devido à sorte, a longo prazo, tal estratégia provavelmente levará a perdas significativas.
  4. Efetividade de curta duração:
    • Resultados positivos só são possíveis em condições favoráveis de mercado e com uma grande quantidade de negociações bem-sucedidas de pequeno porte, o que é extremamente raro na prática.

Aplicação da estratégia:

A estratégia é mais adequada para traders iniciantes que desejam familiarizar-se com os princípios de funcionamento das plataformas de negociação e experimentar a negociação sem conhecimentos profundos de análise técnica. No entanto, profissionais usam essa estratégia muito raramente, preferindo abordagens cientificamente fundamentadas que levam em consideração o comportamento do preço, o volume de negociação e os indicadores fundamentais das empresas.

Para investidores experientes, esta estratégia representa mais um método experimental de testar hipóteses do que uma forma estável de ganhar dinheiro.

Assim, embora a estratégia seja simples e acessível a qualquer iniciante, ela apresenta riscos significativos e praticamente não tem chance de gerar renda sustentável a longo prazo.


Vamos examinar o bloco principal do sinal de abertura aleatória de posições:

if((b + s) == 0) // Se não houver posições ativas

Aqui, verifica-se a condição de ausência de posições abertas. A variável b denota o número de posições longas ("buy"), a variável s — posições curtas ("sell"). Se a soma de ambas for zero (b + s = 0), significa que não há nenhuma posição aberta.

if(::MathRand() % 2 == 0) // Seleção aleatória da direção de abertura da posição

Dentro do bloco de condição acionado anteriormente, um número aleatório é verificado. A função ::MathRand() gera um número pseudoaleatório de 0 a 32767 inclusive. Em seguida, esse número é dividido por módulo por 2 (% 2) — se o resto for 0, o próximo bloco é executado.

 // Enviar ordem de compra com os parâmetros especificados
         ticket = OrderSend(Symbol(),OP_BUY,iStartLots,Ask,iSlippage,
                  Ask - iStopLoss * _Point,       // Preço de stop-loss (valor atual de Ask menos a distância SL)
                  Ask + iTakeProfit * _Point,     // Preço de take-profit (valor atual de Ask mais a distância até TP)
                  "VR Heads or Tails",            // Comentário da ordem
                  iMagicNumber,0,clrBlue);        // MagicNumber, expiração, cor azul da seta
                  
         // Verificar se a ordem foi colocada com sucesso
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Mensagem de erro
         else
            Print("The OrderSend function has been completed successfully");  // Mensagem de sucesso
return;

Se o número aleatório for par (resto da divisão por 2 igual a 0), o robô de negociação abre uma posição longa (compra) com volume iLots. Após a abertura bem-sucedida da posição, a execução da função é interrompida pelo operador return.

 // Enviar ordem de venda com os parâmetros especificados
         ticket = OrderSend(Symbol(),OP_SELL,iStartLots,Bid,iSlippage,
                  Bid + iStopLoss * _Point,       // Preço de stop-loss (valor atual de Bid mais a distância SL)
                  Bid - iTakeProfit * _Point,     // Preço de take-profit (valor atual de Bid menos a distância até TP)
                  "VR Heads or Tails",            // Comentário da ordem
                  iMagicNumber,0,clrRed);         // MagicNumber, expiração, cor vermelha da seta
                  
         // Verificar se a ordem foi colocada com sucesso
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Mensagem de erro
         else
            Print("The OrderSend function has been completed successfully");  // Mensagem de sucesso
return;

Se o número aleatório for ímpar (resto da divisão por 2 diferente de zero), uma posição curta (venda) com volume iLots é aberta, e a execução adicional da função também é interrompida.

Lógica final do fragmento:

  • Verifica-se a presença de posições abertas do trader.
  • Se não houver posições abertas, uma direção de negociação aleatória é escolhida: compra (longa) ou venda (curta).
  • A negociação aberta interrompe automaticamente o funcionamento posterior da função.

Assim, este código é um exemplo simples de um algoritmo que toma a decisão de abrir uma posição no mercado de forma aleatória.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/68251

RatioZigZag RatioZigZag

A modification of the ZigZag indicator, where the reversal moment is determined by a specified coefficient.

MT4 Telegram Trade Notifier (Bot API) — Deal Alerts MT4 Telegram Trade Notifier (Bot API) — Deal Alerts

Utility MT4 EA that sends BUY/SELL deal notifications to Telegram via Bot API (WebRequest)

VR Locker Lite - Estratégia de negociação baseada em um bloqueio positivo VR Locker Lite - Estratégia de negociação baseada em um bloqueio positivo

Funciona através de um bloqueio positivo; o robô de negociação cria um bloqueio positivo, e o trader decide o que fazer com ele.

Ergodic Oscillator. Ergodic Oscillator.

Ergodic Oscillator.