Hey folks, looking for some help with my strat.
When I test it in replay it works fine, takes trades as it should. When I enable it on my Tradeify prop account, it prints everything on the chart as it should, but never enters any trades. I’ve researched it a bunch but can’t seem to find an answer. Does anyone have any suggestions to try? I have it enabled on the correct account and futures contract. Not sure what I’m missing. Thanks!
you would probably need to post the code before we could figure out where it’s going wrong
Thanks for the reply. I don’t want to publicly post it here, sorry. I was hoping maybe my log files or something else I could provide would help some more seasoned coders to see the issue.
Here are a few screen shots for clarity.
The strat should have taken a long when price broke above the #1120 bar but it didnt. It recognized the long setup but no entry.
yeah, I don’t think there are any coders here that can identify what’s wrong with your code without looking at your code. Your code is working exactly as it’s programmed to. If it’s not working as you’d expect then that’s probably due to some logic flaw or something that has to do with the code itself. I doubt you’re gonna get anywhere without posting it. Good luck.
Add more Print statements until you find it.
go check your trace files, you should be able to see the lifecycle of your orders.
\Documents\NinjaTrader 8\trace
Running into a state where everything prints perfectly on historical playback but fails to trigger in a live session is almost always rooted in how NinjaTrader processes incoming market data asynchronously versus how it evaluates historical bars, when you run historical data the platform evaluates the bar states deterministically based on your OnBarUpdate setting but live execution forces the script to handle instantaneous order state transitions while dealing with incoming tick data and Rithmic or Tradovate API feedback loops
If your code is waiting for a bar close to evaluate an execution criteria but the order state isn’t explicitly checked against the internal position object you end up in a ghost loop where the setup triggers visually but the actual order is rejected or dropped by the core thread. You need to dump standard print statements and start tracking the precise order lifecycle by forcing the strategy to log the exact transition states inside OnOrderUpdate and OnExecutionUpdate. Most developers use the managed approach thinking the platform will handle the fill logic cleanly but high-volatility sweeps require an unmanaged routing approach where you bypass the internal position sync completely and submit raw transaction blocks directly to the exchange feed otherwise you will keep getting visual confirmations on your screen with zero fills at the broker
Dropping a message here regarding your script ignoring live trades while working fine in playback. Left a note on the thread, but the root cause is almost always how IsOnBarClose behaves when real-time tick latency enters the mix. Playback data is clean and sequential, but a live Tradovate or Rithmic feed introduces microsecond drops that cause the strategy to miss the state transition completely
To fix this, you have to bypass the standard bar updates and move the core logic into OnMarketData using unmanaged commands. It forces the strategy to check the actual broker position object instead of guessing, let me know if you are still stuck with zero fills on that live account

