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

[amibroker] Re: Question on RS, possibly for Tomasz



PureBytes Links

Trading Reference Links

Steve,

I would be very much interested!   While I can't say that Sector 
rotation is the silver bullet, I'm seeing a pretty good correlation 
between Sector and Industry rotation, and individual stock prices.   

Many thanks,

Dan.

--- In amibroker@xxxxxxxxxxxxxxx, "Steve Dugas" <sjdugas@xxxx> wrote:
> Hi Dan,
> 
> There was a guy, Jayson Casavant, who posted a lot of his work on 
sector 
> rotation and analysis here a couple of years ago ( Anyone know 
where Jayson 
> went? He was very helpful here! ). I still haven't found the time 
to study 
> it in depth, but I remember that it looked pretty good and I know 
that I 
> saved all these posts. He was using TC2K or QP2 or both, if I 
remember 
> right. If you are interested, I will look through my saved posts 
and forward 
> this stuff to you - just let me know. Or, you could search the 
archives for 
> posts by him related to sector rotation/analysis. I think it is 
the type of 
> stuff that you are interested in doing.
> 
> Steve
> 
> ----- Original Message ----- 
> From: "danclark_public" <dan_public@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Thursday, July 14, 2005 1:59 PM
> Subject: [amibroker] Re: Question on RS, possibly for Tomasz
> 
> 
> Jason,
> 
> This is VERY interesting.   I'm working thorough your code now and
> will comment more this evening (I'm US PDT).
> 
> Regarding the first set of array variables...
> 
> One thing I did notice is that your "aa" and "ab" varibles are 
based
> on the "MA(ROC...".  I.e., the "a." variables.
> 
> For example, here are the first instances of the "a" and "aa"
> variables:
> 
> a  = MA(ROC(C,5),5);
> aa = Ref(MA(ROC(C,5),5),-5);
> 
> I believe that you can change the code to:
> 
> a   = MA(ROC(C, 5), 5);
> aa = Ref(a , -5);
> 
> Besides being a bit simpler (I like simple), I think it will run a
> bit faster because the "a..." array variables have already been
> set.  It doesn't need to recalculate "MA(ROC...".
> 
> I made the change in the code and got the same output. What do you
> think?
> 
> 
> Some thoughts on using the results...
> 
> One of the things that I'm thinking about is to categorize Sectors
> and Industries with this code.   The categories might be:
> 
> Strong
> Strong getting weaker
> Weak
> Weak getting stronger
> 
> Then, based on the categorization, copy the sector and industry
> symbols into Watchlists with the same names.  Since stock symbols
> are mapped to industry and sector symbols, they can be used in 
stock
> scans and run fast.
> 
> For example, find stocks where:
> 
> 1) long term price trend is UP, and
> 2) short term price trend is DOWN, and
> 3) money flow indicators (OBV, A/D, Twiggs, etc.) are UP, and
> 4) stock's Industry is in the "Weak getting stronger" Watchlist, 
and
> 5) stock's Sector is in the "Weak getting stronger" Watchlist.
> 
> I think the logic wouldn't be boolean, but a weighting structure
> like you have.  E.g., maybe give it 10 points for each of the
> criteria it meets.  There are obviously lot's of variations, but in
> general, more points = better potential.
> 
> What do you think?
> 
> Regards,
> 
> Dan.
> 
> --- In amibroker@xxxxxxxxxxxxxxx, Jason Hart <jayhart_1972@xxxx>
> wrote:
> >
> > Dan,
> >
> > The full code is listed below.  This is a "dashboard" so to speak
> of what the different sectors are doing, a top down look.  I'm more
> of a top down investor vs bottom up so this fits my style better.
> What I typically do is run it against an ETF watchlist of about 150
> different ETFs and then I'll also run it against a WL that has 450
> of my favorite mutual funds.
> >
> > This is more of a rotational trading tool.  I don't use this
> exploration with individual stocks, I think it is more useful for
> ETFs and funds.  What I'll try to do with this code is to invest in
> 3-5 ETFs/Funds that are in the top 25% in terms of strength.
> However, if you want more octane and less diversification, you can
> also see which sector funds/ETFs are the strongest and buy the
> individual stocks that these funds hold.
> >
> > The code is still a work in progress but I'll explain what some 
of
> the outputs are.  The first column "TotalB" is derived from
> differing ROC periods and where the ETF is trading relative to
> different MAs.  If it is trading above MAs it gets more points and
> vice versa.  I was comparing it to other indicators and it is very
> similar to Martin Pring's "KST" indicator.
> >
> > RSC is similar to TotalB but it incorporates some other momentum
> components into the ranking.  I'm still working on this one
> >
> > "B -10" is what the TotalB was 10 days ago and the "difference"
> column is the difference between the two columns.  What I look for
> in the difference column is maybe some bottom feeding opportunities
> where there is a big swing in the score of an ETF that has been
> struggling.  I haven't looked into how effective this is in great
> detail.  A current example is the BHH ETF but I'm not to keen on 
the
> sector.
> >
> > Then the RS columns list current RS, RS 10 days ago and RS 20 
days
> ago.  If the RS is greater than the previous n periods it is green
> and if the RS is lower then it is RED.
> >
> > "ST SD" is a shorter term measure of standard deviation and then
> the "hist SD" is the short term less the historical StDev.  Thus, 
if
> you get a negative value in the "hist SD" column then the security
> is trading at a lower volatility level relative to its historical
> average.  I like these two columns b/c they can help determine your
> asset weightings.  Say you have two investment candidates: security
> one with a SD over 30 and the second at a SD of 15.....then you can
> weight your decisions based on how much octane you want.  If you
> want less octane you could do a 75% / 25% security2 / security 1
> weighting.  Or if you want more octane have a greater weighting in
> security 1 with the 30 SD.
> >
> > The ROC columns are for visual purposes and can help you quickly
> determine how strong a stock is.  If all three ROC columns are 
green
> then the security is strong.  What I do here is look at the shorter
> term ROC.  Say the longer term ROCs are green but the shorter term
> ROC is yellow or Red then that could be an indication that the
> current trend is weakening or there is a change in trend altogether
> on the horizon.....then the opposite is true.  If LT ROCs are red
> but the ST ROC is yellow or green then it is showing ST strength 
and
> it could be reversing.
> >
> > YTD, 30D%, 10d%, etc are the % change for those periods
> >
> > SPX and Nasdaq columns are the securities correlation to the S&P
> 500 and Nasdaq composite
> >
> > Finally EMA 170 & 50:  shows if the security is rising relative 
to
> its 170 and 50 day MAs.  If it is 1 then it is rising, if it is 0
> then the stock is falling relative to these MAs.
> >
> > I think I got it all covered.  Like I said this is still a work 
in
> progress and would appreciate any feedback.  The first few columns
> of the exploration are all relatively the same.  What I would like
> to do is incorporate some sort of ranking in this scan the uses a
> combination of the three outputs.  I haven't figured out the 
ranking
> part yet.  I saw the "osaka plug in / ranking" posts from last week
> but I haven't had time to work with them yet.
> >
> > Jason
> >
> > _______________________________
> >
> > //Filter=Cross(PDI(14),MDI(14)) AND StochD(14) < 50;
> >
> > Filter = C > 0;
> >
> > a= MA(ROC(C,5),5);
> >
> > a1 = MA(ROC(C,10),5);
> >
> > a2= MA(ROC(C,20),5);
> >
> > a3=MA(ROC(C,50),5);
> >
> > a4=MA(ROC(C,100),5);
> >
> > a5 = MA(ROC(C,200),5);
> >
> > aa = Ref(MA(ROC(C,5),5),-5);
> >
> > aa1 = Ref(MA(ROC(C,10),5),-5);
> >
> > aa2 = Ref(MA(ROC(C,20),5),-5);
> >
> > aa3 = Ref(MA(ROC(C,50),5),-5);
> >
> > aa4 = Ref(MA(ROC(C,100),5),-5);
> >
> > aa5 = Ref(MA(ROC(C,200),5),-5);
> >
> > ab = Ref(MA(ROC(C,5),5),-10);
> >
> > ab1 = Ref(MA(ROC(C,10),5),-10);
> >
> > ab2 = Ref(MA(ROC(C,20),5),-10);
> >
> > ab3 = Ref(MA(ROC(C,50),5),-10);
> >
> > ab4 = Ref(MA(ROC(C,100),5),-10);
> >
> > ab5= Ref(MA(ROC(C,200),5),-10);
> >
> >
> >
> > x0 = (a+aa+ab)*.35;
> >
> > x1 = (a1+aa1+ab1)*.65;
> >
> > x2 = (a2+aa2+ab2)*(1.65);
> >
> > x3 = (a3+aa3+ab3)*(1.75);
> >
> > x4 = (a4+aa4+ab4)*(1.5);
> >
> > x5 = (a5+aa5+ab5)*(.65);
> >
> > b = (C - MA(C,20))/C;
> >
> > b1 = (C-MA(C,50))/C;
> >
> > b2 = (C-MA(C,100))/C;
> >
> > b3 = (C-MA(C,200))/C;
> >
> > bb = (b*1.7)*100;
> >
> > bb1 = (b1*2.0)*100;
> >
> > bb2 = (b2*1.2)*100;
> >
> > bb3 = (b3*(1.2))*100;
> >
> > z = x0+x1+x2+x3+x4+x5+bb+bb1+bb2+bb3;
> >
> > b = 1041231;
> >
> > a=DateNum()==b;
> >
> > i=ValueWhen(a,C);
> >
> > ii = ((C-i)/i)*100;
> >
> > week = ((C - Ref(C,-5))/ Ref(C,-5))*100;
> >
> > Mth = ((C- Ref(C,-30))/Ref(C,-30))*100;
> >
> > tenday = ((C - Ref(C,-10))/Ref(C,-10))*100;
> >
> > Oneday = ((C - Ref(C,-1))/Ref(C,-1))*100;
> >
> > j = Foreign("!spx", "c");
> >
> > j1 = RelStrength("!spx");
> >
> > j2 = RelStrength("!spx")/Ref(j1,-20);
> >
> > j3 = RelStrength("!spx")/Ref(j1,-30);
> >
> > j4 = RelStrength("!spx")/Ref(j1,-50);
> >
> > j5 = RelStrength("!spx")/Ref(j1,-100);
> >
> > j6 = RelStrength("!spx")/Ref(j1,-120);
> >
> > j7 = RelStrength("!spx")/Ref(j1,-150);
> >
> > j8 = RelStrength("!spx")/Ref(j1,-200);
> >
> > mamPeriod = 13;
> >
> > mam = 100*(Close/MA(Close, (2*mamPeriod) +1) -1);
> >
> > mom= MA(MAm,5)*100;
> >
> > vol1 = StDev(log(C/Ref(C,-1)),720) * sqrt(260)*100;
> >
> > vol2 = StDev(log(C/Ref(C,-1)),20) * sqrt(260)*100;
> >
> > vol3 = StDev(log(C/Ref(C,-1)),50) * sqrt(260)*100;
> >
> > vol4 = StDev(log(C/Ref(C,-1)),90) * sqrt(260)*100;
> >
> > Vol5 = (Vol2 + Vol3+ Vol4)/3;
> >
> > Vol6 = Vol5-Vol1;
> >
> > Final = (j2*1) + (j3*1.2) + (j4*1.3)+(j5*1.4) + (j6*1.5) +
> (j7*1.7) + (j8*1.7);
> >
> > Combined = (.50*final)+(.5*z);
> >
> > CombinedI= (.35*final)+(.35*z)+(.3*mom);
> >
> > CombinedII=MA(CombinedI,25);
> >
> >
> >
> > //Filter = CombinedI > CombinedII AND Cross(PDI(14),MDI(14)) AND 
z-
> Ref(z,-5) > 20;
> >
> > //Filter = final > 10 AND Cross(PDI(14),MDI(14));
> >
> > PositionSize = -25;
> >
> > Buy = final > 10 AND Cross(PDI(14),MDI(14)) AND z-Ref(z,-10) > 15
> AND ADX(14) > Ref(ADX(14),-5);
> >
> > Sell = Cross(MDI(14),PDI(14)) OR Cross(Signal(),MACD());
> >
> > ApplyStop( stopTypeNBar, stopModeBars, 70, True );
> >
> > AddTextColumn(FullName(),"Name",5);
> >
> > ro11 = MA(ROC(C,20),10);
> >
> > ro1 = MA(ROC(C,50),10);
> >
> > ro2 = MA(ROC(C,120),10);
> >
> > AddColumn(z,"TotalB");
> >
> > AddColumn(CombinedII,"RSC");
> >
> > AddColumn(Ref(z,-10), "B -10 dys");
> >
> > AddColumn(z-Ref(z,-10), "difference");
> >
> > AddColumn(final,"RS",1.2,colorDefault,IIf(final==0,colorBlue,IIf
> (final>=Ref(final,-10),colorGreen,colorRed)));
> >
> > AddColumn(Ref(final,-10),"10 days",1.2,colorDefault,IIf
> (final==0,colorBlue,IIf(Ref(final,-10)>=Ref(final,-
> 20),colorGreen,colorRed)));
> >
> > AddColumn(Ref(final,-20),"20 days",1.2,colorDefault,IIf
> (final==0,colorBlue,IIf(Ref(final,-20)>=Ref(final,-
> 30),colorGreen,colorRed)));
> >
> > AddColumn(Vol5,"ST SD");
> >
> > AddColumn(vol6,"Hist SD");
> >
> > AddColumn(ro11, "ROC20",1.2,colorDefault,IIf(ro11>0 AND
> ro11<5,colorYellow,IIf(ro11 > 5 ,colorGreen,colorRed)));
> >
> >
> >
> >
> >
> > AddColumn(ro1, "ROC50",1.2,colorDefault,IIf(ro1>0 AND
> ro1<5,colorYellow,IIf(ro1 > 5 ,colorGreen,colorRed)));
> >
> > AddColumn(ro2, "ROC120",1.2,colorDefault,IIf(ro2>0 AND
> ro2<5 ,colorYellow,IIf(ro2 > 5 ,colorGreen,colorRed)));
> >
> > AddColumn(ii, "YTD%",1.2,colorDefault,IIf(ii>
> 0 ,colorGreen,colorRed));
> >
> > AddColumn(Mth, "30d %",1.2,colorDefault,IIf(Mth>
> 0 ,colorGreen,colorRed));
> >
> > AddColumn(tenday, "10d %",1.2,colorDefault,IIf(tenday > 0.005 AND
> tenday < 0.009 ,colorYellow,IIf(tenday > 0 ,colorGreen,colorRed)));
> >
> > AddColumn(week, "5d %",1.2,colorDefault,IIf(week > 0.005 AND week
> < 0.009 ,colorYellow,IIf(week > 0 ,colorGreen,colorRed)));
> >
> > AddColumn(oneDay, "1d %",1.2,colorDefault,IIf(oneDay > 0.005 AND
> oneDay < 0.009 ,colorYellow,IIf(oneDay > 0 ,colorGreen,colorRed)));
> >
> > RS1=Foreign("!spx","C");
> >
> > RS2 = Foreign("!comp","C");
> >
> > Corr1 = ROC(RS1,1);
> >
> > Corr2 = ROC(C,1);
> >
> > Corr3 = ROC(RS2,1);
> >
> > Corr4 = ROC(C,1);
> >
> >
> >
> > test=Correlation(corr1,Corr2,20);
> >
> > test1=Correlation(Corr3,Corr4,30);
> >
> > test=Correlation(Corr1,Corr2,125);
> >
> > test1=Correlation(Corr3,Corr4,125);
> >
> > AddColumn(test,"SPX");
> >
> > AddColumn(test1,"Nasdaq");
> >
> > rising = EMA(C,170) > Ref(EMA(C,170),-47);
> >
> > rising1 = EMA(C,50) > Ref(EMA(C,50),-25);
> >
> > rising ==1;
> >
> > rising1==1;
> >
> > AddColumn(rising,"ema 170");
> >
> > AddColumn(rising1,"ema 50");
> >
> >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> 
> 
> 
> 
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
> 
> 
> Yahoo! Groups Links




------------------------ 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/GHeqlB/TM
--------------------------------------------------------------------~-> 

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

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

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

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