PureBytes Links
Trading Reference Links
|
Dimitris,
Your AFL coding is poetry !
Thanks for showing the power of AFL.
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE
>
----- Original Message -----
<DIV
>From:
Dimitris
Tsokakis
To: <A title=amibroker@xxxxxxxxxxxxxxx
href="">amibroker@xxxxxxxxxxxxxxx
Sent: Saturday, October 04, 2003 11:26
PM
Subject: [amibroker] The top10
ROC(C,1)
Hypothesis :
*My Nasdaq100 stocks are placed in Group254.
*They are 101, the 100 stocks and the index
^NDX.
*They are absolutely aligned, they begin from the same date
and include the same bars.
Question :
The top10 last day ROCs.
The idea :
I will read the 101 ROC values for the last day and then I
will place them as the last 101 elements of an artificial array
H0.
Then, I will search for the highest value.
As soon as it is detected and localised in detail, in the
very next step it will be replaced by -1000 <FONT
size=2>.
In the new search the 2nd highest will be detected
etc.
There is an internal loop counter to give the rank
#
A solution :
There is no need for any exploration.
In indicator builder window paste the
// Top10 ROCs
function naming( listnum,ORdNo ){list =
GetCategorySymbols( categoryGroup, listnum );for( i = 0; ( sym =
StrExtract( list, i ) ) != ""; i++
){if(i==ORdno){n1=sym;}}return n1 ; }
function select( listnum ){list = GetCategorySymbols(
categoryGroup, listnum );Rank = 0; for( i = 0; ( sym = StrExtract(
list, i ) ) != ""; i++ ){C1 = Foreign( sym, "C"
);f=LastValue(ROC(C1,1));Rank[BarCount-1-i] = f[i];}return
Rank ; }No=254;// my N100 database is in Group254R=
Select(No);H0=Select(No);G=0;Plot(H0,"",2,2);G0=0;L1=LastValue(Cum(1));N=101;//
the population of my databaseTOP=10;// 10 may change from 1 to
101
Counter=0;Title="Top10
ROC"+"\n";for(K=1;K<=TOP;K++){H1=LastValue(HHV(H0,n));BAR1=LastValue((ValueWhen(H0==H1,Cum(1)-1)));H0[BAR1]=-1000;Counter=Counter+1;G0[L1-CountER]=-H1;shape=IIf(Counter==1,shapeDigit1,IIf(Counter==2
,shapeDigit2,IIf(Counter==3 ,shapeDigit3,IIf(Counter==4
,shapeDigit4,IIf(Counter==5 ,shapeDigit5,IIf(Counter==6
,shapeDigit6,IIf(Counter==7 ,shapeDigit7,IIf(Counter==8
,shapeDigit8,IIf(Counter==9
,shapeDigit9,shapeDigit0)))))))));PlotShapes((Cum(1)==bar1+1)*shape,Counter,0,Graph0,5);Title=Title+WriteVal(Counter,1.0)+")"+WriteVal(H1)+
" ["+WriteVal(L1-bar1-1,1.0)+"-"+naming(254,L1-bar1-1)+"]"+
"\n";}Plot((Cum(1)>L1-N)*R,"",(H0==-10)*6+1,2);Plot(0,"",1,1);GraphXSpace=3;
and you will have all related info.
The ROC magnitudes, for a useful visual outline at a glance,
the top10 ROCs, the values, the ordinal No of the stocks, the names,
everything.
The graph and its info is unique, it will remain the same
when you move from ticker to ticker and will change by the next EOD
update.
A similar procedure may give the bottom10
stocks.
Ranking questions for an individual stock, indicators arrays
for individuals or the whole WatchList/Group etc have clear and quick
solutions
thanks to the great GetCategorySymbols() function.
The rest is looping tricks of a non-programmer and it is
better to make an indulgent criticism...
Dimitris TsokakisSend
BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to
suggest@xxxxxxxxxxxxx-----------------------------------------Post
AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A
href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check
group FAQ at: <A
href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the <A
href="">Yahoo! Terms of Service.
Yahoo! Groups Sponsor
ADVERTISEMENT<img
src="" width=300 height=250 border=0>
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
|