Tomasz, I'm already doing that. That was not the problem. I've provided a concrete example in message #114489 which is a continuation of my original message (#114449). Ed has offered a proposal that looks very promising, in message #114494.
I will continue working against Ed's suggestion. If you have a moment to review Ed's suggestion (#114494), and let us know if there is a cleaner approach, that would be appreciated. This might interest you as an enhancement request for the product. Thanks, Mike --- In [email protected], "Tomasz Janeczko" <[EMAIL PROTECTED]> wrote: > > You should simply include LIMIT order in actual trading rules: > > LimitPrice = ... your limitprice > > Buy = YourOriginalBuyRule AND Low <= LimitPrice; > BuyPrice = Min( Open, LimitPrice ); > > Then you will simply have signals for symbols that actually > get filled because BOTH your condition and price limit have been met. > > Best regards, > Tomasz Janeczko > amibroker.com > ----- Original Message ----- > From: "sfclimbers" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Monday, August 27, 2007 10:50 AM > Subject: [amibroker] Re: I'm having a hard time explaining this > > > > Thanks for your reply. I will defer further discussion on this to my > > main thread #114449. Except to say that the CBI doesn't seem to be > > enough either, since there will not be any signals for the symbols > > upon which I did place a limit order, but which did not result in a > > fill (due to adverse price action). The end result is that I do not > > seem to have the scores of the other candidates with which to make > > the comparrison and zero out the "false" fills, as expanded upon in > > the above thread. > > > > --- In [email protected], "gp_sydney" <gp.investment@> > > wrote: > >> > >> 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 [email protected], "sfclimbers" <sfclimbers@> 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 [email protected], "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 > > > > > > > > > > >
