I'm trying to code an intraday strategy that doesn't hold any positions overnight. In order to do this I need to keep the buy limit order from being placed on the bar before the last bar of the day, since if the order gets executed, I can't get out of it on the next bar. I'm using WL5 with autotrading so I can't use SellAtClose orders (not supported). I wrote the following code to flag the next to last bar of the day, and the script runs fine until the last bar of the chart where it throws the following exception.
Runtime error: Index was out of range. Must be non-negative and less than the size of the collection.
at WealthLab.Strategies.MyStrategy.Execute()
at WealthLab.Bars.IsLastBarOfDay(Int32 bar)
etc.....
Any ideas on how to fix this problem or why it's happening?
CODE:
Please log in to see this code.
Size:
Color:
QUOTE:
why it's happening?
It happens because you're going out of range with
Bars.IsLastBarOfDay(bar + 1).
QUOTE:
how to fix this problem
CODE:
Please log in to see this code.
Here's the corrected code:
CODE:
Please log in to see this code.
Size:
Color:
Your solution works fine for back testing, but if you try to use it on a 5 minute chart in a real time (streaming mode) you don't appear to be processing the current bar, always the next to last bar so you can't enter buy signals based on the most recent bars information. You'll note the following strategy works fine in back testing, but in realtime, it never generates an alert.
CODE:
Please log in to see this code.
Size:
Color:
Any ideas on how to get around this problem?
Size:
Color:
Here's a re-write with some nifty functions that I'll eventually add to Community.Components.
The slider for "Today Close" allows a convenient switch to adjust for a short day's close at 1pm.
CODE:
Please log in to see this code.
Size:
Color:
Thanks Cone, that's an interesting approach. So I would just use the slider to manually enter the market close time for that day. I don't suppose there is any way to automate the detection of early market closes, is there?
Size:
Color:
QUOTE:
I don't suppose there is any way to automate the detection of early market closes
Actually there is, but why complicate it? You only need to click the slider when you're trading on days that have an early close.
Note that the backtest part of the strategy already determines an early close from IsLastBarOfDay in the "else if" condition in the exit logic.
Size:
Color: