Ordem rejeitada - página 4

 
ROMEU MASSELAI #:

.

Romeu,

anexou prints do dia 27/12 ????

 
Rogerio Giannetti Torres #:

Romeu,

anexou prints do dia 27/12 ????

sim, por isso falei de rodar para ter novos logs, anexo os logs de hoje de manha.

Arquivos anexados:
logs_diario.png  153 kb
logs_expert.png  98 kb
 
ROMEU MASSELAI #:

sim, por isso falei de rodar para ter novos logs, anexo os logs de hoje de manha.

Entendi que já tinha um LOG DIÁRIO da versão que você postou, então assim que puder,  anexa o arquivo do LOG DIÁRIO do dia 12.

 
ROMEU MASSELAI #:

sim, por isso falei de rodar para ter novos logs, anexo os logs de hoje de manha.

Cara, da problema sem o stop de perda? pergunto isso porque um stop de quase 60% do ativo parece mais ser erro operacional e ainda em ambev acho que qualquer stop maior que 4 eh considerado erro do usuario. Uma coisa que se tu quer um stop grande coloca uns 15% ou o valor de saida do atr(10) multiplicado por 5 no diario como tamanho de stop... teve mais alguma no dia que deu erro?
 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Ordem rejeitada

Vinicius de Oliveira, 2023.01.04 22:44

Boa tarde!!


A mensagem de retorno do EA é bem esclarecedora. Vamos ver o exemplo do símbolo BBAS3F que você mencionou:

A mensagem informa que o EA está tentando enviar uma ordem de compra com TP de 32.41 quando o BID é de 32.91 ou 32.92. Não tem como dar certo. Existe algum erro no cálculo do TP.


Então, Romeu, faça como o Rogerio sugeriu no post anterior. Poste, pelo menos, o trecho do código onde você calcula TP de compra e TP de venda...


Abraço!!



Boa noite!!


Complementando essa minha resposta acima, já que você deseja testar o seu EA com esse TP curtíssimo, segue um exemplo (não testado) de como calculá-lo:

   double BID, ASK, TICK_SIZE, TP_B, TP_S;
   int    STOPS_LEVEL;

//--- Gets the last price for current symbol
   BID = SymbolInfoDouble(_Symbol, SYMBOL_BID);
   ASK = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

//--- Gets the SYMBOL_TRADE_STOPS_LEVEL level
   STOPS_LEVEL = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);

//--- Gets the minimal price change
   TICK_SIZE = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);

//--- Calculates the take profit
   TP_B = NormalizePrice(ASK + (STOPS_LEVEL * _Point + 2.0 * TICK_SIZE));
   TP_S = NormalizePrice(BID - (STOPS_LEVEL * _Point + 2.0 * TICK_SIZE));


// . . .


//--- Open position - Buy
   if(!m_trade.Buy(LOT, _Symbol, ASK, SL, TP_B, COMMENT))
     {
      Print(m_trade.ResultRetcode(), " ", m_trade.ResultRetcodeDescription());
      return;
     }


// . . .


//--- Open position - Sell
   if(!m_trade.Sell(LOT, _Symbol, BID, SL, TP_S, COMMENT))
     {
      Print(m_trade.ResultRetcode(), " ", m_trade.ResultRetcodeDescription());
      return;
     }
 
Problema solucionado, depois de tentar de tudo, simplesmente abri conta em outra corretora, e o EA funcionou perfeitamente bem.
Razão: