Este artigo explica por que uma posição do Rithmic pode continuar aparecendo como aberta no NinjaTrader depois de já ter sido fechada no lado da corretora (RTrader Pro), por que clicar em Flatten All sobre essa posição "fantasma" desatualizada pode abrir uma operação invertida, por que nenhum add-on do NinjaTrader (incluindo o Replikanto) consegue evitar isso, e as soluções temporárias que recomendamos.
O que está acontecendo
O que está acontecendo é que o NinjaTrader não está conseguindo atualizar a posição de um ou mais seguidores após o fechamento, mantendo assim um status de posição desatualizado indicando que há uma posição aberta incorretamente, e, ao tentar fechar a posição "fantasma", o NinjaTrader envia uma ordem de fechamento reversa causando uma nova posição invertida a ser aberta pela simples razão de que não havia posição aberta alguma no lado da corretora. Este comportamento, conforme a equipe de suporte do NinjaTrader nos informa, é devido à "alta latência de conexão".
A causa raiz: o design da API do Rithmic
A razão mais profunda por trás dessas posições desatualizadas, e o principal motivo de a posição às vezes não ser atualizada como deveria, está na forma como a API do Rithmic entrega os eventos ao NinjaTrader. Como o próprio aviso do Rithmic acima informa, a sequência dos eventos não é garantida pelo design da API do provedor. O NinjaTrader constrói a sua visão da sua posição a partir do fluxo de eventos que recebe da corretora: eventos de execução (OnExecution) e eventos de atualização de posição (OnPositionUpdate). Quando várias execuções ocorrem ao mesmo tempo para o mesmo instrumento, o Rithmic pode entregar esses eventos fora de ordem, ou enviar uma atualização de posição que não reflete as execuções que acabaram de acontecer. Como o NinjaTrader depende dessa ordenação para reconstruir a posição, um OnPositionUpdate incorreto deixa o NinjaTrader com uma posição errada enquanto a corretora (RTrader Pro) mantém a correta, e é exatamente esse desalinhamento que você vê na tela. É por isso que o próprio Rithmic recomenda trabalhar apenas com os dados passados por valor do OnExecution, em vez de confiar na atualização de posição agregada.
Em outras palavras, a "alta latência de conexão" é apenas parte da história: o problema real é que o Rithmic não garante a ordem em que esses eventos chegam, então o NinjaTrader nem sempre consegue reconstruir a posição de forma confiável. Como o problema tem origem no próprio contrato da API do Rithmic, nenhum add-on em execução no NinjaTrader (incluindo o Replikanto) pode evitá-lo, e ele não aparece em provedores como o Tradovate, cujas APIs entregam esses eventos de forma diferente.
Soluções temporárias recomendadas
Quando isso acontece, sempre considere o que é exibido na plataforma da corretora "RTrader Pro" como verdadeiro. Se o NinjaTrader mostrar posições desatualizadas, não tente fechá-las. A melhor maneira de atualizá-las é reconectar-se à corretora ou forçar uma atualização de posição de uma destas formas:
- Vá em Conexões > Desconectar e, em seguida, Conexões > Conectar.
- Ou coloque uma ordem limitada distante do preço e, em seguida, cancele-a.
Qualquer uma dessas ações garantirá que as posições do NinjaTrader sejam atualizadas e exibidas corretamente. Em resumo:
- Considere a RTrader Pro como a fonte da verdade para a sua posição real.
- Não clique repetidamente em Flatten All sobre uma posição fantasma, isso pode abrir uma operação invertida.
- Reconecte (ou coloque e cancele uma ordem limitada distante) para atualizar a posição.
- Evite depender do Follower Guard em contas Rithmic.
Atenção ao Follower Guard
Em contas afetadas por esse problema (como contas Rithmic da APEX, TopStep e mesas de prop semelhantes), evite depender do Follower Guard para proteger as seguidoras. O Follower Guard decide achatar as contas seguidoras com base no estado da posição informado pelo NinjaTrader, e é justamente esse estado que fica incorreto por causa da latência do Rithmic. Por isso, ele pode disparar alarmes falsos e achatar posições sem necessidade. Nesses casos, acompanhe a posição real pela RTrader Pro.
Ativar "Copy Market Orders (Executions only)" resolve isso? Não.
Mudar o seu modo de cópia do Replikanto para Executions only não corrige nem mitiga esse problema. A posição "fantasma" desatualizada vive no próprio estado de posição local do NinjaTrader, que ele reconstrói a partir dos eventos fora de ordem enviados pela API do Rithmic. As configurações de modo de cópia apenas controlam como as ordens do líder são copiadas para os seguidores, elas não mudam a forma como o NinjaTrader reconstrói uma posição a partir do Rithmic, portanto não conseguem evitar a posição fantasma nem a operação invertida que o Flatten All dispara. Use as soluções acima (RTrader Pro como fonte da verdade, não clique repetidamente no Flatten All sobre uma posição fantasma, reconecte para atualizar e evite o Follower Guard em contas Rithmic).
Como relatar o problema e se manter informado
Alertamos nossos clientes sobre esse problema por meio do e-mail intitulado: "Aviso Importante: Problema de Atualização de Posição - Soluções Temporárias Fornecidas", onde você encontrará mais informações sobre ele. Você também pode acompanhar esta postagem relacionada a este problema para se manter atualizado: https://forum.ninjatrader.com/forum/ninjatrader-8/platform-technical-support-aa/1309410-ninjatrader-rithmic-not-updating-positions
Para ser honesto, não há nada que possamos fazer com o Replikanto nesta situação, pois cabe ao NinjaTrader atualizar as posições corretamente, conforme mostrado na ferramenta da corretora. Infelizmente, dependemos da operação adequada da plataforma NinjaTrader Desktop que executa o add-on Replikanto para que tudo funcione perfeitamente.
Se isso estiver afetando você de forma negativa, entre em contato com support@ninjatrader.com e envie seus logs para eles. Eles farão o possível para analisá-los, identificar o problema e forçá-los a fazer as correções necessárias, pois eles sabem sobre este problema há algum tempo.
Se você estiver interessado em explorar opções alternativas, pode considerar usar contas Tradovate em vez de Rithmic como uma forma de resolver o problema.
Por que este não é um problema do Replikanto
Gostaríamos de esclarecer que nenhum produto de mercado em execução no NinjaTrader é responsável pelas posições Rithmic não serem atualizadas dentro do NinjaTrader. Gostaríamos de lembrá-lo gentilmente de que a responsabilidade pela atualização das posições é da ferramenta NinjaTrader. Se o problema fosse com nosso produto ou qualquer outro, ele provavelmente se manifestaria em uma variedade de tipos de contas, como Tradovate, o que não é o caso. Este problema tem suas raízes no Rithmic e, como mencionado anteriormente, recai sob a alçada do NinjaTrader. Infelizmente, é necessário buscar a assistência de um agente de suporte do NinjaTrader para relatar o caso, pois o suporte de IA do NinjaTrader não está atualmente equipado para lidar com este problema em particular.
Comentários
0 comentário
Artigo fechado para comentários.