Filtrar stoploss por comentário

 

Olá pessoal!

Tenho um EA que opera 3 estratégias ao mesmo tempo que não se sobrepõem. Quando cada estratégia entra na operação um comentário é adicionado e assim, quando eu gero um relatório das operações eu sei quantas operações cada estratégia realizou(entrada). Gostaria de saber se é possível adicionar um comentário diferente para cada estratégia quando o stoploss é acionado para que eu consiga diferenciar qual estratégia foi stopada?

Obrigado pela atenção!

 
Marcel Cardoso:

Olá pessoal!

Tenho um EA que opera 3 estratégias ao mesmo tempo que não se sobrepõem. Quando cada estratégia entra na operação um comentário é adicionado e assim, quando eu gero um relatório das operações eu sei quantas operações cada estratégia realizou(entrada). Gostaria de saber se é possível adicionar um comentário diferente para cada estratégia quando o stoploss é acionado para que eu consiga diferenciar qual estratégia foi stopada?

Obrigado pela atenção!

Pelo stop loss da posição desconheço, mas voce pode remover o stop loss automatico e colocar uma ordem stop com o comentário que quiser. A unica coisa é que voce vai ter que gerenciar essa ordem separada da posição.

 
Ricardo Rodrigues Lucca #:

Pelo stop loss da posição desconheço, mas voce pode remover o stop loss automatico e colocar uma ordem stop com o comentário que quiser. A unica coisa é que voce vai ter que gerenciar essa ordem separada da posição.

Estou tentando fazer isso, mas não está executando corretamente. Segue o código conforme estou inserindo.

void Compra_k(){
   trade.SetExpertMagicNumber(MN_kamikaze);
   double preco_entrada = simbolo.Ask();
   trade.Buy(num_ctt_kamikaze,_Symbol,preco_entrada,0,0,"kamikaze-wdo");   
   double preco_executado = PositionGetDouble(POSITION_PRICE_OPEN);
   double takeprofit = NormalizeDouble(preco_executado + TP_k, 1);
   double stoploss = NormalizeDouble(preco_executado - SL_k, 1);
   trade.SellLimit(num_ctt_kamikaze, stoploss,_Symbol,0,0,ORDER_TIME_DAY,0,"sl-kamikaze-wdo-limit");
   trade.SellLimit(num_ctt_kamikaze, takeprofit,_Symbol,0,0,ORDER_TIME_DAY,0,"tp-kamikaze-wdo-limit");
}
 
Marcel Cardoso #:

Estou tentando fazer isso, mas não está executando corretamente. Segue o código conforme estou inserindo.

Primeiro de tudo aprenda sobre as ordens sobre quando usar Buy, quando usar BuyStop e quando usar BuyLimit. Pra ti ajudar a perceber o erro feito na parte do desconhecimento das ordens recomendo a leitura do manual do android que tem até figuras explicando como elas funcionam: https://www.metatrader5.com/pt/mobile-trading/android/help/trade/general_concept/order_types

Segundo eu não faria isso dessa forma, se voce mandou comprar e imediatamente pega o valor da posição é quase certo que mesmo nas melhores corretoras isso vai dar pau em algum momento se estiver usando de maneira assíncrona. Eu iria por uma abordagem que chamo mais de swing que seria criar a posição com stoploss e takeprofit. Dai quando ela for completamente executada, remover o stop loss e criar a ordem de saída.

Tipos de Ordens - Princípios Gerais - Negociação - MetaTrader 5 para Android - Ajuda para o MetaTrader 5 Android
  • www.metatrader5.com
A plataforma móvel MetaTrader 5 permite aos usuários preparar e emitir solicitações à corretora para executar...
 
Ricardo Rodrigues Lucca #:

Primeiro de tudo aprenda sobre as ordens sobre quando usar Buy, quando usar BuyStop e quando usar BuyLimit. Pra ti ajudar a perceber o erro feito na parte do desconhecimento das ordens recomendo a leitura do manual do android que tem até figuras explicando como elas funcionam: https://www.metatrader5.com/pt/mobile-trading/android/help/trade/general_concept/order_types

Segundo eu não faria isso dessa forma, se voce mandou comprar e imediatamente pega o valor da posição é quase certo que mesmo nas melhores corretoras isso vai dar pau em algum momento se estiver usando de maneira assíncrona. Eu iria por uma abordagem que chamo mais de swing que seria criar a posição com stoploss e takeprofit. Dai quando ela for completamente executada, remover o stop loss e criar a ordem de saída.

Posso estar falando besteira, se estiver me desculpe, mas não faz sentido pra mim analisar o tipo de ordem que estou colocando já que a minha estratégia utiliza o Buy/Sell para uma execução a mercado e as ordens limit estão sendo colocadas para o encerramento das posições, ou seja, saída à mercado me prejudica eventualmente e ser ordem limit ou stop é irrelevante no meu caso pois não me interessa se o mercado vai continuar ou não após a execução. No caso eu utilizo a limit para que seja executada o mais próximo possível do nível que eu estabeleci, e pela definição do link que vc mandou me parece que uma ordem stop teria o mesmo resultado.

Mas como já disse, da maneira como eu coloquei no comentário anterior não está funcionando, não está sendo possível adicionar duas ordens limit. Sendo assim na hora de analisar o relatório eu não consigo saber qual estratégia foi stopada e num cenário mais longo não consigo analisar as estatísticas de cada estratégia.

 
Marcel Cardoso #:

Posso estar falando besteira, se estiver me desculpe, mas não faz sentido pra mim analisar o tipo de ordem que estou colocando já que a minha estratégia utiliza o Buy/Sell para uma execução a mercado e as ordens limit estão sendo colocadas para o encerramento das posições, ou seja, saída à mercado me prejudica eventualmente e ser ordem limit ou stop é irrelevante no meu caso pois não me interessa se o mercado vai continuar ou não após a execução. No caso eu utilizo a limit para que seja executada o mais próximo possível do nível que eu estabeleci, e pela definição do link que vc mandou me parece que uma ordem stop teria o mesmo resultado.

Mas como já disse, da maneira como eu coloquei no comentário anterior não está funcionando, não está sendo possível adicionar duas ordens limit. Sendo assim na hora de analisar o relatório eu não consigo saber qual estratégia foi stopada e num cenário mais longo não consigo analisar as estatísticas de cada estratégia.

A normalização ta errada dos stops, a questão que tu não entendeu é que voce não via conseguir colocar duas ordens limits do jeito que imagina, novamente leia a pagina. Lá ta bem claro, se tu tentar colocar uma ordem limitada como stop vai ser executado a mercado. Mas voltando pro problema original me ocorreu uma ideia de um outro colega (mas eu não lembro o topico pra citar). Se cada robo esta rodando independente, tu poderia se posicionar no ativo e dai trocar o magic number na esperança de que na hora do stop esse número mágico que vá ser utilizado. Eu nunca testei isso, mas pode dar certo e dai tu pode ficar com o stop na posição como estava. Não é bem o filtro por comentário, mas talvez ajude se der certo.
 
Ricardo Rodrigues Lucca #:
A normalização ta errada dos stops, a questão que tu não entendeu é que voce não via conseguir colocar duas ordens limits do jeito que imagina, novamente leia a pagina. Lá ta bem claro, se tu tentar colocar uma ordem limitada como stop vai ser executado a mercado. Mas voltando pro problema original me ocorreu uma ideia de um outro colega (mas eu não lembro o topico pra citar). Se cada robo esta rodando independente, tu poderia se posicionar no ativo e dai trocar o magic number na esperança de que na hora do stop esse número mágico que vá ser utilizado. Eu nunca testei isso, mas pode dar certo e dai tu pode ficar com o stop na posição como estava. Não é bem o filtro por comentário, mas talvez ajude se der certo.

Eu ainda não entendi a questão que vc está dizendo das ordens.

A utilização do magic number não resolveria meu problema, caso funcione, pois no relatório pós backtest esse número não é incluído.

 
Se sua conta é netting, vai dar certo, Se está operando em conta hedge não, nem é possivel alterar o comentário
Razão: