Trailing stop proprio

Para adicionar comentários, por favor Faça o login ou registrar
francysouz
46
francysouz  

 Bom dia pessoal, Tudo bem ??

 

Estou tentando fazer meu proprio trailing stop, por que quero colocar minhas proprias regras de mudança do stop

como teste fiz esse stop o qual coloco na classe  OnTick(), porém analisando esse stop de perto notei que ele tem um problema ele nunca fica na zona de lucro .. sempre fica uma quantidade como um pequeno prejuizo.. mesmo que existe a possibilidade de ele ficar na zona de LUCRO..

Alguem sabe me dizer o por que ??

Abaixo segue a parte do trailing stop....

AGRADEÇO a todos pela ajuda...

ABS 

double stop = PositionGetDouble(POSITION_SL);
double take = PositionGetDouble(POSITION_TP);
if(PositionSelect(Symbol())==true && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL){
      double sell_value;
      PositionGetDouble(POSITION_PRICE_CURRENT, sell_value);
      if(last_price.bid < sell_value ){
         stop = NormalizeDouble(last_price.bid +40*_Point,_Digits);
         take = NormalizeDouble(last_price.bid - 200*_Point,_Digits);
         Print("Mudando TP e SL posição de venda.");
         mrequest.sl = stop;
         mrequest.tp = take;
         if(OrderSend(mrequest,mresult)){
              if(mresult.retcode!=TRADE_RETCODE_DONE){
               Print("OrderSend failed with error #",GetLastError());
             }
         }else{
             printf("Unable to move Stop Loss of position %s, error #%I64u",_Symbol,mresult.retcode);
         }
      }
  }

   if(PositionSelect(Symbol())==true && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY){
      double buy_value;
      PositionGetDouble(POSITION_PRICE_CURRENT, buy_value);
      if(last_price.ask > buy_value ){
         Print("Mudando TP e SL posição de compra.");
         stop = NormalizeDouble(last_price.ask -40*_Point,_Digits);
         take = NormalizeDouble(last_price.ask + 200*_Point,_Digits);
         mrequest.sl = stop;
         mrequest.tp = take;
         if(OrderSend(mrequest,mresult)){
           if(mresult.retcode!=TRADE_RETCODE_DONE){
               Print("OrderSend failed with error #",GetLastError());
           }
         }else{
             printf("Unable to move Stop Loss of position %s, error #%I64u",_Symbol,mresult.retcode);
         }
      }
   }
Joscelino Celso de Oliveira
517
Joscelino Celso de Oliveira  
francysouz:

 Bom dia pessoal, Tudo bem ??

 

Estou tentando fazer meu proprio trailing stop, por que quero colocar minhas proprias regras de mudança do stop

como teste fiz esse stop o qual coloco na classe  OnTick(), porém analisando esse stop de perto notei que ele tem um problema ele nunca fica na zona de lucro .. sempre fica uma quantidade como um pequeno prejuizo.. mesmo que existe a possibilidade de ele ficar na zona de LUCRO..

Alguem sabe me dizer o por que ??

Abaixo segue a parte do trailing stop....

AGRADEÇO a todos pela ajuda...

ABS 

Este tema parece ser pouco popular na comunidade. Vejo que seu post é de 2015 e ficou sem resposta.

Estou iniciando em programação na linguagem Mql5 e também esbarrei na dificuldade de configurar um stop móvel personalizado.

Espero que você tenha resolvido o seu problema.


[]´s

Vinicius Maciel
264
Vinicius Maciel  
francysouz:

 Bom dia pessoal, Tudo bem ??

 

Estou tentando fazer meu proprio trailing stop, por que quero colocar minhas proprias regras de mudança do stop

como teste fiz esse stop o qual coloco na classe  OnTick(), porém analisando esse stop de perto notei que ele tem um problema ele nunca fica na zona de lucro .. sempre fica uma quantidade como um pequeno prejuizo.. mesmo que existe a possibilidade de ele ficar na zona de LUCRO..

Alguem sabe me dizer o por que ??

Abaixo segue a parte do trailing stop....

AGRADEÇO a todos pela ajuda...

ABS 

Você precisa usar a função OrderModify em vez de OrderSend().
Joscelino Celso de Oliveira
517
Joscelino Celso de Oliveira  
Vinicius Maciel:
Você precisa usar a função OrderModify em vez de OrderSend().

Não precisa. Funciona com OrderSend sim. 

[ ]´s

phlawyo
5
phlawyo  
Joscelino Celso de Oliveira:

Este tema parece ser pouco popular na comunidade. Vejo que seu post é de 2015 e ficou sem resposta.

Estou iniciando em programação na linguagem Mql5 e também esbarrei na dificuldade de configurar um stop móvel personalizado.

Espero que você tenha resolvido o seu problema.


[]´s

Veja o expert deste link e o respectivo códio-fonte, provavelmente é o q precisas:

https://www.mql5.com/en/code/20636

Sds.

e_Breakeven_v4
e_Breakeven_v4
  • www.mql5.com
TwoBarsComparison The EA compares the opening prices of the zeroth and the second bar. It moves positions to a breakeven and/or enables trailing. exp_Amstell The EA uses a virtual Take Profit for closing gaining positions. Opening positions with a step. Catch the type of the last position and its price in...
Para adicionar comentários, por favor Faça o login ou registrar