[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EquisMetaStock Group] Trend Strength Indicator



PureBytes Links

Trading Reference Links

Just to be on the side of clarity, I'm not trying to discourage anyone
from trading with moving averages. I use them all the time. 

The system I mentioned using smoothed moving averages is of course
still a moving average system. 

Even when transforms like Laguerre or the Distant Coefficient filter
are used, they are still a moving average that has had the rough edges
filed off. 

You can mix non-traditional moving averages like the variable moving
average un-smoothed with the smoothed exit I described and find some
very good performing combinations. 

You did a very nice job on the code, Preston. People can use it with
the comfort of knowing it was done right. 

A lot of the code floating around on the internet is poor and doesn't
always give the right values. Let the user beware. 





--- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@xxxx> wrote:
> Super,
> 
> You are correct about the article...problems were losses and 
> drawdowns. Going back and reviewing the entry/exit rules I see some 
> big system flaws. 
> 
> First, entry was when the indicator reached 100. Second, the exit was 
> when the indicator feel below zero. Finally, this was a long only 
> system.
> 
> Looking at the drawdown chart, you can see that the huge drawdowns 
> started in 2000. Weren't we in a bear market?
> 
> My opinion, the system has some serious design flaws but by making a 
> few changes and using this for the tool that it is, I believe it can 
> be turned into a profitable system.
> 
> A couple more points to be made here. 
> 
> First, the market does not trend all the time. I've heard counts of 
> only 20%. That may be true but not all stocks trend at the same time. 
> Which opens the door for the final observation which is selection 
> screening. You mentioned some great prescreening indexes. There are 
> others as well. What we have to remember is that indexes have losers 
> too so just jumping in and selecting from these indexes will not 
> guarantee success. Using the advance/decline to further screen out 
> the deadwood will certainly improve your odds of success. The 
> relative strength will also help in this regard. 
> 
> Thanks for your observations gentleman!
> 
> BTW: I'm a retiree wanabee!
> 
> 
> Preston
> 
>  
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, superfragalist <no_reply@xxxx> 
> wrote:
> > First MG, you definitely have my endorsement on your retirement, the
> > trend strength indicator is another issue.
> > 
> > I've never gotten much out of Active Trader Magazine, and while this
> > particular system is better than a lot of the junk they test, it's 
> got
> > too many issues for me to feel comfortable with it. 
> > 
> > It's very similar to Guppy's multiple moving average system. I like
> > Guppy's as a visual aid in identifying trends, and the use of 
> mulitple
> > moving averages reduces whipsaws to some extent. 
> > 
> > Both systems work better on futures than on stocks. The two big
> > problems with this system and other systems based on similar
> > principles are the huge drawdowns and the long periods of many loses
> > in a row. The average trader is never going to stick to a system 
> with
> > those kinds of problems. 
> > 
> > I like the quote in the magazine that says the system recovers from
> > it's 20% drawdowns pretty quickly. This is an example of how looking
> > at a graph is far different than looking at your wallet. The pretty
> > picture says "ah, my pretty litle red chart, you look so good."
> > Looking in your wallet says "I feel like I need to throw up, you 
> got a
> > bag I could use."
> > 
> > Part of the issue can be avoided by staying out of the market when
> > it's in a downtrend. That can be seen by applying the same indicator
> > to the indexes and then adding in an advancing/declining issues
> > indicator. The two of them together pretty much define the trend. 
> > 
> > However, even if a trader does that, they would be out of the market
> > for long periods of time. 
> > 
> > The counter to this is "Well, you should simply short when the 
> market
> > is going down." Okay, short away. 
> > 
> > The code is fun to play with but it's a bit of overkill. Many
> > indicators, especially smoothed indicators like the Inverse Fisher
> > Transform or the Laguerre Filter perform just as well or better. The
> > drawdowns are smaller and the periods out of the market are shorter.
> > 
> > A lot of the really technical indicators that are smoothed can be
> > simulated to within a small fraction of the more complex. For 
> example,  
> > this simple Laguerre Transform 
> > 
> > g:=Input("Alpha",0.1,0.9,0.8);
> > L0:=((1-g)*MP()) + (g*PREV);
> > L1:=(-g*L0) + Ref(L0,-1) + (g*PREV);
> > L2:=(-g*L1) + Ref(L1,-1) + (g*PREV);
> > L3:=(-g*L2) + Ref(L2,-1) + (g*PREV);
> > (L0 + (2*L1) + (2*L2) + L3)/6
> > 
> > can be approximated very closely by 
> > 
> > Mov(Mov(C,Period1,E),Period2,S)
> > 
> > To trade this you pick the two periods for a buy with the closing
> > price of the stock crossing over the function and for the exit you
> > pick another set of periods for the close to cross as a sell. Longer
> > periods for Period1 and shorter periods for Period2 will probably 
> work
> > the best.
> > 
> > If you want to see a function like this really perform, rather than
> > trying to trade it on the entire market, use it on the ETFs only or
> > even better apply it to a list of prescreened stocks like the those
> > from Value Line, IBD, or the Stock Scouter. 
> > 
> > You can optimize it against those lists if you can find a few older
> > lists to work with. You'll need to use a date filter so you can load
> > enough bars into the tester for the function to work properly and
> > still allow you to limit the date range of the entry signals. 
> > 
> > The combination of those two things will outperform the results in
> > Active Trader by a wide margin, without the huge drawdowns. 
> > 
> > I can endorse that method and it will make you rich. Well, it will
> > make some people rich! But please feel free to retire anyway. 
> > 
> > 
> > 
> > 
> > --- In equismetastock@xxxxxxxxxxxxxxx, mgf_za_1999 <no_reply@xxxx> 
> wrote:
> > > Wow, I was catching up a bit during the weekend, stumbled on 
> wabbit's
> > > initial modifications, and, after having thought you could speed 
> up
> > > the original, posted my own variation.  Then I noted the replies 
> to it
> > > and now I feel as if I've walked straight into a trap!  Anyhow, 
> see my
> > > post as an illustration of how one could extend the system and 
> modify
> > > the code when taking it outside of MSFL to speed it up in 
> preparation
> > > for use with say an optimiser or Monte Carlo simulator.
> > > 
> > > Anyhow, I am glad to hear that magazine found it works well.  Note
> > > that there are many combinations, such as if the 10 day MA is 
> above
> > > the 20 day MA, the 30 day MA and so on.  Then if the 20 day MA is
> > > above the 30 day MA, the 40 day MA and so on.  What we do with one
> > > neural net, is to calculate something like the following inputs
> > > 
> > > Input 1 = C / 10 day MA - 1
> > > Input 2 = C / 20 day MA - 1
> > > Input 3 = 10 day / 20 day MA - 1
> > > 
> > > etc.
> > > 
> > > In the end, the close is compared to all moving averages and all
> > > moving averages are compared to one another.  We feed this to the 
> net
> > > that then tries to extract any historical patterns and voila! you 
> have
> > > a trading model!  I have no idea how this would perform on its 
> own, as
> > > it forms part of a larger model, but it is encouraging if this 
> type of
> > > indicator was found useful by others.
> > > 
> > > Regards
> > > MG Ferreira
> > > TsaTsa EOD Programmer and trading model builder
> > > http://www.ferra4models.com
> > > http://fun.ferra4models.com 
> > > 
> > > --- In equismetastock@xxxxxxxxxxxxxxx, mgf_za_1999 <no_reply@xxxx>
> > wrote:
> > > > Now, if you want to build a model using this indicator, you 
> don't want
> > > > to calculate all those moving averages, as it will make any
> > > > optimisation process very slow.  MSFL is slow by default, so 
> you want
> > > > to speed up things anyhow, even if you are not optimising.  So 
> you
> > > > calculate just one indicator, the cumulative sum of the closes, 
> and
> > > > use only that.
> > > > 
> > > > You also want to test how many of these steps you should 
> perform. 
> > > > Should you use 5, 10, 15 or whatever.  Also, you rebase the 
> indicator
> > > > to somewhere between -1 and +1, so that it remains the same for 
> all
> > > > combinations.  You also rewrite it a bit so that divisions, 
> which take
> > > > longer to do, become multiplications, and the new 'thing' 
> becomes
> > > > 
> > > > ----8<------------------
> > > > 
> > > > {Trend Strength Indicator}
> > > > {for metastock, coded by P Umrysh}
> > > > {from the August 2005 issue of Active Trader Magazine}
> > > > {modified by wabbit 08Jul05}
> > > > {modified by MG Ferreira 09 Jul 05}
> > > > 
> > > > PRD   := INPUT("Enter periods",1,100,10);
> > > > STEP  := INPUT("Enter step size",1,50,10);
> > > > NSTEP := INPUT("Enter number of steps",1,20,10);
> > > > 
> > > > XX    := Cum(C);
> > > > 
> > > > SS    :=
> > > > (C*PRD           > (XX-Ref(XX,-PRD        )))              +
> > > > (C*(PRD+   STEP) > (XX-Ref(XX,-PRD-   STEP))) * (NSTEP> 1) +
> > > > (C*(PRD+ 2*STEP) > (XX-Ref(XX,-PRD- 2*STEP))) * (NSTEP> 2) +
> > > > (C*(PRD+ 3*STEP) > (XX-Ref(XX,-PRD- 3*STEP))) * (NSTEP> 3) +
> > > > (C*(PRD+ 4*STEP) > (XX-Ref(XX,-PRD- 4*STEP))) * (NSTEP> 4) +
> > > > (C*(PRD+ 5*STEP) > (XX-Ref(XX,-PRD- 5*STEP))) * (NSTEP> 5) +
> > > > (C*(PRD+ 6*STEP) > (XX-Ref(XX,-PRD- 6*STEP))) * (NSTEP> 6) +
> > > > (C*(PRD+ 7*STEP) > (XX-Ref(XX,-PRD- 7*STEP))) * (NSTEP> 7) +
> > > > (C*(PRD+ 8*STEP) > (XX-Ref(XX,-PRD- 8*STEP))) * (NSTEP> 8) +
> > > > (C*(PRD+ 9*STEP) > (XX-Ref(XX,-PRD- 9*STEP))) * (NSTEP> 9) +
> > > > (C*(PRD+10*STEP) > (XX-Ref(XX,-PRD-10*STEP))) * (NSTEP>10) +
> > > > (C*(PRD+11*STEP) > (XX-Ref(XX,-PRD-11*STEP))) * (NSTEP>11) +
> > > > (C*(PRD+12*STEP) > (XX-Ref(XX,-PRD-12*STEP))) * (NSTEP>12) +
> > > > (C*(PRD+13*STEP) > (XX-Ref(XX,-PRD-13*STEP))) * (NSTEP>13) +
> > > > (C*(PRD+14*STEP) > (XX-Ref(XX,-PRD-14*STEP))) * (NSTEP>14) +
> > > > (C*(PRD+15*STEP) > (XX-Ref(XX,-PRD-15*STEP))) * (NSTEP>15) +
> > > > (C*(PRD+16*STEP) > (XX-Ref(XX,-PRD-16*STEP))) * (NSTEP>16) +
> > > > (C*(PRD+17*STEP) > (XX-Ref(XX,-PRD-17*STEP))) * (NSTEP>17) +
> > > > (C*(PRD+18*STEP) > (XX-Ref(XX,-PRD-18*STEP))) * (NSTEP>18) +
> > > > (C*(PRD+19*STEP) > (XX-Ref(XX,-PRD-19*STEP))) * (NSTEP>19);
> > > > 
> > > > ( 2*SS - NSTEP ) / NSTEP
> > > > 
> > > > ----8<------------------
> > > > 
> > > > 
> > > > Now, this looks bad but is easily done using any programming 
> language
> > > > where loops are allowed.  All those lines that form part of the 
> sum SS
> > > > are done inside this loop as a fairly simple addition.  The 
> loop ends
> > > > at the right spot, so that the multipliation with NSTEP > xx 
> falls
> > away.
> > > > 
> > > > I also am not sure about MSFL, but this function is supposed to 
> be
> > > > very fast.  In a normal programming language, at each step, you 
> just
> > > > update xx as XX = XX + C.  XX starts at 0.  MSFL does not allow 
> this,
> > > > so the one difference between this function and the original is 
> that
> > > > it starts one observation later than the original.  Again, in a 
> real
> > > > programming language, this would not be the case.
> > > > 
> > > > Now, if only super can endorse the trading qualities of this new
> > > > indicator I can sell it to the world and retire early.....
> > > > 
> > > > Regards
> > > > MG Ferreira
> > > > TsaTsa EOD Programmer and trading model builder
> > > > http://www.ferra4models.com
> > > > http://fun.ferra4models.com 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > --- In equismetastock@xxxxxxxxxxxxxxx, "bellamy_29m"
> > > > <bellamy_29m@xxxx> wrote:
> > > > > Similar results (0-10) instead of -100 to 100 with simpler 
> code:
> > > > > 
> > > > > {Trend Strength Indicator}
> > > > > {for metastock, coded by P Umrysh}
> > > > > {from the August 2005 issue of Active Trader Magazine}
> > > > > {modified by wabbit 08Jul05}
> > > > > 
> > > > > PRD:= Input("ENTER PERIODS FOR SMA",1,100,10);
> > > > > STEP:= Input("ENTER SMA STEPS",1,50,10);
> > > > > 
> > > > > (C>Mov(C,PRD+(STEP*0),S))+
> > > > > (C>Mov(C,PRD+(STEP*1),S))+
> > > > > (C>Mov(C,PRD+(STEP*2),S))+
> > > > > (C>Mov(C,PRD+(STEP*3),S))+
> > > > > (C>Mov(C,PRD+(STEP*4),S))+
> > > > > (C>Mov(C,PRD+(STEP*5),S))+
> > > > > (C>Mov(C,PRD+(STEP*6),S))+
> > > > > (C>Mov(C,PRD+(STEP*7),S))+
> > > > > (C>Mov(C,PRD+(STEP*8),S))+
> > > > > (C>Mov(C,PRD+(STEP*9),S))
> > > > > 
> > > > > Hpe this helps.
> > > > > 
> > > > > wabbit :D
> > > > > 
> > > > > <snip>




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/DldnlA/9M2KAA/U1CZAA/BefplB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/