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<gro...@...>  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