Problemas ao usar EA em conta Hedge

Para adicionar comentários, por favor Faça o login ou registrar
HENRIQUE ARAUJO DOS SANTOS
2416
HENRIQUE ARAUJO DOS SANTOS  

Eu tenho um EA que trabalha fechando e reposicionando ordens a cada X pontos. Na conta Netting ele funciona perfeitamente mas na conta Hedge ele simplesmente fica fechando as ordens antes de chegar ao alvo.


Ai vai algumas partes do codigo.

if(rompimento==true){
if(tick.last > rates[1].high && !posAberta){
trade.Buy(Contratos,Symbol(),tick.ask,0,0,NULL);
}

if(tick.last < rates[1].low && !posAberta){
trade.Sell(Contratos,Symbol(),tick.bid,0,0,NULL);

if(posAberta && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY && tick.last > PositionGetDouble(POSITION_PRICE_OPEN)+distancia*_Point){
FecharPosicao();
}

if(posAberta && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL && tick.last < PositionGetDouble(POSITION_PRICE_OPEN)-distancia*_Point){
FecharPosicao();
}

if(posAberta && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL && PositionGetDouble(POSITION_VOLUME)>=risco_max && tick.last <= PositionGetDouble(POSITION_PRICE_OPEN)-distancia_protecao*_Point){
FecharPosicao();
}

if(posAberta && PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY && PositionGetDouble(POSITION_VOLUME)>=risco_max && tick.last >= PositionGetDouble(POSITION_PRICE_OPEN)+distancia_protecao*_Point){
FecharPosicao();
}

void Dobrar_Mao_Venda_Aritimetica(){
   for(int i=PositionsTotal()-1; i>=0; i--){
   string symbol = PositionGetSymbol(i);
   if(symbol == Symbol()){
   ulong ticket = PositionGetInteger(POSITION_TICKET);
   double prec_entrada = PositionGetDouble(POSITION_PRICE_OPEN);
   double TP = PositionGetDouble(POSITION_TP);
   double SL = PositionGetDouble(POSITION_SL);
   
   if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
   if(tick.last > prec_entrada + distancia*_Point){
      trade.Sell(fator_soma,_Symbol,tick.ask,0,0,NULL);
      }
   }
   }
   }

}

void Dobrar_Mao_Compra_Geometrica(){
   for(int i=PositionsTotal()-1; i>=0; i--){
   string symbol = PositionGetSymbol(i);
   if(symbol == Symbol()){
   ulong ticket = PositionGetInteger(POSITION_TICKET);
   double prec_entrada = PositionGetDouble(POSITION_PRICE_OPEN);
   double TP = PositionGetDouble(POSITION_TP);
   double SL = PositionGetDouble(POSITION_SL);
   
   if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
   if(tick.last < prec_entrada - distancia*_Point){
      trade.Buy(Contratos*fator_multiplicacao,_Symbol,tick.ask,0,0,NULL);
      }
   }
   }
   }

}

void Dobrar_Mao_Venda_Geometrica(){
   for(int i=PositionsTotal()-1; i>=0; i--){
   string symbol = PositionGetSymbol(i);
   if(symbol == Symbol()){
   ulong ticket = PositionGetInteger(POSITION_TICKET);
   double prec_entrada = PositionGetDouble(POSITION_PRICE_OPEN);
   double TP = PositionGetDouble(POSITION_TP);
   double SL = PositionGetDouble(POSITION_SL);
   
   if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
   if(tick.last > prec_entrada + distancia*_Point){
      trade.Sell(Contratos*fator_multiplicacao,_Symbol,tick.ask,0,0,NULL);
      }
   }
   }
   }

}

void Dobrar_Mao_Compra_Aritimetica(){
   for(int i=PositionsTotal()-1; i>=0; i--){
   string symbol = PositionGetSymbol(i);
   if(symbol == Symbol()){
   ulong ticket = PositionGetInteger(POSITION_TICKET);
   double prec_entrada = PositionGetDouble(POSITION_PRICE_OPEN);
   double TP = PositionGetDouble(POSITION_TP);
   double SL = PositionGetDouble(POSITION_SL);
   
   if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
   if(tick.last < prec_entrada - distancia*_Point){
      trade.Buy(fator_soma,_Symbol,tick.ask,0,0,NULL);
      }
   }
   }
   }

}

void FecharPosicao(){
   for(int i=PositionsTotal()-1; i>=0; i--){
   ulong ticket = PositionGetTicket(i);
   string symbol = PositionGetString(POSITION_SYMBOL);
   ulong magic = PositionGetInteger(POSITION_MAGIC);
   if(symbol == _Symbol && magic == MagicNum){
   trade.PositionClose(ticket,0);
   }
   }
}
Thiago Duarte
69866
Thiago Duarte  
HENRIQUE ARAUJO DOS SANTOS:

Eu tenho um EA que trabalha fechando e reposicionando ordens a cada X pontos. Na conta Netting ele funciona perfeitamente mas na conta Hedge ele simplesmente fica fechando as ordens antes de chegar ao alvo.


Ai vai algumas partes do codigo.

Já consultou sua corretora sobre isso?

HENRIQUE ARAUJO DOS SANTOS
2416
HENRIQUE ARAUJO DOS SANTOS  
Thiago Duarte:

Já consultou sua corretora sobre isso?

Não Thiago, pois imaginei que o problema seria no código. Já que posicionando a ordens pendentes ele funciona e a mercado não... 

Ivan Ronchi
340
Ivan Ronchi  

Verifique o Spread para colocar saidas com valores limitados SL ou BL (gain + Spread).

Se você colocar a mercado pode sair abaixo do seu gain pelo spread.

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