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

[amibroker] Re: Absolute value ATR?



PureBytes Links

Trading Reference Links

Louis,

The three bands that come with AB are all good examples to start with.

Bollinger is a 2 * StDev band and Keltner is an ATR band.


To use a band as a stop, for example, you can use the high crossing 
above the profit stop (or the close) - you can either reference 
yesterdays upperband or project yesterdays upperband forward to 
today - a simple approximation of forward projection is to assume 
that the upperband will continue its rate of growth and project 
forward one day using that.

As I mentioned, I found Bollinger Bands a bit choppy, for use as 
stops, so I MA(periods) smoothed StDev(Periods) and then used that as 
an upper or lower band (similar to the % bands method used by Tomasz 
in his AB code).

brian_z

--- In amibroker@xxxxxxxxxxxxxxx, "brian_z111" <brian_z111@xxx> wrote:
>
> Louis,
> 
> Have you seen Tomasz's code for % bands (charts >> bands >> percent 
> bands
> 
> P = ParamField("Price field",-1);
> Periods = Param("Periods", 15, 2, 100, 1 );
> Width = Param("Width%", 2, 0, 10, 0.05 );
> Color = ParamColor("Color", colorCycle );
> Style = ParamStyle("Style");
> CenterLine = MA( P, Periods );
> Plot( (1 + Width * 0.01) * CenterLine, "%EnvTop" + _PARAM_VALUES(), 
> Color, Style ); 
> Plot( (1 - Width * 0.01) * CenterLine, "%EnvBot" + _PARAM_VALUES(), 
> Color, Style ); 
> 
> I think it is a fine example of bands - the same thing can be done 
> with StDev% - add or subtract it from a MA to form the bands.
> 
> I have used MA +_ smoothed StDev% as stops (profit and loss).
> 
> One of the hard choices is what type of smoothing/periods to use 
for 
> the bands OR should we use them in short time frames (less lag but 
> the stops jump around more)? - always hard decisions to make.
> 
> > StDevPercent = StDev(C,Periods)/Ref (C,-1) * 100;
> 
> Since StDev is constructed using variance from a arithmetic average 
I 
> feel StDevPercent = StDev(C,Periods)/MA (C,Periods) * 100; is 
> technically more correct but, IMO, it doesn't matter as long as 
> consistency is maintained and, more importantly,it works.
> 
> See how you get on along those lines.
> 
> brian_z
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Louis Préfontaine" 
> <rockprog80@> wrote:
> >
> > Hi Brian,
> > 
> > I kind of missed your reply, and got on other projects.. But I'm 
> back at the
> > Stdev problem, and here is the formula I got for Stdev:
> > 
> > _SECTION_BEGIN("Stdev");
> > SetChartOptions (0,0,Chartgrid0);
> > P = ParamField("Price field",-1);
> > Periods = Param("Periods", 15, 2, 200, 1 );
> > StDevPercent = StDev(C,Periods)/Ref (C,-1) * 100;
> > Plot( StDevpercent, _DEFAULT_NAME(), ParamColor( "Color", 
> colorCycle ),
> > ParamStyle("Style") );
> > _SECTION_END();
> > 
> > I re-read your previous posts, and I think you may be able to 
help 
> me with
> > what I am trying to do.
> > 
> > I would like to be able to set a different profit stop (33%)  and 
> stop-loss
> > (100%) depending on the results.  I don't know where to start to 
do 
> this.  I
> > am confident in writing simple rules like  "buy = ... AND ...  
> or ...
> > ,etc."  but I think I may need to do something more complex to do 
> what I
> > need to do with this.
> > 
> > Do you have any idea?
> > 
> > Thanks,
> > 
> > Louis
> > 
> > 2008/2/26, brian_z111 <brian_z111@>:
> > >
> > >   Louis,
> > >
> > > > Thanks for the suggestion. I must do something wrong however
> > > >because from
> > > > the code I wrote
> > > > I get only results of ATR > 3-4. Only Indu.x is under 2; all 
the
> > > >other one
> > > > are over 3-4, and sometimes 6-7 and more.
> > >
> > > I tried your code and didn't see any problems.
> > > For the Dow constituents most are around 1.25 - 2% for ATR(15) 
in 
> the
> > > period I looked at.
> > >
> > > Are you sure you didn't have Weekly selected instead of Daily?
> > >
> > > brian_z
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%
> 40yahoogroups.com>, "LouisPréfontaine"
> > > <rockprog80@> wrote:
> > > >
> > > > Hi,
> > > >
> > > > Thanks for the suggestion. I must do something wrong however
> > > because from
> > > > the code I wrote
> > > >
> > > > _SECTION_BEGIN("ATR");
> > > > periods = Param( "Periods", 15, 1, 200, 1 );
> > > > Plot( ATR(periods)/Ref(C,-1)*100
> > > > , _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), 
ParamStyle
> > > ("Style") );
> > > >
> > > > LongPer = Param("Long Period", 50, 10, 100, 5 ); /* select 
> periods
> > > with
> > > > parameter window */
> > > >
> > > > MidPer = Param("Mid Period", 20, 0, 50, 1);
> > > > ShortPer = Param("Short Period", 10, 3, 10, 1 );
> > > >
> > > > LongEMA = EMA( ATR(periods)/Ref(C,-1)*100, LongPer );
> > > > MidEMA = EMA (ATR(periods)/Ref(C,-1)*100, MidPer);
> > > > ShortEMA = EMA( ATR(periods)/Ref(C,-1)*100, ShortPer );
> > > >
> > > > _SECTION_END();
> > > >
> > > > _SECTION_BEGIN("ema-ATR");
> > > > Plot( LongEMA, "EMA(ATR(periods)/Ref(C,-1)*100, "+WriteVal
> > > (LongPer,1)+")",
> > > > colorBlue,
> > > > styleLine|styleNoRescale );
> > > > Plot( MidEMA, " EMA(ATR(periods)/Ref(C,-1)*100, "+WriteVal
> (MidPer,1)
> > > +")",
> > > > colorBrown,
> > > > styleLine|styleNoRescale );
> > > > Plot( ShortEMA, " EMA(ATR(periods)/Ref(C,-1)*100,
> > > > "+WriteVal(ShortPer,1)+")", colorGreen,
> > > > styleLine|styleNoRescale );
> > > >
> > > >
> > > > _SECTION_END();
> > > >
> > > > I get only results of ATR > 3-4. Only Indu.x is under 2; all 
the
> > > other one
> > > > are over 3-4, and sometimes 6-7 and more.
> > > >
> > > > However, are you sure about the idea of entering/exiting a 
stock
> > > when
> > > > volatility gets too high? Wouldn't it be better simply to 
scan 
> and
> > > avoid
> > > > high volatily stocks to reduce the drawdown possibility?
> > > >
> > > > Thanks,
> > > >
> > > > Louis
> > > >
> > > > 2008/2/24, brian_z111 <brian_z111@>:
> > > > >
> > > > > If you want a relative measure of range then you could use
> > > ATR%, as
> > > > > suggested by Graham.
> > > > >
> > > > > High volatility stocks would be filtered by e.g. ATR% > 2 
etc.
> > > > >
> > > > > In that case your stops would be something like:
> > > > >
> > > > > ProfitStop = Ref(C,-1) * (1 + ATR%/100);
> > > > > StopLoss = Ref(C,-1) * (1 - ATR%/100);
> > > > >
> > > > > If you want to standardise range then you could use:
> > > > >
> > > > > StandardATR = StDev(ATR(1),Periods);
> > > > >
> > > > > An example of a stop would then be:
> > > > >
> > > > > ProfitStop = Ref(C,-1) + StDev(ATR(1),20);
> > > > >
> > > > > Or maybe (for live work):
> > > > >
> > > > > ProfitStop = Ref(C,-1) + Ref(StDev(ATR(1),20),-1);
> > > > >
> > > > > Or something like that.
> > > > >
> > > > > That is only one way of doing it.
> > > > >
> > > > > You can try whatever you like, within the boundaries of your
> > > > > knowledge (plus a little bit more).
> > > > >
> > > > > brian_z *;-)
> > > > >
> > > > >
> > > > > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%
> 40yahoogroups.com><amibroker%40yahoogroups.com>,
> > > > > "brian_z111" <brian_z111@> wrote:
> > > > > >
> > > > > > Louis,
> > > > > >
> > > > > > > only thing I need to know is simply to set the STdev at 
2 
> or 3
> > > > > (if
> > > > > > it's what
> > > > > > > I want to do) and then automatically ATR will be use 
that 
> new
> > > > > StDev?
> > > > > > >
> > > > > >
> > > > > > No.
> > > > > >
> > > > > > ATR and StDev are both measures of volatility but they 
> measure
> > > it
> > > > > in
> > > > > > different ways. Generally you would use one or the other.
> > > > > >
> > > > > > StDev has special uses.
> > > > > >
> > > > > > If you want to use them it would pay off to study them 
> closely
> > > > > first.
> > > > > >
> > > > > >
> > > > > > > I like your idea to make two groups; one with high 
> volatility
> > > and
> > > > > > one with
> > > > > > > low volatility. Would you consider it would be possible 
to
> > > > > adjust
> > > > > > the
> > > > > > > stop-loss differently for each group?
> > > > > >
> > > > > > You could try it e.g. the stop loss can be the close - 
StDev
> > > (C,20).
> > > > > > You can vary the stop loss for one group by using a 
> multiplier
> > > so
> > > > > the
> > > > > > stop loss could be close - StDev(C,20) * 1.5 for one 
group 
> and
> > > > > close -
> > > > > > StDev(C,20) for the other.
> > > > > >
> > > > > >
> > > > > >
> > > > > > > And how do you filter the top
> > > > > > > performers?
> > > > > >
> > > > > > It depends on what you have chosen as your favourite 
metric 
> for
> > > > > > evaluating systems. As I said in an earlier post I like 
> Power
> > > > > Factor
> > > > > > (I will be explaining this at the UKB soon) but you would 
be
> > > better
> > > > > > served choosing your own.
> > > > > >
> > > > > > If you are not sure on evaluation, and use of the 
metrics, 
> then
> > > > > > Howard Bandy's book is a good place to start.
> > > > > >
> > > > > > Sorry, I can't help you any further with this.
> > > > > > I have a couple of posts for the UKB I want to get 
finished.
> > > > > >
> > > > > > BTW did you see the answer I gave you yesterday 
on "Trying 
> to
> > > > > compare
> > > > > > market and industry" ?. see message # 120270
> > > > > >
> > > > > > I hopoe that helps you a little and good luck with your 
> trading.
> > > > > >
> > > > > > brian_z
> > > > > >
> > > > > >
> > > > > > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%
> 40yahoogroups.com><amibroker%
> > > 40yahoogroups.com>, "Louis
> > > > > Préfontaine"
> > > > > > <rockprog80@> wrote:
> > > > > > >
> > > > > > > Hi Brian,
> > > > > > >
> > > > > > > Thanks for those explanation. I will experiment with 
this
> > > > > tonight
> > > > > > and
> > > > > > > tomorrow. However, I am not sure about something: are 
you
> > > saying
> > > > > > that the
> > > > > > > only thing I need to know is simply to set the STdev at 
2 
> or 3
> > > > > (if
> > > > > > it's what
> > > > > > > I want to do) and then automatically ATR will be use 
that 
> new
> > > > > StDev?
> > > > > > >
> > > > > > > I like your idea to make two groups; one with high 
> volatility
> > > and
> > > > > > one with
> > > > > > > low volatility. Would you consider it would be possible 
to
> > > > > adjust
> > > > > > the
> > > > > > > stop-loss differently for each group? And how do you 
> filter
> > > the
> > > > > top
> > > > > > > performers?
> > > > > > >
> > > > > > > As always, thanks for your help!
> > > > > > >
> > > > > > > Louis
> > > > > > >
> > > > > > > 2008/2/24, brian_z111 <brian_z111@>:
> > > > > > > >
> > > > > > > > Sorry Louis, a mistake there.
> > > > > > > >
> > > > > > > > I am getting my standard deviations mixed up between
> > > programs.
> > > > > > > >
> > > > > > > > In AB StDev is 1 by default and is in $values.
> > > > > > > > To use AB's StDev at 2,3 deviations etc just multiply 
> StDev
> > > > > (C,10)
> > > > > > * 2
> > > > > > > > etc
> > > > > > > > To use it as StDev%
> > > > > > > > StDevPercent = StDev(C,Periods)/MA(C,Periods) * 100;
> > > > > > > >
> > > > > > > > For STANDARD measures of deviation use StDev.
> > > > > > > > For relative measures of deviation use ATR as % or 
> StDev as
> > > %
> > > > > > > >
> > > > > > > > One example:
> > > > > > > >
> > > > > > > > Say you want to compare the performance of a fast 
horse 
> and
> > > a
> > > > > slow
> > > > > > > > horse. If they both travel 1 StDev in the same time 
> (number
> > > of
> > > > > > > > periods) their performance is equal but the VALUE 
> (QUALITY)
> > > of
> > > > > the
> > > > > > > > fast horses performance is higher - it's a grade one 
> horse
> > > > > > compared
> > > > > > > > to the other horse, which is a grade 2 (using speed 
as 
> the
> > > > > > criteria).
> > > > > > > >
> > > > > > > > In practice - profit/loss stops might be set at +- 1
> > > standard
> > > > > > > > devation and then filtered for the top performers. 
The 
> top
> > > > > > performers
> > > > > > > > could then be segregated into two watchlists - those 
> with 1
> > > > > stdev
> > > > > > >
> > > > > > > > 2% (high volatility stocks) and those with stdev <=2% 
> (low
> > > > > > volatility
> > > > > > > > stocks) - this would allow a comparison of the 
> performance
> > > of
> > > > > that
> > > > > > > > trading signal/stop loss combination on high and low
> > > volatility
> > > > > > > > stocks.
> > > > > > > >
> > > > > > > > brian_z
> > > > > > > >
> > > > > > > >
> > > > > > > > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%
> 40yahoogroups.com><amibroker%
> > > 40yahoogroups.com><amibroker%40yahoogroups.com>,
> > > > > > > > "brian_z111" <brian_z111@> wrote:
> > > > > > > > >
> > > > > > > > > Louis,
> > > > > > > > >
> > > > > > > > > >Does anyone know if it is possible to get an 
absolute
> > > value
> > > > > > ATR?
> > > > > > > > >
> > > > > > > > > The Abs() function serves that purpose but I think 
you
> > > mean
> > > > > > > > something
> > > > > > > > > else.
> > > > > > > > >
> > > > > > > > > ATR is a measure of volatility and it is specific 
for 
> each
> > > > > > stock (or
> > > > > > > > > instrument). The whole idea of it (AFAIK) is to use 
> it on
> > > an
> > > > > > > > > individual
> > > > > > > > > stock basis.
> > > > > > > > >
> > > > > > > > > It can be useful to compare volatility:
> > > > > > > > >
> > > > > > > > > 1) internally e.g. against an average of the last 
(x)
> > > days OR
> > > > > > > > against
> > > > > > > > > the StDev (standard deviation) of the volatility 
> measure
> > > OR
> > > > > > just use
> > > > > > > > > StDev of the Close etc on its own.
> > > > > > > > >
> > > > > > > > > StDev() function does allow to change the setting 
> between
> > > 1
> > > > > or
> > > > > > 2 etc
> > > > > > > > >
> > > > > > > > > 2) externally to the volatility of the market OR a 
> sector
> > > > > that
> > > > > > the
> > > > > > > > > stock is a member of OR compared to another stock 
in 
> the
> > > same
> > > > > > sector
> > > > > > > > > etc.
> > > > > > > > >
> > > > > > > > > brian_z
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --- In amibroker@xxxxxxxxxxxxxxx <amibroker%
> 40yahoogroups.com><amibroker%
> > > 40yahoogroups.com><amibroker%
> > > > > 40yahoogroups.com>,
> > > > > > Graham
> > > > > > > > <kavemanperth@> wrote:
> > > > > > > > > >
> > > > > > > > > > you could try a percentage type
> > > > > > > > > >
> > > > > > > > > > ATR(10)/ref(c,-1)*100
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Cheers
> > > > > > > > > > Graham Kav
> > > > > > > > > > AFL Writing Service
> > > > > > > > > > http://www.aflwriting.com
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > On 24/02/2008, louisprefontaine <rockprog80@> 
wrote:
> > > > > > > > > > > Does anyone know if it is possible to get an 
> absolute
> > > > > value
> > > > > > > > ATR?
> > > > > > > > > I
> > > > > > > > > > > already use the ATR, but it changes from stock 
to
> > > stock,
> > > > > > > > > depending on
> > > > > > > > > > > the value of the stock. Would it be possible to 
> get an
> > > > > > > > absolute
> > > > > > > > > value
> > > > > > > > > > > indicator, like CMF, RSI, etc.? Thanks!
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > 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/