As said previously, this problem is for backtest only. There are no problems in live trading because contractPrice gets the most current contract prices from the broker plugin.

As you know in backtest, contractPrice called in TMF only uses price data from whatever historical contract chain was loaded in the most recent contractUpdate.

As you know, contractUpdate only loads the snippet of options chain from the large historical .t8 file, ONLY for the "current time."

My work around for this limitation in the past was to call contractUpdate in tock, when TMF runs after tock. Thereby providing the latest contractPrices to TMF.

In 2.40, you guys changed the execution order from tick, tock, TMF, run to: TMF, tick, tock, run.

As a result, the current time for TMF lags the options chain time for exactly 1 Bar, or 1 tick (if TICKS flag was applicable).

Since options price and UL price are mathematically correlated, it is wrong to have priceClose() and contractPrice() be from 2 different times.

I've been trying to explain this for the past few days, and I can't seem to be get through.

I don't know what the reason was to change the execution order to TMF, tick, tock, run after many years.

I am saying this new execution sequence is fundamentally wrong in backtest. If backtest is flawed, what's the point of live trading?

jcl said this earlier "when triggered by a price quote the TMF always runs before tick. It must react fast to the new price."

v 2.40 reacts fast to the latest UL price ONLY, but not the latest contractPrice.

Change the execution order back to tick, tock, TMF, run, and everything will be fine.... at least for backtest.

Thank you.