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

[EquisMetaStock Group] Re: Trend Strength Indicator



PureBytes Links

Trading Reference Links

Wow! This discussion has really opened my eyes to some new ideas. I'm 
really enjoying this. Thanks!

AW


--- In equismetastock@xxxxxxxxxxxxxxx, superfragalist <no_reply@xxxx> 
wrote:
> 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/