When my data frequency is daily, the triggering time of onData is only at midnight each day. Assuming a certain options contract expires on the 21st, onData will only trigger at 0:00 on the 21st and 0:00 on the 22nd. When it triggers at 0:00 on the 21st, the options contracts expiring at 4:00 PM on the same day do not have their final prices yet. When it triggers at 0:00 on the 22nd, the expired contracts have already been removed from the options chain, and I cannot access their final prices.