The TMF below executes immediately before the upcoming run(), after getting the latest tick price.
As you can see, it ran before tick and TOCK. As a result it doesn't get the options chain for time 1840 that was loaded in TOCK.
What I am suggesting is that instead of this execution sequence:
TMF, tick, TOCK, run
It should be this, just like 2.35 and before.
tick, TOCK, TMF, run
I don't think making this change will cause any internal Zorro issues at all. In fact, I think it'll make it better for all TMF events:
tick, TOCK, TMF event....
From v.2.40.4
[1840] INSIDE myTMF[489449]: priceClose(0)=3816.59
2021-03-05,Call,20210308,3810.0,3815.3,32.60,32.10,0.529,773,
ContractBid[32.10] ContractAsk[32.60] TradeStopLimit[27.75]
[4895: 1840] tick priceClose[3816.59]
[4895: 1840] TOCK -- [SPX] Loading chain...
[4895: 1840] TOCK priceClose[3816.59] -- [C:\Zorro\History\SPX-Options\\SPX_202103_m1.t8] 600 contracts loaded...
[4895: Fri 21-03-05 18:40] 860 -1912 5/4 3815.25/3816.59\3815.09/3816.59 -0.01