Confira os nossos eBooks, Snippets e Fóruns produzidos para cada plataforma!
Prezados,
Estou a algum tempo tentando fazer funcionar uma estratégia de execução em tempo real no NinjaTrader, utilizando os dados de mercado e conta via Rithmic (mesas proprietárias). Sei que existe a tal limitação que o Ninja informa: "Rithmic and Interactive Brokers Users: When using a NinjaScript strategy it is best practice to only work with passed by value data from OnExecution..."
Dito isto, em minhas pesquisas encontrei algumas possíveis soluções e tentei a ajuda do ChatGPT para implementa-las, mas sem sucesso. De qualquer forma, aqui está o problema e uma possível solução:
Problema: A sequência de eventos OnOrderUpdate()
, OnExecutionUpdate()
, e OnPositionUpdate()
não é garantida em corretoras como Interactive Brokers e Rithmic.
- O objetivo é fazer com que o código seja robusto o suficiente para funcionar mesmo se os eventos chegarem fora de ordem. Isso significa que não podemos depender da ordem em que esses eventos são disparados.
- A sugestão do ChatGPT é usar OnOrderUpdate()
para gerenciar ordens com base no OrderState
e garantir que a lógica da estratégia não dependa do momento exato em que OnExecutionUpdate()
e OnPositionUpdate()
são chamados.
- Minhas palavras: "Utilizando a estratégia em Backtest em contas Ninjatrader simuladas ela funciona normalmente, mas ao executar em uma conta via Rithmic, ocorre erro de conflito de ordens e a estratégia fecha."
Ao tentar aplicar a sugestão do ChatGPT, não consegui fazer as ordens de saída (stoploss e profit) funcionarem corretamente. (Posso aprofundar no problema mais tarde).
Dito tudo isto pergunto: Alguém já conseguiu fazer uma estratégia funcionar nestas condições que descrevi? Ninjatrader via Rithmic? Caso positivo, poderiam me direcionar qual caminho seguir?
Agradeço!