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

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



PureBytes Links

Trading Reference Links

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" <sfclimbers@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
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 amibroker@xxxxxxxxxxxxxxx, "gp_sydney" <gp.investment@xxx> 
> 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 amibroker@xxxxxxxxxxxxxxx, "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 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
> 
> 
> 
> 
>


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/