Search | User Listing Vidsite | Calendars | Quotes
Home Page ->  Custom TradeTight Routines -> MTV Market Trend & Volatility -> View ThreadLogon (or Register, or Join TradeTight)

You are logged in as a limited-access Guest.To join TradeTight, first read the info in the Organization & Content room, then click the link above. 

Ecclesiastes 7:8 (NKJV) ... The end of a thing is better than its beginning; the patient in spirit is better than the proud in spirit.


Sticky Find Best MTV Pattern, Using OT StratWiz
Frozen
Jump to page : 1
Now viewing page 1 [50 msgs/pg]
Jump to room :
JimDean
Posted 1/25/2016 3:02 PM (#7018)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
Many of you have asked me: "What MTV Patterns would be best, for improving performance with such-and-such an OmniVest System (or "class") ... or with so-and-so an OT/VT Nirvana-plugin Strategy." Eventually, I will provide Collections that provide good starting points for specific arenas like that, and some TunedSets that offer more sophisticated opportunities.

But there's no need to wait for that, if you own the MTVcore or MTVxprt plugin, and have an active Subscription that unlocks the use of "Return" values, so you can use them as function-calls.

This thread will show the MTV plugin owner how to efficiently and scientifically decide which Guru settings to use for optimally filtering any given OT/VT/OF Strategy ... and since most of the 53 OmniVest Systems have similar counterparts in various Nirvana Plugins and ARM Strategies, this same process can identify which of the 100 MTV Library Scripts will be likely candidates for improving OmniVest Strategy performance.

Since many MTV'ers want to work with OmniVest, or OT/VT/OF in parallel with OmniVest, this thread will structure the tuning/selection process around the 100 MTV Library Patterns (a subset of the 810 MTV plugin Guru patterns), but the procedure is the same for use purely within OT/VT/OF standalone platforms ... applicable to the full scope of Guru settings, and extendable even to Expert settings. And if MTV settings are found "outside" of the 100 Library Patterns, they can be readily converted to Scripts for use in OmniVest.

IMPORTANT:

Before you start using Strategy Wizard to "fine tune" the MTV parameter settings, it's essential that you first develop a bit of "horse sense" about how MTV functions. First of all, click here to read a general description, and *play with* the indicator on a chart, to get a feel for how the three "Guru" inputs work (2nd-4th for MTVcore, 3rd-5th for MTVxprt).

*Before* working with StratWiz to tune an MTV filter for use with a particular Strategy, plot MTV on the chart. Use Edit>DataPeriods to load at least 785 daily bars, to show the MTV states for the past 520 bars (two years), with the MTV TradeLen parameter set for its "highest" slider value. Now activate the Strat you are interested in, and expose the voteline so that you can see when the trades begin and end (no need to look at the inner workings of the Strategy, unless you're interested in them).

With your chart set up that way, examine several Symbols ... the four that I use in the MTV Library examples are very good for the time period covering 2/14-1/16: CAT, WFM, ATVI, WYNN ... they show a lot of trend and volatility variations in different patterns. As you look at each chart, note the bar where the Signal for each trade's entry occurs (green or red triangle on voteline, with vertical lines on chart showing the trades (Right-Click on Chart > Properties > Trades > Plot Voted Signals on Charts). Important ... if your Strategy does not fire many trades during that two year period, you will have to be careful in the SW Testing to make the test period *long* enough, with enough symbols, so that many trades are included (at least 100, ideally 1000).

OK, now engage eyeball and brain ...

When you see Long Entries on the Voteline, check if MTV is showing a Green Histo on those bars ... and check for Red Histo's above the Short Entries. If the colors don't match the trade direction, then the MTV filter will block that trade. That's good, if the trade is a "loser", but it's not good if the trade is profitable in the "way" that this Strategy is supposed to be working. If you find consistent mis-matches between MTV colors and the profitable-trade Entries, then you need to change the MTV Guru settings so that MTV "allows" those entries to pass.

When fiddling with MTV Guru's, *first* vary the *first* (TradeLen) Guru ... it has the greatest impact ... then if you need to, vary the second (Response) Guru ... but for this purpose, it's best to leave the third BiasThresh Guru in its center-position. When you change a slider to a setting that seems to work better, check the other charts (at least those four symbols!) to see if that setting improves things. It won't take you long, using this method, to figure out the likely "zones" of Guru settings that will be helpful for that Strategy. Hint: don't start this learning process with an RTM strategy ... they are "counterintuitive" ... start with some kind of Trending strategy instead.

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 1/25/2016 3:03 PM (#7017 - in reply to #7018)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
OmniVest currently has no easy way to "loop through" a bunch of optional "Conditions", applying each to a given Strategy to see which works best ... but owners of an MTV Plugin will be able to side-step that limitation, by letting OmniTrader's Strategy Wizard do the work!

Here's the How-To (this is also a "practical tutorial" on using StratWiz with Filter Blocks):

A. We are going to use a "call" to MTVcore/MTVxprt within a Filter Block, so you need the syntax for that. Plot MTV on the chart, doubleclick to open parameters, click Restore Defaults, and change the final input to "-1". Click "No", and a popup will provide you the MTV "call" syntax that matches the current (default) settings. Copy that formula temporarily into NotePad, close the popup, and click Cancel so that the MTV settings return to what they were originally.

B. Modify the NotePad formula to prep for this use. We will initially be working on a Trend filter (later in the thread we will address Volatility), so change the second-to-last formula-parameter from "1" to "2", so that the MTV output reports -3=Bear to +3=Bull Trend (rather than T.V mix using "1"). Now, replace the first Guru-input (MTVcore 2nd input, MTVxprt 3rd input) with a variable (ie "TLenS2L"), and replace the second Guru-input with a variable (ie "RespQ2E"). Save the Notepad file (maybe "TLenResp4FB.txt") for later use.

C. Decide on what OT Strategy you want to optimize (quite possibly, one that's a "parallel" of an OmniVest System), activate it in OmniTrader, and open up the Strategy Block Diagram editor. Before doing anything else, click SaveAs and give this Strategy a new name ... maybe just add "MTV" to its existing one. Now ... add a new Filter Block after the Vote Block (OK if there is already a FB in the Strat ... just add a new one), and Add a new filter (right click to rename it "MTV Tuning"). Now, copy/paste the MTV "call" from the NotePad window into both the Long and Short filter entry areas.

D. Convert the two MTV-calls to Boolean (True/False) formulae ... if the MTV value is > 0, then it's a Bullish state, good for Long trades ... so, right after the MTV call in the Long filter field, type in " > ReqdVote". When MTV is < 0, it's a Bearish state good for Shorts, so type " < -ReqdVote" (note the negative sign!) after the MTV call in the Short filter field. To "focus" the Longs formula only on Bull states, change the third Guru input (after "RespQ2E") to "8", and to focus Shorts formula only on Bear states, change that input to "0". That's it ... the Filter Block formulae are all ready to go now. *Never* check the "optimize" boxes anywhere in the Filter Block (or elsewhere in the Strat), when you are doing Strategy Wizard testing ... optimization is a big topic on its own ... the back-and-forward-test date settings for our SW runs would *not* be correct for optimization, anyway.

E. Add those three "variables" in the top right pane of the FB ... for the "TLenS2L" & "RespQ2E" variables, set min=0, max=8, increm=1, def=4. For the "ReqdVote" variable, set min=0, max=2, increm=1, def=1. The min/max/increm settings are *not* important for these tests ... SW ignores them and follows its own cycle. You're done with the Filter Block ... click OK, then click OK to save the modified Strategy (or, if you didn't already rename it in step C, click SaveAs and do so now.) Finally, check the box in the Strategy list for your new Strat, to make it active, and click OK. Info: when ReqdVote =0, all "strengths" of Bull|Bear states appear: a Vote of 1 is an "incipient" Bull state (-1 for Bear) ... when =2 (-2 for Bear), BB states appear if "confirmed", and if =3 (-3 for Bear), BB states appear after Trend is "mature" ... if Vote=0, Trend is Flat.

F. You need to make sure that the StratWiz test is done over a "representative" time frame. Be *sure* to click here, read the explanation and look at chart to pick a good window. Load in enough history to cover that timeframe via Edit > Data Periods (add about 265 extra bars for MTV max warmup needs). Now use Ctrl+S > Test Settings to set a Fixed Back Test Period that covers the range specified in that chart-zone ... and select a ONE-day Fixed Forward Test and ending with the Backtest End date (this process needs no separate FwdTest). Check if #loaded bars is adequate: set the plotted-MTV's TradeLenS2L input =8, and check if the plotted MTV indicator fully overlaps the BackTest Date Range - increase DataPeriods if you need to.

G. It's also important to do your SW experiments using a representative Focus List. If you have one in mind to use in OmniVest, then set up the OT list the same way (OT2016 now has Dynamic Lists!) ... but keep in mind that longer Lists and longer Backtest windows mean the StratWiz run will take longer. Ideally, use the same lists, and let SW run overnight if necessary. Suggestion: for a fairly short focus list, start with either NAS100 or SP100 ... for a long list, start with either Rus3000 or Optionable. Then use OT's Dynamic List creator to pick out the Symbols each day that had high CashFlow in a reasonable price range ... the Condition formula might be: SMA(V*C,50) > 1e7 and SMA(C,50) > 5 and SMA(C,50) < 500 ... with Ranking formula: SMA(V*C,50) ... and Sym-Limit of about 1/10th of the starting population list (ie 10 or 300).

... pause to double-check ... did you do the eyebal+brain exercise described as "Important" in the prior post? If not, go back and do so *before* proceeding. You need to make sure there are an adequate # of trades for SW to evaluate ... the exercise helps you assure that.

H. Open Tools > Strategy Wizard, and immediately change the Output file to store your setup and results with a unique name. After that, select your Strategy from the dropdown, and click Add ... the Block Diagram will open ... doubleclick on your Filter Block ... the Filter you created will be highlighted. Click on the TradeLen variable, and the "Custom Optimization" radio button. Type "1,3,4,5,7" in the field, and click OK. Repeat that for the Response variable. For the ReqdVote variable, use the Optimization method with min=0, max=2, increm=1. Click OK to finish entry, and OK again to close the Strategy view.
I just found out that SW now has a bug in the Custom Optimization feature. So, for the time being, use the Optimization option also for TradeLen & Response: min=1, max=7, increm=2 ... this skips over the "4" Library option ... if you're not limiting this to Library patterns, then you can make increm=1.

I. Run StratWiz (either in Analysis mode or using PortSim if you want to include position sizing - there are good reasons for either approach). SW will run quickly, since it's only evaluating a few cases ... and *none* of the permutations are "junk" ... they all represent legitimate MTV Library patterns (if you use increm=2, above). Spend some time looking over the Results table, and choose the best 1 or 2 cases, considering whatever statistical measures you think are important ... I suggest PPT as a good starting point, and also look at HitRate and make sure that NumberTrades is high enough for the stat's to be representative ... if you use the PortSim method, look at the ROI/WDD ratio (equiv to Calmar), and the WorstDrawDown %. More about Analysis vs PortSim SW output stats, four posts below.

Finito! You now have identified the best-candidate MTV Library Patterns for that OT Strategy ... which is great for trading in OT directly ... and hopefully "transfers" well to OVest - that depends on how closely your OT Strat represents the System(s) in OV. Oh yes ... once you've decided which is best, go back and fill in the TradeLen, Response and ReqdVote values that you found to be best as the "default" for those Filter Block variables ... and *save* that Strategy with its revised name, for future use.

... and yes, I know ... more explanation and a video will help but it gives you the idea ...

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 1/25/2016 3:36 PM (#7019 - in reply to #7017)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
OK ... after you've done at least one example of the procedure in the prior post (no need to move over to OVest yet) ... and saved those Results (including SW runs) ... try out this "enhanced" approach that uses the same concept but adds useful refinement.

The prior example did 5*5*2=50 iterations or 4*4*2=32, trying out different Patterns for the two filters (Long and Short). Your "best case" selection identified a single mix of TradeLen & ResponseMTV Pattern (with 0=Short/Bear and 8=Long/Bull variants), along with the ReqdVote value to use, that improved the net result of the strategy run.

But ... as I'm sure that many have you have thought by now ... why should we presume that the *same* MTV pattern is "best" for Short vs Long signals, in this particular Strat?? For example, typically Shorts are quicker than Longs, and they occur after the end of a mature Bull run, while Longs are usually "less dramatic" moves, and the best cases might be nearest the beginning of the run.

So, the next step is to find the best pattern for Long trades, *distinct* from the best pattern for Short trades. This is very easy to do:

1. Bring up the custom Strategy that you created in the prior step, and immediately save it with a different name ... maybe add an "L" after the "MTV" (ie optimizing Long trades). Open Filter Block.

2. Replace the Short filter formula in this newly named strat with the word "false" ... or, leave the FB the same and go to the System Block and select "Longs Only". Click OK, OK to save the changes.

3. Do steps H & I as described in the prior post ... the "best case" Patterns you find this time will be for Long trades ... and should be applied in OmniVest as such. Use Bias=8 (BullCalm) Boolean Script if best-case ReqdVotes was "0"; use Bias=4 (BlBrWdCm) Boolean Script if best ReqdVotes option was "1" ... if using a Scaling Script, add "0 < " or "1 < " as appropriate, just before the start of the Script.

Now, repeat steps 1-3 above, naming the strat with "MTVS" suffix since it's seeking the best MTV Pattern for Short trades ... the only change is step 2 should either modify the Sys block for "Shorts Only", or modify the FB by using "false" as the Long Trades filter rule.

Remember to go back after selecting the best case options and change the FB variable default values in your two new custom Strategies, for future use or testing in OT. For OVest Shorts-only Scripts, Use Bias=0 (BearWild) Boolean Script if best-case ReqdVotes was "0"; use Bias=4 (BlBrWdCm) Boolean Script if best ReqdVotes option was "-1" (use Boolean Scripts as-is) ... if using a Scaling Script, add "0 > " or "-1 > " as appropriate just before the start of the Script.

Finally ... put it all together into a single OT strategy (in OVest it will have to remain two separate Long and Short strategies unless L&S Scripts are exactly the same) ... pull up your original MTV strategy, rename it to maybe MTVLS, and replace all the TradeS2L and RespQ2E and ReqdVote variables in the formulae with the actual values that you decided upon from the SW run.

... of course, now that you have done this, you might try "wiggling" other param's for the System or Stop, with those filters active ... but if you do that and if you settled on different param values for the other Blocks, it's probably wise to go back and repeat the Filter tests just to be sure they don't need a little tweaking ... but all of that doesn't really matter if your goal is to apply this in OmniVest, since the OT Strat is only an approx of the OVest system ... so don't waste too much time on this unless you want OT to be managing your trades.

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 1/25/2016 3:53 PM (#7021 - in reply to #7019)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
There's one more factor to consider, when you move these optimized Scripts into OVest. Your OT tests have been run with the Filter being applied *independently* to each symbol in the Focus List (which, presumably, was a list fairly similar to the one you'd be using in OVest).

But, at least at this time, there is no way to instruct OVest to apply a Strat Condition filter independently for each Sym in the List attached to that Strat ... you have to choose a "reference symbol" to act as a "proxy" for the entire List. The two can be forced to be equivalent if you make your List have just one symbol ... MarkH & LD have done a lot of work on that ... but that's way beyond the scope of this general-purpose HowTo :~)

So, now that you've found good solutions using SW in OT for the "independent-symbol" approach, I suggest you save those SW statistics ... and redo the Long/Short tests just as described in the post above ... but this time, specify a "proxy symbol" in the FilterBlock (right side of pane) like $SPX (or whatever) ... rerun the SW tests, and *compare* the statistical results with those you got from the first set of "independent symbol" runs. Who knows - maybe the proxy results will be better ... it's very likely they will be *different* (ie different "best" MTV Patterns) ... and my generalized guess is that usually they'll show somewhat *less* benefit than the independent-symbol method.

This means that you need to go on an Easter-Egg hunt for the "best" general-proxy Index (or ETF or MG, etc) symbol to use. Once again, StratWiz MTV analysis comes to the rescue!!

This time through, you do everything the very same way as in the prior post, but you add one more variable to the FilterBlock list ... "AltSym". Modify the Filter-formula MTV-calls, replacing the AlternateSymbol "0" input with the "AltSym" variable, and setting it up in the FB table with min=0, max=20, increm=1, def=8 ($SPX). And, when you do the SW run, add a third option to the iterative setup: AltSym = 1 to 10 by 1's ... don't bother with 21-40 since there are some wierd metrics out there, and save 11-20 for later to save SW calc time (it will be long enough already with these 10). If you have a Subscription, there are 200 other Indexes, and 252 MGs that you might use, but that's way too much to consider for now.

The process works exactly the same as described earlier ... best if done separately for Long and Short ... but it will take longer for SW to calc since it's now 50*10 = 500 permutations. When the run is done, be sure to examine not just the TradeS2L and RespQ2E settings, but also the AltSym setting, to determine what the best MTV Library Script Pattern is for use in OVest, but also the companion best-Index-symbol-proxy to use for the Strategy Condition.

Hey ... lots of words but still, the process is *simple* ... and *efficient* ... if the SW runs take a long time (bottom of SW box tells you how long "to go"), just do the runs overnight.

... but there's yet another cool path to take, USING these results ...

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 1/25/2016 4:20 PM (#7023 - in reply to #7021)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
Two posts ago, before we addressed the need to search out a "proxy symbol" for use with OVest Strategy Conditions ... we found "best case" solutions for the filter-each-list-symbol-on-its-own approach. OT does that naturally, though you can "emulate" the OVest mode by filling in a symbol in the FB field ... much more on that, another day :~)

There is another way to use that best-for-independent-symbols Pattern that you arrived at ... in Dynamic Lists. Y'all know from the MTV introductory video (Bash presentation), and my incessant promotion of DL's, just how strongly I feel about their value. Well, here's a case in point!

Procedure:

a. Once you find the best-case Long and best-case Short Scripts per two posts ago, *use those Scripts as Conditions* for two different OmniVest Dynamic Lists ... one DL for longs, and the other for Shorts. Sort the lists by CashFlow = Avg(C,5)*Avg(V,50), and peel off the top 100 or so symbols in the DL spec's (see item G in the second post of this thread). Attach those DynLists to the target System(s) in StratLab, doing Long and Short studies separately, and NO other conditions in StratLab. Save the results via a snapshot or export.

b. Now ... do this separately, *not* using those DL's but rather, use a generic DL "Liquid" list with similar Ranking but cutoffs higher for more symbols ... maybe 5x as many (since they are not "high quality" like the previous DL sets). Run OV's StratLab separately for Longs and Shorts against your target System(s), using the MTV Patterns and AltSym's you discovered in the prior post, and Save those results.

Rubber meets the road now ... compare the results from "a" and "b". Both use similar concepts, but where "a" applies the MTV rule to each symbol separately, "b" uses a proxy. Probably, "a" will be better ... maybe a lot better, maybe not ... depends on your starting population and how closely the symbols in the list are correlated with the proxy-symbol in the Condition.

The "gotcha" is of course that most users are allowed only three DL's ... some "scientists" might convince N to give them ten DL's ... but even that's probably insufficient for really "working" this fully. IMHO, the obvious and simplest solution is what I promoted earlier (at the Bash and before) ... OVest needs a DL "export" button that automatically builds equivalent Historical Lists, which have no limits on them. IMHO, the Hist Lists created by MTV rules would only "need" updating maybe once every week or two ... a manual process, unless N automates that as a weekend task. Hopefully, this will bubble up to a higher priority for them ... but in the meantime, the procedure that I've suggested using OT is the best.

THERE IS A WAY to make this work, *as OmniVest is, now*. All you have to do is to separate the "discovery and tuning" phase of this journey (that these posts have been dealing with) from the "lock it down and let it trade" phase ...
Once your discovery/tuning process is complete, and you've found the best DL-rules using the MTV script you found two posts ago, then use OmniTrader's OmniScan with the same MTV Script in it that you used in the OmniVest DynamicList during the discovery phase, to find the MTV-culled Symbol List for the current HardRightEdge. *Do this maybe once a week*, and copy those symbols into the Static List that is permanently tied to the System in OmniVest - and then watch the dollars in your account mount up!

... did that help? if you want, there is MORE you can do! ...

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 1/25/2016 4:46 PM (#7024 - in reply to #7023)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
Don't forget about VOLATILITY.

All the prior posts have been optimizing Trend variants in the MTV plugin call, and Trend Scripts for OmniVest. That's the best place to start, because (intuitively, but few would disagree) the performance of a Strat probably "tracks" more *consistently* with Trend States than with Volat States.

But, Volatility *does matter*. You can (and should) prove this for yourself. How?

Use the same method ... including all the posts before this one ... but this time, when doing SW iterative testing in OT, change ONE VALUE in the MTV filter-formulae ... make the second-to-last input param a "3" instead of a "2" (so that the -3 to +3 output represents Calm to Wild Volatility). That's it ... go through the whole thing all over again ... and undoubtedly you will find that *different* MTV Patterns bubble to the top to optimize for Volatility, than you saw for Trend. That's OK ... you can use both!

=== (a long pause while you repeat the work :~) ===

After you get done, you'll have two sets of "best-Script" solutions for that OmniVest System (or maybe class of Systems, like RTM) ... one relating to Volatility and one relating to Trend. You'll have determined whether the one-symbol-at-a-time application via a Dynamic (ultimately a Static) List is a lot better, or whether an appropriate Proxy symbol used in Strat Lab is sufficient so you don't need to do the weekly updating of the DL's.

I'm sure you've figured out where I'm going with this now ... COMBINE the MTV Scripts for Trend and Volatility, for even greater performance improvements !

If you've used the best-case Trend Script in a DynamicList (=>StaticList for actual trading), then attach an "and" to the end of that Script, then paste in the best-case Volat Script - this applies both filters to every symbol, every day ... it will significantly cut down on the final Symbols selected, but they will be real "gems".

However, it may be that "and-ing" them in the List just gets too "picky" to work out, especially if you start with a fairly small population like the SP100 or SP500. If you only get a very few adequate-volume MTV-T&V-qualified symbols as a result (check TPM and equity utilization), then you'll run into the problem that the OmniVest System might not "cooperate" and fire an Entry signal for those symbols on the days they appear. You can try checking the box to "Enter Positions" (late), but sometimes that will be *too* late to help. If that's the case, then try this:

Filter the List using *only* the Volatility Script ("and" with CashFlow), and filter the Strategy using *only* the Trend Script (with proxy symbol). (Or, vice versa ... easy enough to test which works best for your situation). It would not make sense (barring serendipity) to "and" the two Scripts in a Strat Condition, since they likely are based on different proxy-symbols (from your SW test). So, decide which of the two Scripts (Trend or Volat) provides the greatest performance improvement using the List approach, and use that Script there (with CashFlow) ... and put the other filter in as a Strat Condition (with its proxy symbol).

OK ... I know that the description started really "zooming" over the nuts and bolts in the last couple of posts, but hopefully I explained the procedures with enough detail in the earlier posts ... so that as long as you PRACTICE this a step at a time, rather than trying to gobble down all these words and digest them all at once, you'll sail along smoothly when implementing this.

And ... it would be wonderful if you'd tell us about your discoveries! Start a new Thread and journal your adventure for us!

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
JimDean
Posted 2/10/2016 9:48 AM (#7162 - in reply to #7024)
Subject: Find Best MTV Pattern, Using OT StratWiz



Owner/Admin

Posts: 3925
2000100050010010010010025
Location:
USA: GA, Lawrenceville
More about SW Statistics, using Analysis vs PortSim runs ...

Several posts ago, I mentioned briefly the the "best stats" to focus on from an Analysis mode SW run (or ordinary one-shot non-SW Analysis run in OT) are: NT (number of trades), HR (percent hit rate = % of trades that ended up being profitable), and PPT (average percent profit per trade). All of these stats are generic-normalized ... they aren't dependent (much) on the order that the trades occurred, or on account size, or on the relative $-impact of the strat trading a very expensive stock vs the same strat taking a trade on a very cheap stock.

The key fact you need to remember is that Analysis mode buys *one share* of stock for every trade, for any symbol. One share of GOOG ($750), one of CIEN ($20). A given-percentage win or loss for GOOG produces a relatively absolute-$$ profit or loss, compared to the $$-impact of a similar=percentage gain/loss for CIEN. So, in an Analysis run, that share of GOOG will *much* more highly influence "cumulative" stat's like APR and ROI and DD, than that share of CIEN. So, the Analysis-mode APR and DD stats are "whimsical", as a result. Bottom line recommendation ... simply ignore them.

NT, HR and PPT are excellent means of doing "first cut culling". Many folks want to go immediately to Calmar (combo of APR and DD) ... but in real life trading, those metrics are highly dependent on a lot of factors such as order of trades, account size limits and compounding effects, position sizing method, and of course odd blips in the market. So, using Analysis mode to start with not only runs faster, but also helps you narrow the field of parameter permutations, for later more in-depth treatment using the PortSim tools.

------ when you use Analysis mode ------

NT (#trades for all symbols during entire test period) should be high enough to give you a decent statistical sample, in light of the number of symbols and time window you are running. Do this simple check (daily bars): NT / #years / 12 / #syms = the number of live-trades per month per symbol. When you apply a Filter to an existing strat (running in Analysis mode with no Account $-limits), the filter will always (if it's doing any good) *reduce* the NT's. That's a good thing, as long as HR & PPT get better ... but only to a point. If the NT's get *very* low by comparison with a non-filtered run, then it becomes likely that the results are being affected in a significant degree by once-in-a-blue-moon lucky/unlucky-break price-patterns ... aka "cherry pickings". It's hard to assign a guideline for how much NT-cutback is too much ... depends on how poorly the strat performs in unfiltered mode re "nuisance" trades. I'd say offhand that if a filter is cutting out 50-80% of the raw-strat trades, then it's just doing its job. But if it's cutting out 95-99% of the trades, I'd be wary of the results being a legit measure of the efficacy of those filter-settings.

HR (percent of trades that are profitable across the full test) is interesting to eyeball, but you have to be careful not to set "hard limits" in your mind about what's acceptable as an absolute number. It's quite possible to have a good, winning strategy with a fairly low hit rate (30-40%) ... and it's also possible to have a long-term-losing strat with a fairly high hit rate (60-70%). The reasons for this largely have to do with things like curve-fitting (for the high HR loser strat), and with good Exit strat's (for the low HR winner). HR takes on more significance when NT is very high and commission-costs accumulate ... that's often a concern for intraday trading, but with mechanical engines like OVest, it can be a factor with daily bars trading as well, if you let it churn out lots of small trades.

My advice is to be aware of how the HR changes between the raw vs filtered run, *in light of* how the NT and PPT is simultaneously changing. If the NT is going down, and the PPT is going up, and the HR is getting *better* in rough proportion, that's what you want ... the filter is stripping out *mostly* the bad trades. If you start working on improving the strategy Exits (rather than Filters, that work on Entries), then it may be that your HR stays relatively low, but your PPT goes up ... that would be the effect of a "smart" exit cutting off the losers sooner, &/or capturing more of the profit potential for a given run.

Also, remember that HR has a big "psychological" impact. Each losing trade, even if it's only a small loss due to good exits, is like a punch in the gut to a trader. Everyone should consider how sensitive their "gut" is to this, and seek HR's that are within personal tolerances. For example, I'm uncomfortable below about 60%. On the flip side, when I see stat's with HR's higher than about 80%, my skepticism bubbles up re too much curve-fitting having been done.

PPT is (afaik) calculated in the OT engine on a trade-by-trade basis ... profit/loss $$ divided by the share price, separately for each trade, to yield percent gain or loss that's normalized for each stock ... thus a 5% gain in GOOG impacts the PPT stats the same way that a 5% gain in CIEN does ... then those individual PPT's are averaged for the full time window and across all symbols. This is very important since almost all focus lists, even for traders that "target" just a few symbols, include a wide range of per-share (or per-contract or per block) prices. PPT is therefore the *only* reliable statistic to measure profitability for Analysis runs ... APR and DD, etc can be unduly influenced by the *per-share prices* of the symbols that happen to be selected by the strat to be traded, and that share-price (normally) has nothing to do with the Filter-logic tuning-process that is being investigated.

------ when you use PortSim mode ------

PortSim can be set up in a huge number of ways and it's waaay-impractical to discuss them all here. Briefly, re the "Edit Settings" button on the bottom right, for our SW Filter testing purposes, here are some guidelines for each tab:
Trade Source = FocusList, All Strategies, Daily
Account Settings = Start w/$1,000,000 to assure you don't run out of funds; any X leverage, NO cutoff
Trading Parameters = NO constraints, Per Trade allocation, no Re-use
Test Period = Back Test ... control date range via Strat Test Settings so it's the same for Analysis runs
Simulation Constraints = absolutely none
Commissions = combo of broker fees and slippage; I recommend $0.01 per share for stocks
Trade Selection = Symbol Ascending ... long story here but for our setup, it won't matter

NClub members who also own the Turtle Trader plugin have eleven Allocation methods to choose from (tabs along the top of the output chart) ... standard OT offers seven. For the purpose of these runs, we *do not care* how closely the results might model real future trading on our account ... rather, we want to normalize the playing field so that we can utilize the extra SW statistical metrics like APR, DD, ROI, Calmar without being concerned about sequence of trades or price per share. Brief note about Turtle Trader ... imho it's primary value is not the strat's that come with it, but the fact that it adds a "Fixed Risk" allocation tab to Port Sim (last on the list). We will *not* use that tab for our SW MTV-tuning runs, but it's quite useful for managing real-trading allocation.

The Allocation methods are activated for normal PortSim runs via a small "Enabled" checkbox just under the far left tab. If you check more than one method, multiple equity curves plot in different colors. But we do not use that for SW ... I'm not sure if having those checkboxes active matter to SW calc speed, but I suggest that for extensive SW runs, go in to PortSim and *un*check all those boxes to be sure. For your SW runs, the SW control panel has a dropdown next to the PortSim selection that allows you to specify the allocation method. *Use Fixed-Dollar* for these runs. This is very important.

Before starting your SW PortSim runs, you need to go into Port Sim to make sure that the Fixed-Dollar amount is an appropriate size for all trades. To determine the size, first check what the *most expensive symbol* is in your test focus list (highest price during the entire test period ... look at its chart to verify). Multiply that highest-price by 5-10x, and use that rounded-off value as the Fixed-Dollar amount. If GOOG is in your list, the amount might be $5000 ... if you filter-limit your symbols to no more than $100/share, it might be $1000. But don't make the value too small. It must be large enough to buy a few shares of even the most expensive stock, so that the profit/loss of that trade is properly represented. If you have 100 symbols in your FL, and a fixed-$$ trade size of $5k, then you can see why I suggested you make your starting balance $1m ... if a lot of trades hit at once, you don't want any of them to be "alphabetically" skipped due to lack of funds.

If you follow those instructions, then it helps level the playing field when doing a PortSim SW run. It means that the SW results from the PortSim run, which include APR and DD and ROI and Calmar, will be useful for decision-making, since every trade will engage the same amount of capital, regardless of the price per share of the stock. Also, since every trade is the same size, regardless of how much the account grows across the test period, there is no "compounding" effect to bias the results to the behavior of the more-recent trades. This is very important. Note that OVest offers the option to run "Simple" vs "Compounded" simulations ... I strongly recommend that you lock on to Simple mode, when doing your lab-work in OVest.

Thread moved by JimDean on 1/26/2016 2:32 PM from Custom TradeTight Routines > MTV Director's Club > Find Best MTV Pattern, Using OT StratWiz

Top of the page Bottom of the page
Jump to page : 1
Now viewing page 1 [50 msgs/pg]
( E-mail a Link | Printer Version | Search Room )
Frozen

Owner of site: Jim Dean -- Forum content is confidential, and may not be distributed without written permission.