takeprofit abaixo do preço medio

 
JOSUCA:
Ola galera estou com dificuldade de travar o takeprofit acima do preço médio alguém sabe me dizer onde estou errando ??

Como você está enxergando o seu "preço médio"?

 

Boa tarde!

Para cada nova operação executada, o mt5 redefine o tp da posição para o valor da ordem + tp.

Desse modo, é necessário que você faça o seu próprio gerenciamento, calculando o pm e redefinindo o novo tp.

Isso vale para operações automatizadas e manuais.

Obs: Quando postar uma dúvida, coloque o pedaço de código que você está enfrentando dificuldades ou detalhe mais o seu problema, caso seja uma questão que não envolva programação.

Abs. 

 
Japa Trader Br:

Como você está enxergando o seu "preço médio"?

Fala ai galera não seria a linha verde do MT5 o preço medio to criando um robo scalper so q meu alvo por exemplo se descer 20 pontos o alvo desce junto do preço de abertura preciso que ele fique acima do preço medio qual codigo usar vou passar o meu codigo pra vcs verem..


 double precovenda =0;

    double SL =0;

    double TP =0;

    double precoabertura =0;

        int digitos = (int) SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);

    double LOTES = SymbolInfoDouble(_Symbol, SYMBOL_POINT);

      precovenda =SymbolInfoDouble(_Symbol,SYMBOL_BID);

       SL = precovenda - STOPDEPERDA;

       SL = NormalizeDouble(SL, digitos);

       TP = precovenda + ALVODEGANHO;

       TP = NormalizeDouble(TP, digitos);

       precoabertura = SymbolInfoDouble(_Symbol,SYMBOL_ASK);

                if(!trade.Buy(LOTES,_Symbol, precoabertura, SL, TP)){

      Print("A ordem de compra nâo pode ser introduzida. O erro e:",trade.ResultRetcode() , trade.ResultRetcodeDescription());

      }

      else {

      Print("A ordem de compra foi introduzida");

      }

      

 
Romeu Bertho:

Boa tarde!

Para cada nova operação executada, o mt5 redefine o tp da posição para o valor da ordem + tp.

Desse modo, é necessário que você faça o seu próprio gerenciamento, calculando o pm e redefinindo o novo tp.

Isso vale para operações automatizadas e manuais.

Obs: Quando postar uma dúvida, coloque o pedaço de código que você está enfrentando dificuldades ou detalhe mais o seu problema, caso seja uma questão que não envolva programação.

Abs. 


 double precovenda =0;

    double SL =0;

    double TP =0;

    double precoabertura =0;

    

    int digitos = (int) SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);

    double LOTES = SymbolInfoDouble(_Symbol, SYMBOL_POINT);

       precovenda =SymbolInfoDouble(_Symbol,SYMBOL_BID);

       SL = precovenda - STOPDEPERDA;

       SL = NormalizeDouble(SL, digitos);

       TP = precovenda + ALVODEGANHO;

       TP = NormalizeDouble(TP, digitos);

       precoabertura = SymbolInfoDouble(_Symbol,SYMBOL_ASK);

         

      if(!trade.Buy(LOTES,_Symbol, precoabertura, SL, TP)){

      Print("A ordem de compra nâo pode ser introduzida. O erro e:",trade.ResultRetcode() , trade.ResultRetcodeDescription());

      }

      else {

      Print("A ordem de compra foi introduzida");

      }

      o que pode ser feito pra alterar isso ??

Razão: