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

[amibroker] Re: I'm having a hard time explaining this



PureBytes Links

Trading Reference Links

I'm not entirely sure I understand what you are trying to do, but I
think the custom backtester interface will let you do it. In the CBI
you can scan all available signals before the trades are made and
change parameters for them, including setting the position size to
zero so that they'll never be taken.

Since you're trying to rank signals across multiple stocks, and
discard some after a certain number have been selected, I'm not sure
you'll be able to do it in normal AFL code alone as that code only
relates to a single symbol at a time.

Regards,
GP


--- In amibroker@xxxxxxxxxxxxxxx, "sfclimbers" <sfclimbers@xxx> wrote:
>
> ts,
> 
> Did you ever get an answer to this question? I believe that I've run 
> into the same issue as posted in #114449 


> http://finance.groups.yahoo.com/group/amibroker/message/114449 which 
> might present the case a little more clearly. I would have thought 
> that this would be a common request.
> 
> Thanks
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "techsmart" <mric@> wrote:
> >
> > 
> > Maybe someone here can help.
> > 
> > PositionScore alone will not do what I want.
> > 
> > The day before trade entry I scan for POTENTIAL entries.  I get up 
> to 
> > 40 or 50 signals.  On the next day I use a limit order a certain 
> > percentage below the prior day close as an entry.  However, I do 
> not 
> > want to end up with too many buys, so I rank the potential entries 
> by 
> > ROC(C,40) and take the top 'x'(usually about 5 to 10) number of 
> > signals and enter them as limit orders.  This way I can be sure to 
> > not overextend my equity.  Of those limit orders I can have 
> anywhere 
> > from 0 to all filled.
> > 
> > I have the system worked out in the AB backtester except that 
> > PositionScore and MaxPositions does not accurately simulate what 
> > really happens.  Using these filters, will result in the system 
> > taking the 'x' number of entries with the highest ROC amongst all 
> > those that got hit.  This is not reality, but based on the EOD data 
> > on the day of entry.
> > 
> > What I need is to have the backtester take all the signals and then 
> > RANK them by ROC(C,40) and then take the top 'x' (say 5 or 10) and 
> > use those as the basket to trade the next day.  Of those 'x' number 
> > of signals, anywhere from 0 to x may be entered, but this will be a 
> > realistic backtest...just as I trade the system.
> > 
> > Below is an exchange with AB support.  I have not made clear what I 
> > am trying to do, but maybe it will help explain it.
> > 
> > In sum:  I want to rank all signals by some filter factor and then 
> > take the top 'x' number to use as potential buys the next day, 
> > discarding all those that fall below a certain RANK.  Hard cutoffs 
> > will not give me a specific number of signals.  For instance, if I 
> > used ROC(C,40) > 20, some days I would get no signals and other 
> days 
> > I might get 30.
> > 
> > Anyone know how this might be done?
> > 
> > I think the 'for' loop might do, but not sure.
> > 
> > ts
> > 
> > ---------------------------
> > Marcin,
> > 
> > I did not make myself clear.
> > 
> > If you have signals the day before and a group of possible entries 
> > that are 
> > entered intraday THE NEXT DAY with a limit order, using 
> PositionScore 
> > and 
> > MaxPositions does not simulate reality.  Using that method, the 
> > backtester 
> > will take the top x number of trades based on PositionScore, but in 
> > reality 
> > you would have no idea which trades would hit their limit order 
> > first, so 
> > would not know until EOD which of the PositionScore ranked trades 
> you 
> > would 
> > take.
> > 
> > SO... the point is...
> > 
> > I need a method to rank all the potential signals on the day PRIOR 
> to 
> > entry. 
> > Then take x number of them (say 10) and only use those as entries 
> on 
> > the 
> > next day.
> > 
> > Can I do this:  Take a list of symbols that pass a filter.... say 
> > perhaps 40 
> > symbols, then rank them by some factor, such as ROC(C,40), then use 
> > only the 
> > top 10 (for example) as potential trades the next day.  Of those 
> 10, 
> > only 
> > the ones that hit a certain limit order would be bought.
> > 
> > I need a way to rank and filter the signals from the day before and 
> > then 
> > strip off those below a certain rank.  PositionScore does this 
> after 
> > the 
> > fact...EOD on the entry day and this is not the way the system 
> really 
> > works.
> > 
> > Hope I am expressing myself clearly.  I know it is confusing.
> > 
> > 
> > 
> > Subject: Re: [#16654] Ranking signals for possible entry the day 
> > before
> > 
> > 
> > > Helo,
> > >
> > > You can use PositionScore variable in your formula and define the 
> > criteria
> > > you use.
> > > (and combine it with the Maximum open positions limit)
> > >
> > > See:
> > > http://www.amibroker.com/guide/h_portfolio.html
> > >
> > >
> > > Best regards
> > >
> > > Marcin Gorzynski
> > > Amibroker.com Technical Support
> > >
> > > Subject: [#16654] Ranking signals for possible entry the day 
> before
> > >
> > >
> > > First let me say that Amibroker is a wonderful tool for system 
> > development
> > > and backtesting.  I've used many others and find that Amibroker 
> has 
> > all 
> > > the
> > > capabilities I've been looking for.  I've already given you a 
> > favorable
> > > review on the Elite Trader message board and will continue to 
> > recommend 
> > > your
> > > software to others.  It's very capable and FAST!  Thanks!
> > >
> > >
> > > V. 4.65.2
> > >
> > > My question:
> > >
> > > My system finds potential signals on the day before entry.  There 
> > may be
> > > anywhere from 0 to 50 potential signals on any one day.
> > >
> > > Entries are made the NEXT day on a limit order.  So, I cannot be 
> > sure how
> > > many of those limit orders will be hit.  I can simply limit the 
> > number of
> > > orders I submit, but this does not seem to be a very good way to 
> > backtest
> > > and does not simulate what I do in reality.  In testing I have 
> > found that
> > > filtering on certain parameters can improve results (such as 
> taking 
> > those
> > > signals for stocks with the greatest 40 day ROC).  I can test 
> this 
> > in the
> > > backtester with the portfolio option using positionscore, but 
> this 
> > is
> > > unrealistic, because there might have been 20 limit orders hit 
> > intraday 
> > > and
> > > the backtester will take the 2 (or whatever MaxOpenPositions 
> number 
> > I have
> > > specified) with the best ROC, something I would not have been 
> able 
> > to
> > > predict intraday when limit orders are getting hit at various 
> > different
> > > times.
> > >
> > > What I would like to do is this:  On the day before entry (the 
> > signal 
> > > day),
> > > I would like to be able to rank all the possible signals by some 
> > factor,
> > > such as 40 day ROC.  This still leaves some uncertainty about how 
> > many
> > > actual entries you'll get, but it would prevent the backtester 
> from 
> > doing
> > > something that couldn't be done in reality and would put an upper 
> > limit on
> > > the number of trades taken.
> > >
> > > So...to summarize:
> > >
> > > Can the backtester take all the potential signals on day -1 and 
> > rank them
> > > according to some factor (say, ROC(C,40)) and then just use a 
> > limited 
> > > subset
> > > of all the signals to use as actual limit orders on the next 
> day.  
> > Hard
> > > cut-offs, like ROC(C,40) > 20, don't work because that can give 
> you 
> > many
> > > signals one day and none the next.  What is needed is a relative 
> > ranking 
> > > or
> > > scoring, so that the backtester will only take, for example, the 
> 5 
> > stocks
> > > with the highest ROC40, all the others being discarded.
> > >
> > > I think the 'for loop' may be the way to do this, but I'm not 
> > skilled 
> > > enough
> > > to be able to sort it out.
> > >
> > > Thanks very much for your help and for a great trading tool.
> > >
> > 
> > >
> > >
> >
>




Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> 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/