Olá, eu gostaria de pedir seu conselho. Você pode aconselhar como mudar meu Expert Advisor para que ele não seja contra a tendência, mas, pelo contrário, siga a tendência? Abri novas posições, com tendência crescente de lote por tendência.
Olá, eu gostaria de pedir seu conselho. Você pode aconselhar como mudar meu Expert Advisor para que ele não seja contra a tendência, mas, pelo contrário, siga a tendência? Abri novas posições, com tendência crescente de lote por tendência.
Boa tarde. Eu negocio com ordens pendentes (vendetops, bystops). Quero pedir para escrever uma parte do código onde a condição é cumprida - todas as ordens pendentes que estão a uma distância (x) do preço atual são deletadas. Ou seja, um "pequeno conjunto" de ordens pendentes "seguirá" constantemente o preço atual.
É claro que esta idéia pode ser implementada de alguma outra forma, por exemplo, para controlar a quantidade de paradas de Venda e Compra e ao mesmo tempo arrastá-las para que as mais longas se aproximem do preço atual.
Parece-me ser o mesmo, mas gosto da primeira variante. Para o primeiro caso, a distância x deve ser variável na condição.
Entendo que isto não é muito código. Tentei entender o que e como deve ser descrito, já procurei e estudei EAs semelhantes, mas não tenho cérebro suficiente para isso.
Reli sua descrição novamente e percebi que provavelmente não entendo exatamente o que precisa ser feito. Parece que você precisa do seguinte:
Um script que você executará manualmente no gráfico quando necessário, ou uma função que você pode inserir em seu código (ou é um EA que roda o tempo todo e remove ordens desnecessárias?).
Ele tem um parâmetro X - o número de pips (um número inteiro)
Ele eliminará os pedidos pendentes (apenas BuyStop e SellStop?) no símbolo do gráfico ao qual é aplicado (ou em todos os símbolos? Neste caso, o X deve ser definido para cada símbolo?)
Uma ordem pendente para o símbolo necessário do tipo exigido será excluída se a distância entre seu preço aberto e o preço atual for maior que X
Reli sua descrição novamente e percebi que provavelmente não entendo exatamente o que precisa ser feito. Parece que você precisa do seguinte:
Um script que você executará manualmente no gráfico quando necessário, ou uma função que você pode inserir em seu código (ou é um EA que roda o tempo todo e remove ordens desnecessárias?).
Ele tem um parâmetro X - o número de pips (um número inteiro)
Ele eliminará os pedidos pendentes (apenas BuyStop e SellStop?) no símbolo do gráfico ao qual eles são aplicados (ou em todos os símbolos? Neste caso, o X deve ser definido para cada símbolo?)
Uma ordem pendente para o símbolo necessário do tipo exigido será excluída se a distância entre seu preço aberto e o preço atual for maior que X
Não é sua tarefa fazer pedidos
Corrija-me se eu estiver errado.
Se eu vejo um pedido diferente, então ele precisa ser colocado novamente, exatamente da mesma forma que eu vejo um pedido diferente com uma linha de lucro/perda diferente. Eu mesmo o farei, não para distrair pessoas inteligentes com meus disparates. Para melhor compreensão, aqui está o código de "Expert Advisor" no qual eu quero inserir a função de exclusão. Em minha EA, marquei o parâmetro X como duplo v_util externo = 50; // distância do preço atual para uma ordem pendente a ser apagada
//+------------------------------------------------------------------+ //|Ordens pendentes.mq4 | //| Copyright 2022, MetaQuotes Software Corp. | //| https://wwww.mql5.com | //+ + #property copyright "Copyright 2022, MetaQuotes Software Corp." #link da propriedade " " #versão da propriedade "1.00" #propriedade estrita // Parâmetros externos da EA -------+ duplo delitel_Equity_lots externos = 1400000; // Divididor para determinar o lote de trabalho. duplo schag externo = 2; // etapa de abertura de pedido pendente do preço atual duplo v_util externo = 50;// distância do preço atual até as ordens pendentes eliminadas stopLoss int externo = 10000; extern int TakeProfit = 5; extern int MagicBuy = 1111111; // MagicNumber for BUY orders extern int MagicSell = 2222222; // MagicNumber for SELL orders // //+------------------------------------------------------------------+ void OnTick()
{double Lots = NormalizeDouble(AccountBalance()/delitel_Equity_lots, 2); // Volume da posição.
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+schag*_Point,_Digits),0,NormalizeDouble(Ask-(StopLoss-schag)*_Point,_Digits), NormalizeDouble(Ask+(TakeProfit+schag)*_Point,_Digits),MagicBuy); // Open BuyStop Imprimir (GetLastError()); // Mensagem de erro OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-schag*_Point,_Digits),0,NormalizeDouble(Bid+(StopLoss-schag)*_Point,_Digits), NormalizeDouble(Bid-(TakeProfit+schag)*_Point,_Digits),MagicSell;)// Open SellStop Print (GetLastError()); // Mensagem de erro } //+ +
Tudo é simples, sem complexidades. Entendo que você tem que pagar por todos os tipos de artifícios, ninguém vai inventar super estratégias e super códigos de graça. Quero testar o trabalho nesta direção por enquanto e pedir para fazer uma simples remoção, nada mais...a única coisa é, se não for muito longo e não muito difícil, você poderia acrescentar um parâmetro - a distância entre a rolha, então seria perfeito. Mas entendo que todo este trabalho e tempo...então pelo menos a remoção. Obrigado!
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
Ilan 2.0
Ilan 2.0
Olá, é possível.
Boa tarde. Eu negocio com ordens pendentes (vendetops, bystops). Quero pedir para escrever uma parte do código onde a condição é cumprida - todas as ordens pendentes que estão a uma distância (x) do preço atual são deletadas. Ou seja, um "pequeno conjunto" de ordens pendentes "seguirá" constantemente o preço atual.
É claro que esta idéia pode ser implementada de alguma outra forma, por exemplo, para controlar a quantidade de paradas de Venda e Compra e ao mesmo tempo arrastá-las para que as mais longas se aproximem do preço atual.
Parece-me ser o mesmo, mas gosto da primeira variante. Para o primeiro caso, a distância x deve ser variável na condição.
Entendo que isto não é muito código. Tentei entender o que e como deve ser descrito, já procurei e estudei EAs semelhantes, mas não tenho cérebro suficiente para isso.
Obrigado.
Olá,@Andrey Kuharev.
Você está procurando um MT5 ou MT4?
Olá,@Andrey Kuharev.
Você está procurando um MT5 ou MT4?
Reli sua descrição novamente e percebi que provavelmente não entendo exatamente o que precisa ser feito. Parece que você precisa do seguinte:
Corrija-me se eu estiver errado.
Reli sua descrição novamente e percebi que provavelmente não entendo exatamente o que precisa ser feito. Parece que você precisa do seguinte:
Corrija-me se eu estiver errado.
Se eu vejo um pedido diferente, então ele precisa ser colocado novamente, exatamente da mesma forma que eu vejo um pedido diferente com uma linha de lucro/perda diferente. Eu mesmo o farei, não para distrair pessoas inteligentes com meus disparates. Para melhor compreensão, aqui está o código de "Expert Advisor" no qual eu quero inserir a função de exclusão. Em minha EA, marquei o parâmetro X como duplo v_util externo = 50; // distância do preço atual para uma ordem pendente a ser apagada
//+------------------------------------------------------------------+
//|Ordens pendentes.mq4 |
//| Copyright 2022, MetaQuotes Software Corp. |
//| https://wwww.mql5.com |
//+
+ #property copyright "Copyright 2022, MetaQuotes Software Corp."
#link da propriedade " "
#versão da propriedade "1.00"
#propriedade estrita
// Parâmetros externos da EA -------+
duplo delitel_Equity_lots externos = 1400000; // Divididor para determinar o lote de trabalho.
duplo schag externo = 2; // etapa de abertura de pedido pendente do preço atual
duplo v_util externo = 50;// distância do preço atual até as ordens pendentes eliminadas
stopLoss int externo = 10000;
extern int TakeProfit = 5;
extern int MagicBuy = 1111111; // MagicNumber for BUY orders
extern int MagicSell = 2222222; // MagicNumber for SELL orders
// //+------------------------------------------------------------------+
void OnTick()
{double Lots = NormalizeDouble(AccountBalance()/delitel_Equity_lots, 2); // Volume da posição.
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+schag*_Point,_Digits),0,NormalizeDouble(Ask-(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Ask+(TakeProfit+schag)*_Point,_Digits),MagicBuy); // Open BuyStop
Imprimir (GetLastError()); // Mensagem de erro
OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-schag*_Point,_Digits),0,NormalizeDouble(Bid+(StopLoss-schag)*_Point,_Digits),
NormalizeDouble(Bid-(TakeProfit+schag)*_Point,_Digits),MagicSell;)// Open SellStop
Print (GetLastError()); // Mensagem de erro
}
//+ +
Tudo é simples, sem complexidades. Entendo que você tem que pagar por todos os tipos de artifícios, ninguém vai inventar super estratégias e super códigos de graça. Quero testar o trabalho nesta direção por enquanto e pedir para fazer uma simples remoção, nada mais...a única coisa é, se não for muito longo e não muito difícil, você poderia acrescentar um parâmetro - a distância entre a rolha, então seria perfeito. Mas entendo que todo este trabalho e tempo...então pelo menos a remoção. Obrigado!
Isto é o que temos. Espero que isto ajude a testar a operação.
Por favor, informe, e mais 10 aqui:
duplo minOpenPriceBuy = 1e+10;
duplo maxOpenPriceBuy = 0;
duplo minOpenPriceSell = 1e+10;
duplo maxOpenPriceSell = 0;
Este é o dez que delta int externo = 10;
Não, é uma forma diferente de escrever o número 10000000000, então você não precisa escrevê-lo dessa forma
...