PureBytes Links
Trading Reference Links
|
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
------------------------ 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/
|