Hello, Using GetFirstSignal/GetNextSignal methods. When you iterate using those functions you will get the list of symbols sorted by absolute value of positionscore. For more info see: http://www.amibroker.com/guide/a_custombacktest.html and http://www.amibroker.org/userkb/2008/03/16/amibroker-custom-backtester-interface-2/
Best regards, Tomasz Janeczko amibroker.com On 2010-04-08 22:23, mkecera wrote: > Fast response! Thank you. Can you be more specific on how to access rankings > using custom backtester? > > --- In [email protected], Tomasz Janeczko<gro...@...> wrote: > >> Hello, >> >> Oh my God! It does not only re-iterates for all stocks BUT repeating it >> for ALL bars >> A MUST-READ is this: http://www.amibroker.com/guide/x_performance.html >> >> Follow advice given in the article and MOVE LOOP INVARIANTS OUTSIDE THE >> LOOP ! >> >> Better yet REMOVE THIS code altogether. >> You don't need this. >> Instead use PositionScore that does the ranking for you ! >> This is a 2nd must read: >> http://www.amibroker.com/guide/h_portfolio.html >> >> If you need to access rankings use custom backtester - the signal array >> will have all symbols sorted by absolute >> value of position score on bar by bar basis - it will be many orders of >> magnitude >> faster than your code. >> >> Best regards, >> Tomasz Janeczko >> amibroker.com >> >> On 2010-04-08 21:52, mkecera wrote: >> >>> Hi All, >>> >>> I am using the function below to get ranking of particular stock in the >>> watchlist according to defined function. Problem is that for backtest its >>> too slow as it recalculates for each stock. >>> >>> Is there a way to store the rankings once and then just read them or pass >>> them between different stocks during portfolio backtest? >>> >>> Any pointers are greatly appreciated. Thank you. >>> >>> function GetValue(index) >>> { >>> return C[index]; >>> } >>> >>> for (z=1; z<=BarCount-1; z++) >>> { >>> local List; >>> >>> List = CategoryGetSymbols( categoryWatchlist, WatchlistNumber ); >>> >>> for( i = 0; ( SymbolNumber= StrExtract( List, i ) ) != ""; i++ ) >>> { >>> SetForeign(SymbolNumber); >>> TemporaryValue = GetValue(z); >>> RestorePriceArrays(); >>> TickersValue[i] = TemporaryValue; >>> } >>> >>> MyPosition[z]=0; >>> for( n = 0; n<=i; n++ ) >>> { >>> >>> MyPosition[z]=IIf(MyValue[z]<TickersValue[n],MyPosition[z]+1,MyPosition[z]); >>> } >>> } >>> >>> >>> >>> >>> ------------------------------------ >>> >>> **** IMPORTANT PLEASE READ **** >>> This group is for the discussion between users only. >>> This is *NOT* technical support channel. >>> >>> TO GET TECHNICAL SUPPORT send an e-mail directly to >>> SUPPORT {at} amibroker.com >>> >>> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at >>> http://www.amibroker.com/feedback/ >>> (submissions sent via other channels won't be considered) >>> >>> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: >>> http://www.amibroker.com/devlog/ >>> >>> Yahoo! Groups Links >>> >>> >>> >>> >>> >>> >> > > > > ------------------------------------ > > **** IMPORTANT PLEASE READ **** > This group is for the discussion between users only. > This is *NOT* technical support channel. > > TO GET TECHNICAL SUPPORT send an e-mail directly to > SUPPORT {at} amibroker.com > > TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at > http://www.amibroker.com/feedback/ > (submissions sent via other channels won't be considered) > > For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > http://www.amibroker.com/devlog/ > > Yahoo! Groups Links > > > > >
