I've written a strategy that fires off two consecutive orders on each setup (with different signal names). The first with a profit target, the second, to act as a runner. Very common practice... All works just fine with ES, CL, GC, 6B... everything I tested... EXCEPT when I run the EXACT same strategy on NQ. On NQ, I get an "order ignored" error on the 2nd Enter... This cut from the order trace:
Hmm... I have EntriesPerDirection = 2 in ALL cases... I do NOT change anything at all... exact same code, same settings... on ES/GC/CL etc .. the 2nd order is accepted as expected.
Change the instrument to NQ... and it screws up.
If I set EntriesPerDirection = 4 ... then and ONLY then will my SECOND order on NQ be accepted. That's just wrong...
Each entry has a different signal name... all "first contract" orders have a "1" as name last digit... all "second contract" orders have a "2" as last letter of the signal name. I know.. confusing ;-)
I have attached trace outputs for CL, GC and NQ, along with the relevant section of OnStateChange code... Got some lines my code writes in there as well... but you can see the issue in the first few lines of the order traces... You can see multiple orders with signal names like CTR1, CTR2, WIK1, WIK2 etc on the GC/CL traces... but for NQ... only ever CTR1, WIK1 etc... as the secong order is ALWAYS rejected.
It's the NQ file that displays the mysterious error...
So... I have a workaround... but it is troubling that this basic behaviour is, well... broken by changing instrument!
Any suggestions appreciated.
PS NT8, 8.0.21.0 Win7 Pro.

Comment