Hello,

Thank you. I will try it and report here on the progress.

Best regards,

Michal

--- In [email protected], Tomasz Janeczko <gro...@...> wrote:
>
> Hello,
> 
> "BUT that is different than applying condition Buy:RSI(2)<5 ONLY on 
> three highest priced stocks in a watchlist of 100 stocks "
> 
> Remember that what the signal is depends on you.
> 
> In that case you can simply replace your buy condition with
> Buy = 1;
> 
> and do the RSI(2)<5 condition checking inside custom backtest part.
> 
> Or use rotational mode to the same effect.
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> 
> On 2010-04-09 12:31, mkecera wrote:
> > Hello,
> >
> > This will rank signals. If I have
> >
> > Buy:RSI(2)<5;
> > PositionScore=Close;
> > SetOption("MaxOpenPositions",3);
> >
> > It will buy 3 highest priced stocks with low RSI.
> >
> > BUT that is different than applying condition Buy:RSI(2)<5 ONLY on three 
> > highest priced stocks in a watchlist of 100 stocks.
> >
> > First one might get a trade where the second one wont because there might 
> > be no stock within three highest priced that has RSI(2) lower than 5.
> >
> > This is how I understood PositionScore and therefore didnt use it. Am I 
> > wrong?
> >
> > --- In [email protected], Tomasz Janeczko<groups@>  wrote:
> >    
> >> Hello,
> >>
> >> You are doing things wrong way.
> >> Leave the processing to the backtester.
> >> Generate BUY/Sell signals FIRST, REGARDLESS of score,
> >> and assign the score to PositionScore
> >> AmiBroker will sort all signals based on their score and then decide
> >> which ones
> >> are FIRST (top ranked) and trade them.
> >> It will NOT trade all signals, but only top-ranked ones.
> >> The amount is controllable by the user using MaxOpenPositions.
> >> You don't need to do this processing on your own, it is all built-in
> >> and many times faster than you could ever do in your formula.
> >> You don't need any custom backtester code to do the ranking and trading
> >> top-N symbols as
> >> it is integral and built in part of the backtest process.
> >> Why re-invent the wheel ?
> >>
> >> It is explained here:
> >> http://www.amibroker.com/guide/h_portfolio.html
> >>
> >>
> >> Best regards,
> >> Tomasz Janeczko
> >> amibroker.com
> >>
> >> On 2010-04-09 08:47, mkecera wrote:
> >>      
> >>> Hello,
> >>>
> >>> Thank you.
> >>>
> >>> I came up with the code below. So signal array has ALL the symbols sorted 
> >>> or just the ones which passed the BUY rules? Because I want to sort ALL 
> >>> the symbols first and then apply some BUY rules on the first five symbols.
> >>>
> >>> Again thanks for your help.
> >>>
> >>> SetCustomBacktestProc("");
> >>> if (Status("action") == actionPortfolio)
> >>>   {
> >>>       bo = GetBacktesterObject(); 
> >>>       bo.PreProcess();    
> >>>       for (i = 0; i<   BarCount; i++)     
> >>>       {
> >>>    Counter[i]=0;
> >>>           for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal(i))
> >>>           {       
> >>>            Counter[i]=Counter[i]+1;
> >>>                   if (Counter[i]>5){sig.PosSize=0;}
> >>>        }  
> >>>           bo.ProcessTradeSignals(i);      
> >>>       }   
> >>>       bo.PostProcess();
> >>> }
> >>>
> >>>
> >>> --- In [email protected], Tomasz Janeczko<groups@>   wrote:
> >>>
> >>>        
> >>>> 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<groups@>    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
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>            
> >>>>
> >>>>          
> >>>
> >>>
> >>> ------------------------------------
> >>>
> >>> **** 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
> >
> >
> >
> >
> >
>


Reply via email to