Mike Bryant
I also noticed that all your symbols are 30 minutes. Sometimes all it takes
is trying a different bar size. Although I think I already mentioned this,
it probably bears repeating: try including the recent data in the in-sample
period to (1) extend the length of the build (in-sample) period and to (2)
include the more difficult period in the build process. Then perform your
OOS testing in real time. The in-sample periods you're using are not
particularly long either, so it may be a good idea in general to use more
data.
Mike Bryant
One idea I had was a user supplied indicator that would act
specifically as a Trading Filter. Take the excessively simple case of
building a model for trading long with daily bars. If I was interested
in a model that only traded when the 50 day MA was above the 200 day
MA, then I could supply an indicator that was a 1 anytime that 50MA >
200MA and 0 at all other times. If Builder limited its entries to only
those bars when the Trading Filter was a 1 then I would have control
over finding models that operate at times I feel the market character
is similar enough to warrant using the model.
If Builder supported just __ONE__ Trading Filter input then I could
generate my filter data at any level of complexity I felt worked in my
favor and (I hope) the changes to Builder would be fairly minimal,
along the lines of what it already does with the trading time period.
Just add one more term to TimeOK such as:
TimeOK = (Time >= StartTrading) and (Time <= EndTrading) and
(TradingFilter = 1);
Just an idea.
Cheers,
Mark
Mike Bryant
It's pretty easy to imagine a number of market characteristics that
start to limit the percentage of bars you're looking at. Even a moving
average pair, along with price position above or below, and maybe high
& low volatility, starts to get you into some fairly small groups,
like less than 20% of the bars.
I don't expect Builder today to understand that I can trade 5
different models, each covering 20% of the bars. It just doesn't see
that sort of thing. (Yet!)
Thanks for keeping the idea on the radar.
Cheers,
Mark
I am unable to post this reply on the Google Group. I send it by e-mail.
Thanks for your advice. I like to implement your advice after I understand
some of your points.
You mentioned two main reasons for the strategies don't perform on new data
are that the strategy is over complex and overly fit as well as the market
changes.
1. The strategy is over complex.
How to measure the complexity of a strategy? Is number of inputs counted for
the complexity?
How many inputs are considered too complex? Among my five examples, the
input number ranges from 5 to 21. Should I strive for inputs less than 5?
2. Market changes.
How do I measure the market change? Market moves from trending to
consolidating or volatility changes? In my five examples, the OOS profit
peaks occur on 3/29/2011, 4/5/2011, 5/10/2011 and 6/28/2011. I cannot tell
that the market (SPY) changes.
3. Extend the length of the build.
How many bars do I need? I have 4900 (30m) bars for TNA and 2600 (30m) bars
for SPY.
4. Change bar size.
Use smaller or larger bar size or both?
5. OOS testing in real time.
This is going to take several months to get enough trades to be
statistically significant. This discards the nice feature of OOS in the
Builder. There may be an effective alternative. I like your answer to
John4Bucks on Oct. 19, 2011 that optimizing the strategy parameter values on
OOS data after the strategy performs well in OOS. Right now, we can do this
in TS. But TS optimizes the strategy based on net profit only not the
fitness. Can we do the fitness optimization on parameter values of selected
strategy in Builder?
Having said that, I'm working to add flexibility to the program so it will
be possible to optionally specify more things at the level of strategy
logic. At some point, I expect to make it possible to specify arbitrary
trading logic as a starting point, which would satisfy your request.
Mike Bryant
Subject: Re: Strategy to perform beyond out-of-sample period.
On Sun, Jan 8, 2012 at 2:34 PM, Michael R. Bryant
<m...@breakoutfutures.com> wrote:
> I understand what you're asking, but that tends to go against the idea of
> the program. It's the program's job to find the logic; it's your job to
> specify what you want based on a higher-lever description (i.e.,
> performance). If a moving average filter is suitable to give you the
> performance you're specifying, the program should do that.
>
If we only wanted to test one contiguous time frame then yes, the
program _should_ be able to do that. However it might not find it, and
why use the computer time _hoping_ the program finds the filter we're
looking for. For clarity, I used the moving average example earlier
because it's a pretty typical filter for looking at end-of-day
trading, but not because I'm interested in that specific filter.
In my case there are two things that come up in this area that today
the program simply cannot do:
1) My filters use many bits of math (descriptive statistics, calculus,
etc.) that are far outside of the standard indicator type math that
the program understands today.
2) I absolutely do _not_ want to look at contiguous time frames. In my
case I might want to model operation in Builder over a recent 1-2
month time period, but then I want to evaluate overa much longer
timeframe anytime the filter identifies that type of trading period
where I expect, according to my filter, that it might have occurred 40
times in the last 10 years, etc..
> Having said that, I'm working to add flexibility to the program so it will
> be possible to optionally specify more things at the level of strategy
> logic. At some point, I expect to make it possible to specify arbitrary
> trading logic as a starting point, which would satisfy your request.
I do appreciate your considering this as time goes forward, along with
some of the other requests we've made, most specifically for me the
ability to optimize based on different sizing formulas, most
specifically being able to target specific Kelly & Optimal f values of
interest.
Thanks & cheers,
Mark
Yes, position sizing is on my list.
Mike Bryant
Subject: Re: Strategy to perform beyond out-of-sample period.
ya, you are right Mike ... the MA crossover thing was a bad example