Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 30
- Avaliação:
- Publicado:
- Atualizado:
-
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:
-
Pesquisa de todas as posições abertas em ordem inversa
-
Filtragem de posições por símbolo e número mágico
-
Verificação de condições adicionais ( tipo de posição, lucratividade)
-
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
-
-
Envio do comando de modificação via OrderSend()
Algoritmo Modify_Order:
-
Enumera todas as ordens pendentes
-
Filtragem por símbolo, Magic Number e tipo de ordem
-
Modificação do parâmetro especificado ( preço, SL ou TP)
-
Salvamento dos parâmetros inalterados
-
Envio do comando de modificação
Recursos de implementação
Segurança e confiabilidade:
-
Dupla verificação dos tipos de ordem - por parâmetro de cadeia de caracteres e tipo real do sistema
-
Filtragem complexa - garante que somente as posições/ordens de destino sejam afetadas
-
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
-
Versatilidade - funciona com qualquer instrumento de negociação
-
Flexibilidade - 18 modos diferentes de filtragem de posição
-
Facilidade de uso - interface intuitiva
-
Confiabilidade - verificações abrangentes antes da modificação
-
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
Calculadora de lucros/perdas de posições (ordens abertas)
nFechar ordens
Função para fechar posições e excluir ordens
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
Estratégia de negociação baseada na simples ruptura dos níveis anteriores de High ou Low
