Pattern Based Strategy Design

Any thoughts on parameter combinations to try? Think of this as a bit of black box in which you think of some indicators or values that "might" have relevance. Then the system tests through looking for patterns and tells you if there is any edge there.

I have tried a lot of combinations that were unable to produce any statistically significant results. Then others that have produced tons. So clearly, if you feed it garbage, you will not get any patterns meeting the required thresholds.

I am currently testing:
AddParam(RSI(7,1)[0]," ");
AddParam(RSI(7,1)[1]," ");
AddParam(RSI(7,1)[2]," ");
AddParam(RSI(7,1)[3]," ");
AddParam(RSI(7,1)[4]," ");
AddParam(RSI(7,1)[5]," ");
AddParam(ADX(21)[0]," ");
AddParam(ATR(7)[0]/Close[0]," ");
AddParam(RSI(Volume,7,1)[0]," ");

This parameter combination is generating a lot of great patterns. Interestingly, just
AddParam(RSI(7,1)[0]," ");
AddParam(RSI(7,1)[1]," ");
AddParam(RSI(7,1)[2]," ");
AddParam(RSI(7,1)[3]," ");
AddParam(RSI(7,1)[4]," ");
AddParam(RSI(7,1)[5]," ");

By itself is not enough to create patterns that can exceed the required thresholds. Requires some indication of ATR and Volume.
 
Is there little interest from the general community for exploring this type of strategy development? Or is everyone just waiting to see where this goes?
 
I've fooled with similar things in the past. I recall that (backtest simulated) performance was improved when trades were entered using price orders (stop, limit). If the goal of the system is to see a favorable move and then jump aboard, stop orders helped. If the goal is to fade a move and bet that price will revert to the mean, limit orders helped.

It also helped to have a time-stop (if trade is older than X bars and no exit signal yet, get out anyway).

Finally it helped A WHOLE LOT to develop the system(s) on one slice of price history, then after they were frozen, test their out-of-sample performance on a completely different slice of price history. No peeking!
 
Quote from frostengine:

Any thoughts on parameter combinations to try? Think of this as a bit of black box in which you think of some indicators or values that "might" have relevance. Then the system tests through looking for patterns and tells you if there is any edge there.

How about adding in some indicators from the daily charts? Does your 5 minute RSI buy signal work better when the daily RSI is below 30?

Why not also try testing some stuff that is external to your market: NYSE vol stats, put/call ratios, vix, etc? One thing I catch myself doing is spending time doing what's easiest. Then I imagine all the other systems testers out there also avoiding stuff that takes too much work and wonder how much edge they're missing.
 
Quote from MGJ:

I've fooled with similar things in the past. I recall that (backtest simulated) performance was improved when trades were entered using price orders (stop, limit). If the goal of the system is to see a favorable move and then jump aboard, stop orders helped. If the goal is to fade a move and bet that price will revert to the mean, limit orders helped.

It also helped to have a time-stop (if trade is older than X bars and no exit signal yet, get out anyway).

Finally it helped A WHOLE LOT to develop the system(s) on one slice of price history, then after they were frozen, test their out-of-sample performance on a completely different slice of price history. No peeking!

Good suggestions. This current strategy has ONLY a time-stop. However, soon I will need to start building a more logical exit. Will explore the use of continuing a time stop.
 
Quote from rdg:

How about adding in some indicators from the daily charts? Does your 5 minute RSI buy signal work better when the daily RSI is below 30?

Why not also try testing some stuff that is external to your market: NYSE vol stats, put/call ratios, vix, etc? One thing I catch myself doing is spending time doing what's easiest. Then I imagine all the other systems testers out there also avoiding stuff that takes too much work and wonder how much edge they're missing.

I like this idea lot. So far, all the patterns have been focused on single time frame/single instrument. I think the sky is the limit once I start including other instruments and time frames into the mix
 
Quote from frostengine:

Any thoughts on parameter combinations to try?


Hi Frosty,
I don't understand what do you mean by pattern? Here I do not see conditions on going long or short. Or do you use later on some combination of those parameters and constant values?

Like RSI7 > RSI3
or RSI7 < 10 AND RSI 3 < 15

or do you feed all those RSI3, RSI7, ..., ATR5 ... as inputs for NN which is trained to predict 5 bars forward?

Answering your question, try using EMA of different periods

RR
 
Quote from RedRat:

Hi Frosty,
I don't understand what do you mean by pattern? Here I do not see conditions on going long or short. Or do you use later on some combination of those parameters and constant values?

Like RSI7 > RSI3
or RSI7 < 10 AND RSI 3 < 15

or do you feed all those RSI3, RSI7, ..., ATR5 ... as inputs for NN which is trained to predict 5 bars forward?

Answering your question, try using EMA of different periods

RR

Or even use an sma and an ema of the "same" period with one weighted to close and one weighted to open . its a crazy idea but warrants some exploration
 
Quote from brisvegas:

Or even use an sma and an ema of the "same" period with one weighted to close and one weighted to open . its a crazy idea but warrants some exploration

Not so crazy - I have something similar, a moving linear regression of the high and one of the low forming a channel.
 
Quote from RedRat:



or do you feed all those RSI3, RSI7, ..., ATR5 ... as inputs for NN which is trained to predict 5 bars forward?

Answering your question, try using EMA of different periods

RR

The indicator values are passed as raw values to a specialized NN that learns underlying patterns with those values that at the moment are being trained to predict if the price will be higher or lower 5 bars from now.

For example:

AddParam(RSI(3,1)[0],"RSI3 ");
AddParam(RSI(7,1)[0],"RSI7 ");
AddParam(RSI(14,1)[0],"RSI14 ");

Means I am adding the values for RSI(3), RSI(7), and RSI(14) as inputs.

Then this prediction can be used to build strategies around.
 
Back
Top