Escreverei um conselheiro sem custos - página 166

 
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.

Ilan 2.0

 
kammann659 #:
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.

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?

 
Yuriy Bykov #:

Olá,@Andrey Kuharev.

Você está procurando um MT5 ou MT4?

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:

  • 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
  • Não é sua tarefa fazer pedidos

Corrija-me se eu estiver errado.

 
Yuriy Bykov #:

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!

Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2022.04.13
  • www.mql5.com
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
 
Isto é o que saiu. Espero que isto ajude a testar a operação.
Arquivos anexados:
Pending.mq4  10 kb
 
Yuriy Bykov #:
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

double minOpenPriceBuy = 10000000000;

...

Razão: