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

[amibroker] Re: top10 [once again]



PureBytes Links

Trading Reference Links

//the use of g as a filter
//Remove all symbols from WL10, select the bottom5 RSI(13) [if RSI(13)
<40] from WL5 and send them into WL10.

top=5;ORigin=5;destination=10;
g=40;x=0;k=0;topList="";M="";
List=CategoryGetSymbols(categoryWatchlist,ORigin);
for(d=1;d<=top;d++)
{
for(i=0;(sym=StrExtract(List,i))!="";i++)
{
SetForeign(sym);
x=RSI(13);
RestorePriceArrays();
g=IIf(x<g,x,g);
}
for(i=0;(sym=StrExtract(List,i))!="";i++)
{
SetForeign(sym);
x=RSI(13);
topList=topList+WriteIf(x==g,sym,"")+WriteIf(x==g,",","");
M=M+WriteIf(X!=G,SYM,"")+WriteIf(X!=G,",","");
}
List=m;g=40;x=0;m="";
}
List1=CategoryGetSymbols(categoryWatchlist,destination);
for(i=0;(sym=StrExtract(List1,i))!="";i++)
{
CategoryRemoveSymbol(sym, categoryWatchlist, destination ); 
}
for(a=0;a<top;a++)
{
CategoryAddSymbol(StrExtract(toplist,a), categoryWatchlist, 
destination ); 
}

Filter=1;// any current stock for the n=1 last quotations
AddTextColumn(topList,"top"+WriteVal(top,1.0)+"List");

In this example g=40 acts like an upper threshold, the code will try 
the 5 worse RSIs, if they are below the 40 level, else it will give 
fewer.

--- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx> 
wrote:
> Applications:
> //Remove all symbols from WL10, select the top5 RSI(130) from WL5 
and 
> send them into WL10.
> top=5;ORigin=5;destination=10;
> g=0;x=0;k=0;topList="";M="";
> List=CategoryGetSymbols(categoryWatchlist,ORigin);
> for(d=1;d<=top;d++)
> {
> for(i=0;(sym=StrExtract(List,i))!="";i++)
> {
> SetForeign(sym);
> x=RSI(130);
> RestorePriceArrays();
> g=IIf(x>g,x,g);
> }
> for(i=0;(sym=StrExtract(List,i))!="";i++)
> {
> SetForeign(sym);
> x=RSI(130);
> topList=topList+WriteIf(x==g,sym,"")+WriteIf(x==g,",","");
> M=M+WriteIf(X!=G,SYM,"")+WriteIf(X!=G,",","");
> }
> List=m;g=0;x=0;m="";
> }
> List1=CategoryGetSymbols(categoryWatchlist,destination);
> for(i=0;(sym=StrExtract(List1,i))!="";i++)
> {
> CategoryRemoveSymbol(sym, categoryWatchlist, destination ); 
> }
> for(a=0;a<top;a++)
> {
> CategoryAddSymbol(StrExtract(toplist,a), categoryWatchlist, 
> destination ); 
> }
> Filter=1;// any current stock for the n=1 last quotations
> AddTextColumn(topList,"top"+WriteVal(top,1.0)+"List");
> //After the exploration, hit View->Refresh all
> 
> Notes:
> 1. The above code works only for positive arrays.
> For MACDs, ROCs, CCIs and other negative arrays, just change g=0 
into 
> an adequate negative g=-1000, or the possible lowest for the under 
> examination array
> 2. g value may act like a threshold filter. If, instead of g=0 we 
> write g=70, then the code will find the top5 of stocks with RSI(130)
> >70. If there are not 5 stocks, it will give less. If g=0 and the 
> indicator is MACD(), then the code will find the top5 of the 
> *positive* MACDs.
> 3. Note that g is fould in Ln4 and in Ln22 and should be replaced 
in 
> both locations.
> 4. The indicator is in  Ln11 and Ln18. When you try another 
example, 
> do not forget to replace RSI(130) in both locations.
> 5. With a few changes we may have the bottom5 : 
> g should be the highest possible and the basic selection inequality 
> g=IIf(x>g,x,g);
> should be reversed into 
> g=IIf(x<g,x,g);
> 6. g is the floor [or the ceiling] of x values. It is the 
> generalisation of min(a1,a2) [or respectively max(a1,a2)], it is 
> something like a moving min, it compares two numbers and keep in 
> memory the greater [respectively the smaller] for the next cycle. 
It 
> is a way to overcome the max(a1,max(a2,max(a3,...)))
> Dimitris Tsokakis
> --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" 
<TSOKAKIS@xxxx> 
> wrote:
> > Here is another solution for the top10 list of WL5, as for the 
> Stochd
> > () array.
> > 
> > // TOP LIST
> > top=10;WLno=5;
> > g=0;x=0;k=0;topList="";M="";
> > List=CategoryGetSymbols(categoryWatchlist,WLno);
> > for(d=1;d<top;d++)
> > {
> > for(i=0;(sym=StrExtract(List,i))!="";i++)
> > {
> > SetForeign(sym);
> > x=StochD();
> > RestorePriceArrays();
> > g=IIf(x>g,x,g);
> > }
> > for(i=0;(sym=StrExtract(List,i))!="";i++)
> > {
> > SetForeign(sym);
> > x=StochD();
> > topList=topList+WriteIf(x==g,sym,"")+WriteIf(x==g,",","");
> > M=M+WriteIf(X!=G,SYM,"")+WriteIf(X!=G,",","");
> > }
> > List=m;g=0;x=0;m="";
> > }
> > Filter=1;// any current stock for the n=1 last quotations
> > AddTextColumn(topList,"top"+WriteVal(top,1.0)+"List of 
WL"+WriteVal
> > (WLno,1.0));
> > Title="top"+WriteVal(top,1.0)+"List of WL"+WriteVal(WLno,1.0)
> > +" : "+topList;
> > 
> > Use it in IB or AA, the topList is free [outside any loop] for 
> > further use.
> > The trick was to remove from the initial list the top stock of 
each 
> > cycle. No composites, no auxiliary arrays, quite fast, no 
external 
> > plugins, it seems good...
> > Dimitris Tsokakis


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 

------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->

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/