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] Problema com implementação de estratégia.

5 Posts
3 Usuários
0 Reactions
166 Visualizações
(@alexandre-magno)
Membro ativo
Registrou: 2 anos atrás
Posts: 3
Iniciador do tópico  

Olá pessoal. Gostaria do auxílio de vocês para entender um problema que me vem ocorrendo. O problema é simples. Criei duas estratégias, porém uma é o inverso da outra. Ou seja, quando uma deveria comprar a outra no mesmo ponto deveria vender. Acontece que o profit não executa dessa forma, sempre tem uma diferença. Por exemplo, se o critério ocorre num dado ponto (110000), a estratégia A deveria comprar, a estratégia B deveria vender, mas acontece que a A compra no 110000 mas a B vende no 110020 por exemplo. Na saída da operação ocorre o mesmo problema. Faço o teste com apenas 1 contrato durante o pregão, rodando no modo simulação. Reforço que o argumento da operação é o mesmo para as duas, só muda a ordem de entrada e saída.


   
Citar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Oi @alexandre-magno! Tudo bem!?

Bem estranho o seu relato...mas já presenciei situações também estranhas e que não conseguimos depurar muito bem devido ao fato de não saber o que acontece internamente na NTSL.

Por exemplo, rodando replay no modulo de automação de estratégias, você terá compras e vendas em pontos diferentes dependendo da velocidade de reprodução do replay. O que pra mim, em replay não faz sentido.

Acho que vale a pena você abrir um chamado para a Nelogica investigar e ajustar caso seja necessário. 

Grande abs!

 


   
ReplyCitar
(@alexandre-magno)
Membro ativo
Registrou: 2 anos atrás
Posts: 3
Iniciador do tópico  

Olá Johnathas.

Pois é, vi uma sérias de vídeos seus sobre a interpretação de ordem no backtest e na automação. Ficou claro a bagunça que a nelógica está fazendo. Já analisei o código e não era para acontecer isso. Acaba limitando muito a automação, pois não sabemos o que esperar. Mas coloquei o exemplo de código bem simples que usei para fazer esse teste. Poderia verificar, por favor, se de fato a estratégia está invertida? Talvez eu que estou interpretando errado.

This post was modified 2 anos atrás by Alexandre Magno

   
ReplyCitar
(@alexandre-magno)
Membro ativo
Registrou: 2 anos atrás
Posts: 3
Iniciador do tópico  

//NORMAL

input
periodo(1);
periodo2(1);
Inicio
Se (IsSold) então
Inicio
Se ((TILSON(0.70,periodo2)[1] < (TILSON(0.70,periodo2)))) então
Closeposition;
Fim;
Se (IsBought) então
Inicio
Se ((TILSON(0.70,periodo2)[1]) > (TILSON(0.70,periodo2))) então
Closeposition;
Fim;
//abrir posição
Inicio
Se (TILSON(0.70,periodo)[1] < (TILSON(0.70,periodo))) então
BuyAtMarket
Senão Se (TILSON(0.70,periodo)[1] > (TILSON(0.70,periodo))) então
SellShortAtMarket;
Fim;
Fim;

_______________________________________________________________________
//INVERTIDO

input
periodo(1);
periodo2(1);
Inicio
Se (IsSold) então
Inicio
Se ((TILSON(0.70,periodo2)[1] > (TILSON(0.70,periodo2)))) então
Closeposition;
Fim;
Se (IsBought) então
Inicio
Se ((TILSON(0.70,periodo2)[1]) < (TILSON(0.70,periodo2))) então
Closeposition;
Fim;
//abrir posição
Inicio
Se (TILSON(0.70,periodo)[1] < (TILSON(0.70,periodo))) então
SellShortAtMarket
Senão Se (TILSON(0.70,periodo)[1] > (TILSON(0.70,periodo))) então
BuyAtMarket;
Fim;

   
ReplyCitar
masker
(@masker)
Membro confiável
Registrou: 2 anos atrás
Posts: 41
 

@alexandre-magno 

Para inverter a posição das entradas no código acima, basta trocar o BuyAtMarket por SellShortAtMarket e vice-versa.


   
ReplyCitar