Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
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
Visualizações:
30
Avaliação:
(2)
Publicado:
Atualizado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance


O Modify_Orders.mqh destina-se ao gerenciamento de posições e ordens no MetaTrader 5

Finalidade

Modify_Orders.mqh fornece duas funções poderosas para gerenciar posições abertas e ordens pendentes em Expert Advisors e indicadores na plataforma MetaTrader 5. Ele foi projetado para automatizar as operações de rotina para modificar os níveis de Stop Loss e Take Profit e os preços das ordens.

Principais recursos:

  • Modificação dos níveis de Stop Loss e Take Profit para posições abertas

  • Modificação dos preços dasordens pendentes

  • Filtragem flexível por tipos de posição, rentabilidade e símbolos

  • Suporte para diferentes modos de cálculo de valores (em pips ou preços absolutos).

Estrutura

Função Modify_Position()

Projetada para modificar os níveis de Stop Loss e Take Profit das posições abertas.

void Modify_Position(
   string tp_and_sl,      // "SL" ou "TP" - o que estamos mudando
   string price_and_value, // "Value" ou "Price" - tipo de valor
   string type_position,   // Filtrar por tipo de posição
   double price_tp_and_sl, // Valor a ser definido
   string symb,           // Símbolo do instrumento de negociação
   long   magicNumber     // Especialista em números mágicos.
);

Parâmetros de filtragem de posição:


Parâmetro type_position Descrição
"All" (todos) Todas as posições
"All Profit" (Todos os lucros) Somente posições lucrativas
"Todas as perdas" Somente posições perdedoras
"Buy" (Comprar) Somente posições de compra
"Buy Profit" (Lucro da compra) Somente posições de compra lucrativas
"Buy Loss Somente posições de compra perdedoras
"Sell" (Venda) Somente posições de venda
"Sell Profit" (Lucro da venda) Somente posições de venda lucrativas
"Sell Loss" (Perda de venda) Somente posições de venda perdedoras


Exemplos de uso:

// Definir SL para 1000 pontos para todas as posições
Modify_Position("SL", "Value", "All", 1000, _Symbol, 0);

// Defina o TP para 1,2345 para posições de compra lucrativas
Modify_Position("TP", "Price", "Buy Profit", 1.2345, _Symbol, 12345);

// Definir SL para 500 pontos para posições de venda não lucrativas
Modify_Position("SL", "Value", "Sell Loss", 500, "EURUSD", 98765);

Função Modify_Order()

Desenvolvida para modificar ordens pendentes (ordens Stop e Limit).

void Modify_Order(
   string tp_sl_price,     // "Preço", "SL" ou "TP".
   string type_order,      // Tipo de pedido para filtragem
   double price_tp_sl_price, // Um novo significado.
   string symb,            // Símbolo do instrumento de negociação
   long   magicNumber      // Especialista em números mágicos.
);


Tipos de ordem suportados:

  • "Buy Stop" - ordem pendente Buy Stop

  • "Buy Limit" - ordem Buy Limit pendente.

  • "Sell Stop" - ordem pendente Sell Stop.

  • "Sell Limit" - ordem pendente Sell Limit.


Exemplos de uso:

// Alterar o preço da ordem Buy Stop
Modify_Order("Price", "Buy Stop", 1.2345, _Symbol, 0);

// Definir stop loss para ordem Sell Limit
Modify_Order("SL", "Sell Limit", 1.2350, "GBPUSD", 12345);

// Alterar o Take Profit para a ordem Buy Limit
Modify_Order("TP", "Buy Limit", 1.2300, "EURUSD", 98765);

Princípio de funcionamento

Algoritmo Modify_Position:

  1. Pesquisa de todas as posições abertas em ordem inversa

  2. Filtragem de posições por símbolo e número mágico

  3. Verificação de condições adicionais ( tipo de posição, lucratividade)

  4. Cálculo de novos valores de SL/TP :

    • Para o modo "Value" : Preço ± (Valor × Ponto)

    • Para o modo "Price" : atribuição direta de valor

  5. Envio do comando de modificação via OrderSend()


Algoritmo Modify_Order:

  1. Enumera todas as ordens pendentes

  2. Filtragem por símbolo, Magic Number e tipo de ordem

  3. Modificação do parâmetro especificado ( preço, SL ou TP)

  4. Salvamento dos parâmetros inalterados

  5. Envio do comando de modificação


Recursos de implementação

Segurança e confiabilidade:

  1. Dupla verificação dos tipos de ordem - por parâmetro de cadeia de caracteres e tipo real do sistema

  2. Filtragem complexa - garante que somente as posições/ordens de destino sejam afetadas

  3. Preservação de parâmetros inalterados - quando o SL é alterado, o TP é preservado e vice-versa


Cálculos matemáticos:

Paraposições de compra:

  • Stop Loss: Preço atual - (Valor × Ponto)

  • Take Profit: Preço atual + (Valor × Ponto)

Paraposições de venda:

  • Stop Loss: preço atual + (valor × ponto)

  • Take Profit: Preço atual - (Valor × Ponto)


Recomendações de uso

Para especialistas em negociação:

#include <Modify_Order.mqh>

// Na função OnTick() ou por condição:
if(Условие_для_трейлинга)
{
    // Puxar o SL para o preço quando estiver se movendo na direção desejada
    Modify_Position("SL", "Value", "All Profit", 500, _Symbol, ExpertMagic);
}

Para scripts manuais:

// Script para SL rápido em todas as posições
void OnStart()
{
    Modify_Position("SL", "Value", "All", 1000, _Symbol, 0);
}

Parâmetros ideais:

  • Período de tempo: qualquer (as funções são independentes do período de tempo)

  • Instrumentos: quaisquer pares de moedas, metais, índices.

  • Número mágico: é recomendável usar valores exclusivos para cada Expert Advisor.

Vantagens da biblioteca

  1. Versatilidade - funciona com qualquer instrumento de negociação

  2. Flexibilidade - 18 modos diferentes de filtragem de posição

  3. Facilidade de uso - interface intuitiva

  4. Confiabilidade - verificações abrangentes antes da modificação

  5. Eficiência - gasto mínimo de recursos de computação

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

nPosições de lucros e perdas nPosições de lucros e perdas

Calculadora de lucros/perdas de posições (ordens abertas)

nFechar ordens nFechar ordens

Função para fechar posições e excluir ordens

Sideways Martingale Sideways Martingale

O detector de tendências Martingale usa a IA onnx

VR Breakdown level - Estratégia de negociação baseada na ruptura do High ou Low anterior VR Breakdown level - Estratégia de negociação baseada na ruptura do High ou Low anterior

Estratégia de negociação baseada na simples ruptura dos níveis anteriores de High ou Low