Forcing strategy execution 5 minutes before the end of the day
Author: BCode
Creation Date: 2/24/2017 12:14 AM
profile picture

BCode

#1
I have developed a trading system that uses a 60 minute scale. This means that every hour the strategy executes with the last executable execution happening at 3:30pm EST. When signals are generated at 3:30pm I can execute my trades no problem. However at market close, my strategies automatically execute again (4pm EST) which more often than not leaves me with buy or sell signals that I can't execute. When manually trading I can keep track of these and execute at market open, however when paper trading any orders that get placed at 4pm get immediately cancelled and then I can't do anything with the orders.

What I would like to do is force my strategy to execute at 3:55pm so I can place all orders before the close and then not let the strategy execute at 4pm to eliminate the issue I have encountered. Anyone have any idea how to go about doing this?

Brian
profile picture

Cone

#2
The only automated way to do this is to use a smaller interval.. 5 minute bars to execute at 3:55, or 1 minute bars for 3:59, etc.

You can still run the strategy using indicators from the 60 minute scale by creating and synchronizing indicators with SetScaleCompressed(). However, if you need to update those indicators at 3:55 in order to generate signals, then you have to go an extra step to create a partial bar result. I have routines to do that for a handful of standard indicators (SMA, Stoch, etc.).

Finally, in the smaller scale, it's trivial to avoid to executing the strategy after any given time.