Error na Ordem Conta Real - página 2

 
Douglas Felipe:

@Vinicius de Oliveira

Muito Obrigado pela ajuda mais eu estou com duvidas e medo rsrs testei na conta demo funciona normalmente na conta real esta dando erro de invalid prince já estou preocupado de rodar este robo em conta real gostaria de saber se além do magic number se existe mais alguma coisas que preciso corrigir para colocar em conta real . 

Boa noite Douglas! De nada! 🤝


Sem dúvidas, esse erro precisa ser corrigido antes. Anexe o código com as atualizações pra eu dar uma olhada.

 
Douglas Felipe:

Obrigado pelas dicas eu vou testar elas só mais uma duvida para setar corretamente o magic number usa este código:

SetExpertMagicNumber(magic_number)  dentro do OnInit().

Esta Certo?

Sim, está certo. No caso seria:

Trade.SetExpertMagicNumber(magic_number);
 

Bom eu acredito que o erro do meu código esta em querer fazer entradas na máxima dos candles eu criei uma função que pega elas e esta dando o Invalid price estou tentando achar uma solução mais infelizmente sem sucesso.

@Vinicius de Oliveira

void Compra()
  {
   double Price  = InfoCandle("H",1);
   Price = simbolo.NormalizePrice(Price);
   double SL = Price - stop_loss;
   SL =   simbolo.NormalizePrice(SL);
   double TP = Price + take_profit;
   TP =   simbolo.NormalizePrice(TP);
//---Numero Magico-----------------------//
   Trade.SetExpertMagicNumber(magic_number);
   if(!Trade.BuyStop(vol,Price,_Symbol,SL,TP,ORDER_TIME_GTC,0,NULL))
     {
      Print("Erro ao enviar a ordem! ", GetLastError());
      ResetLastError();
      return;
     }
   else
     {
      CheckRequizicao();
      StatusOrdem = true;
     }

  }
}
Vinicius de Oliveira
Vinicius de Oliveira
  • 2021.04.19
  • www.mql5.com
Perfil do Trader
 
Douglas Felipe:

Bom eu acredito que o erro do meu código esta em querer fazer entradas na máxima dos candles eu criei uma função que pega elas e esta dando o Invalid price estou tentando achar uma solução mais infelizmente sem sucesso.

@Vinicius de Oliveira

Bom dia Douglas!


Muito provável que o erro seja na sua função FecharPosicao() [semelhante a esse tópico], e não em Compra() ou Venda().


Vou dar uma olhada aqui no seu código ...

Erro em PositionClose() WIN$
Erro em PositionClose() WIN$
  • 2021.05.02
  • www.mql5.com
Estou tentando encerrar as posições após certo horário no ativo WIN$ pela corretora Genial com modelação de Cada Tick (com OHLC e Tick real ocorre...
 

Boa noite Douglas!


Dei uma verificada no seu código, fiz alguns alterações que fui identificando, mas ainda tem algumas coisas que você deve dar mais uma trabalhada: incluir funções de verificação como CheckMoneyForTrade(), CheckStopsLevel(), CheckFreezeLevel(), ... verificar se a execução de algumas funções foi bem sucedida, como HistorySelect(), OrderGetTicket(), PositionGetTicket(), ...


Teste se suas funções de verificação de horário estão funcionando normalmente. Se quiser, tem essa biblioteca que você pode usar ...


A sua função NovoDia() não está sendo utilizada. Você ainda vai implementá-la ou é desnecessária?


Segue (ANEXO) o código com algumas alterações:

Classe para controlar horários de negociação
Classe para controlar horários de negociação
  • www.mql5.com
Essa classe foi projetada com o intuito de ajudar nos horários de negociação, de uma forma simples e centralizada.
Arquivos anexados:
 

@Vinicius de Oliveira Muito Obrigado realmente este erro de fechar função eu percebi com os testes agora mais consegui corrigir porém o invalid prince ainda esta ocorrendo acho estranho porque ele ocorre geralmente quando um candle esta com sombra quase nula como meu robo seta a maxima mais isso não faz sentindo rsrs

 
Vinicius de Oliveira
Vinicius de Oliveira
  • 2021.04.19
  • www.mql5.com
Perfil do Trader
 
Douglas Felipe:

@Vinicius de Oliveira Muito Obrigado realmente este erro de fechar função eu percebi com os testes agora mais consegui corrigir porém o invalid prince ainda esta ocorrendo acho estranho porque ele ocorre geralmente quando um candle esta com sombra quase nula como meu robo seta a maxima mais isso não faz sentindo rsrs

Então o problema é SYMBOL_TRADE_STOPS_LEVEL. Inclua no seu código uma função de verificação dos níveis de stops.



   CORREÇÃO:  

Problema SYMBOL_TRADE_FREEZE_LEVEL, mas como falei antes, é importante incluir as duas verificações.