|Tools, Techniques, and Training for Nirvana Platforms|
|OmniTrader, VisualTrader, OmniFunds & OmniVest|
|Proverbs 3:6 (ESV) ... In all your ways acknowledge Him, and He shall direct your paths.|
| Strategy Wizard - General Q/A|
USA: AZ, Phoenix
|Hi All |
I just got SW after Jim explaining in detail the use of the tool - here are some questions on how to use it properly:
1) Should I test all variables in my strategy at once? Or should I test only couple variables at once - for example if I have one system, two filters and one exit - should I test all of them at once or should I test first the variable in the system with once exit or some other combination?
2) I see huge amount of stats as end result - which ones are the key stats to watch - the ones that really matter - HR, PPT and APR?
3) When there are several variables you are testing is seems a little confusing how to detect if the system is robust enough - I found testing that iit seems robust enough in a certain range of parameters but if you go ourside of that range - then performance drop. So you could say is robust - but how much is enough to say is robust?
4) Can someone give an example on how to see in the results that one variable does not make any difference in the results?
Thank you in advance for the guidance
USA: GA, Lawrenceville
|First of all - I'm sorry for the delay in responding. Somehow I missed your post. |
Secondly - anyone with questions of how to use SW to tune the min/max/inc/def param's used by optimization should click here.
Regarding your (very good) questions - I can answer some here quickly but q thorough answer calls for a thorough Video Training topic to cover it.
1) With a couple of exceptions - I do not advise you to test all variables at once. The run will take forever and you'll end up with a huge collection of results that will just confuse you. The exceptions apply AFTER you've done the tuning-legwork for the "main" parameters -
a. Do a run with tuned main params locked to their default values, and with the uncertain params set with very wide ranges and fairly big inc values. Look for cases where the variations make insignif differences in results - those params should have min=max=def, or at most, just two inc-steps from min to max with def in the middle. Goal is to ELIMINATE some variables from optimization-calc's, when they don't make much difference.
b. After doing all main-param tuning, and doing lockout testing, it's sometimes useful to test inter-Block effects. That is, retest param "A" range in the Filter block, with all the System Block params turned on - to double-check that your orig A settings are robust. Caution- don't get too far afield of your orig tuned values.
2) Whatever stats matter the most to you when you look at an Analysis Report, look at those.
3) Hard to give a short answer. Best approach is to focus on ONE BLOCK AT A TIME. Simplify your strat is necessary for this.
4) Examples will have to come later :-( … like I said, this is a big topic.
USA: GA, Lawrenceville
|On the N forum, Marc asked: "Should I test one Block at a time, or all at once?" |
I commented on this somewhat in the prior post (1.a and 1.b), but a broad overview re the up-front "main parameters" testing is probably in order.
I've created a core thread to do this in, since this is technically a Q/A thread ... CLICK HERE
USA: OH, Columbus
|HI JIM, |
MANY THANKS FOR THE SW STEP-BY-STEP EXPLANATION OF SETTING UP A RUN OF A PARAMETER. NOT HAVING EVER RUN ONE, I FOUND THIS IS A GREAT HELP & MAKES ME WANT TO GIVE IT A TRY.
|I recognise this is a very old thread, and am considering SW as there is one thing that is just driving me insane and that is the endless "tweaking" that i'm doing especially with regard to entries, filters and exits |
I use filters for general market direction, for higher highs/lows etc
sometimes these filters should actually be systems in their own right..anyway that aside
generally my question is about the use of mixing and matching filters within a strategy as it were. if i had 5 filters for example in a strategy, could SW test all 5 and give an output of
if i used filter 1 and 2, results are...
if i used filters 1 and 3, results are...
rather than the individual parameters of the filter itself, which is what i would also want to do once ive determined that the filter is actually worthwhile
currently i run a strategy, test it with filter 1, record the results
test the strat with filter 2, with filter 1, and then without filter 1, record the results
go onto filter 3 etc..
can SW save me that pain?
i guess what im trying to get to is, what effect is each filter within the strategy doing to the bottom line
also, if i enter using a MA cross as an entry, vs a donchian breakout as an entry what effect has that on my bottom line
if i use entry 1, vs entry2
i have multiple inputs that could "potentially" work, its getting the right combination of those inputs is what im spending weeks and weeks and weeks of my life doing!
and im not getting any younger..
I could use the new ARM algorithms, however i want input first into what effect its had, before being presented with an algorithm
many thanks for your time listening so far
USA: GA, Lawrenceville
|Hi John |
Very sensible question. I get what you mean.
Yes there is a way to do that.
Consider each alternative filter to be a “rule”. The rule has flavors, based on the details/Params in force (like MA periods etc), but think of it as one “thing”.
So, say you have five candidate rules, and want to figure out what’s the best combo to use. Maybe just #3. Maybe 2 & 4. Maybe all but #5. And so on.
To accomplish this, you write a simple OLang Indicator that has five Params- initially each is just 0,1 (off and on). Each Param is tied to one of your five rules. The rules are contained within the OLang, either explicit (ie just pasting in your OScript rule from the Filter Block), or a function call to a canned rule from a N plugin.
Now your Strat will have just ONE filter block, which has a call to this new shell OLang routine, and five named Params in the FB that SW can see.
Run that Strat in SW, varying each of the five Params from 0,1. Voila!
Taking it further, if a given rule has maybe three flavors (or diff Ma periods etc) that you want to consider, then it’s input would be 0,1,2,3 … where 1-3 would internally cause OLang to use that rule with those different flavors (and 0= off). Your SW run now encompasses all flavors (as well as off) of all permutations of the five rules.
USA: GA, Lawrenceville
|Here is an example of the OLang routine described in my prior post, using two rules, where one of them has flavors and the other doesn't. The Filter Block OScript formula would simply call this routine ... since it returns either True or False. The call would have two FB-defined parameter names (Rule1 and Rule2, I suppose), so that SW can see them to be able to vary them. I've not tested this but I'm confident it's correct. |
#param "Rule1", 0, 0, 1 ' just off/on
#param "Rule2", 0, 0, 3 ' with flavors
dim Flag1, Flag2, FlagC as integer
' Rule 1 is true if C is greater than prior C
if Rule1 = 0 then
Flag1 = -1 ' it's off, so pretend that it passes, to ignore it
Flag1 = ( C > C ) ' returns -1 if true, 0 if false
' Rule 2 is true if C is greater than MA(C,Pds), where Pds = 5, 8 or 13
if Rule2 = 0 then
Flag2 = -1 ' it's off, so pretend that it passes, to ignore it
else ' test Rule2 with desired number of periods
if Rule2 = 1 then
Flag2 = ( C > SMA(5) )
elseif Rule2 = 2 then
Flag2 = ( C > SMA(8) )
else ' Rule 3 = 3
Flag2 = ( C > SMA(13) )
' combine the results from each Rule with "and" ... return is true only if every active Rule passes
FlagC = ( Flag1 and Flag2 )
|that all makes perfect sense, thanks Jim for the response, another little bit of code to go into the notebook. |
amazing how flexible OT can be when you can think outside the box as you did
|Owner of site: Jim Dean -- Forum content is confidential, and may not be distributed without written permission.|