Neo traderBot

Neo traderBot

Você sabia?

Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!

leaf leftleaf right
Notifications
Clear all

[Solucionado] Ordens Stop de compra e venda não executadas

2 Posts
2 Usuários
1 Reactions
207 Visualizações
(@crismiguel)
Novo membro
Registrou: 1 ano atrás
Posts: 1
Iniciador do tópico  

Olá,

 

Estou iniciando na programação e estou desenvolvendo um simples robô, porém ao executar no módulo de automação, diversas ordens de compra ou venda não são executadas, ocasionando nos erros abaixo:

 

Compra: "Não foi possível criar BuyStop. Sua ordem stop deve ter o preço acima do preço atual do mercado"

 

Venda: "Não foi possível criar SellStop. Sua ordem stop deve ter o preço abaixo do preço atual do mercado".

 

Tentei uma variação no robô de +5 ao invés do incremento mínimo para ver se as ordens eram executadas, mas não deu certo. As ordens "ToCoverStop" funcionam corretamente, apenas as ordens de entrada, seja compra ou venda, que as vezes dão erro.

 

Poderiam me ajudar a identificar o problema e corrigi-lo?

 

Código:

 

input
offset(30);

var
sinalCompra,sinalVenda : boolean;
stopCompra,stopVenda : float;

begin

// SINAIS DE ENTRADA
sinalCompra := (close[0] > close[1]);
sinalVenda := (close[0] < close[1]);

// EXECUÇÃO DA ENTRADA
if ( not HasPosition) and sinalCompra then
BuyStop((High[0]+MinPriceIncrement),(High[0]+MinPriceIncrement) + (offset * MinPriceIncrement)); // Variação 1
BuyStop((High[0]+5),(High[0]+MinPriceIncrement) + (offset * MinPriceIncrement)); // Variação 2

if ( not HasPosition) and sinalVenda then

SellShortStop((Low[0]-MinPriceIncrement),(High[0]+MinPriceIncrement) + (offset * MinPriceIncrement)); // Variação 1
SellShortStop((Low[0]-5),(Low[0]-MinPriceIncrement) - (offset * MinPriceIncrement)); // Variação 2

// EXECUÇÃO DA SAÍDA
stopCompra := Low[0];
stopVenda := High[0];

if IsBought then
SellToCoverStop(stopCompra,stopCompra - (offset * MinPriceIncrement));

if IsSold then
BuyToCoverStop(stopVenda,stopVenda + (offset * MinPriceIncrement));

end;

 

Obrigado!


   
Citar
Marcadores do tópico
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Boa noite @crismiguel!

 

         Melhor do que corrigir o seu código, irei lhe passar algumas informações relevantes para que proceda você mesmo os ajustes necessários. Pois vejo que há uma lacuna a ser preenchida em relação a alguns conceitos importantes.

  • Ordens stop para abertura de posição devem ser sempre colocadas visando o rompimento. Ou seja, se é uma ordem stop de compra, o preço dessa ordem deve ser maior do que o preço atualmente negociado. Se for o caso de uma venda, o preço deve ser inferior ao preço atualmente negociado.
  • Assim, é sempre prudente você verificar por meio de uma condição a posição relativa do preço atualmente negociado frente ao valor que deseja executar para apregoar uma ordem corretamente. Em algumas situações, talvez você devesse apregoar ordens limitadas.
  • Vou lhe indicar que assista a esse vídeo para compreender melhor sobre os tipos de ordens: https://www.youtube.com/watch?v=KOGC_U2a7MM .
  • Não pude deixar de notar também que você está utilizando de maneira equivocada o parâmetro de offset das ordens stop. O preço de offset deve ser sempre menos vantajoso do que o preço stop, pois reflete o maior valor que está disposto a pagar em um compra ou o menor valor que que está disposta a vender.

 

Aprender a desenvolver código de estratégias automatizadas exige percorrer uma trilha de aprendizagem de maneira a adquirir conhecimento dos principais conceitos envolvidos. Tem muito material gratuito e de qualidade na Comunidade NeoTraderBot...por outro lado, eu vejo muito material desinformativo por aí.

É possível aprender por meio de vídeos no youtube, e o site da NeoTraderBot tem uma base de conhecimento que você não encontrará em outro lugar.

Mas eu acredito que realizar o curso de Automatização de Trading em NTSL da Comunidade NeoTraderBot é a maneira mais eficiente de você aprender a criar suas estratégias em NTSL. Dê uma olhada neste link e avalie essa possibilidade...É como dizem: Tempo é dinheiro! O curso vai te levar da maneira mais rápida e objetiva ao patamar de autosuficiência em programação.

 

Grande abs!


   
Ferefera reacted
ReplyCitar