Registered User Joined: 11/21/2004 Posts: 2
|
Does anyone know the formula for Price Headley's Acceleration Bands?
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 4,308
|
Apparently it is available in a number of books, but I had difficulty locating it out on the web. After a lot of searching, I finally found this formula, though I certainly cannot vouch for its accuracy.
Upperband:=(H*(1+2*((((H-L)/((H+L)/2))*1000)*0.001)))
{For lower band} Lowerband:=(L*(1-2*((((H-L)/((H+L)/2))*1000)*0.001)))
- Doug Teaching Online!
|
|
Registered User Joined: 10/7/2004 Posts: 22
|
you should be able to plot each of those formulas as a seperate indicator. I tried it. It works fine.
|
|
Registered User Joined: 1/1/2005 Posts: 2,645
|
QUOTE (Doug_H) Upperband:
(H*(1+2*((((H-L)/((H+L)/2))*1000)*0.001)))
Lowerband:
(L*(1-2*((((H-L)/((H+L)/2))*1000)*0.001)))
These are equivalent to:
Upperband:
H*(1+4*(H-L)/(H+L))
Lowerband:
L*(1-4*(H-L)/(H+L))
There must be something wrong?
Thanks, Jim Murphy
|
|
Registered User Joined: 11/21/2004 Posts: 2
|
Upper Band seems like it may work. I know to include 20 day sma on price chart. And Upper Band pcf seems to look better setting it to 10 day sma. This indicator is "supposed" to catch the big trend as it crosses above the 20 day sma. Seems to slow to work as a sell signal. Thanks Doug and those who replied.
|
|
Registered User Joined: 3/1/2005 Posts: 31
|
I'm a brand new user of TC5000 and am having to learn how to program various indicators, EasyScans, etc. I've been with TradeStation for the last year and became fairly good at using their EasyLanguage. So if I don't put this properly please don't get angry.
I've been using a self created set of Acceleration Bands based on Price Headly for the last year. It's an almost identical overlay from examples he gives and believe me the coding given here is definitely NOT even similar.
A proper set of Acceleration Bands should be similar to Bollinger Bands except smoothed tremendously. It creates a channel around the price bars or candles based on standard deviations from the middle average value based on the number of bars evaluated. The first step is to have an averaged price based on (usually) the close over a selected number of bars then to compute the SumSquare and Square and the SDev of the numbers obtained. The formula for it in EasyLanguage is:
Inputs: Price(Close), Length(10), NumDevUp(1.25), NumDevDn(-1.25), SmoothingFactor(10);
Variables: Avg(0), SDev(0), SmoothSDev(0), LowerBand(0), UpperBand(0) ;
Avg = Average(Price, Length) ; SDev = StandardDev(Price, Length, 1) ; SmoothSDev = Average(SDev, SmoothingFactor) ; UpperBand = Avg + NumDevsUp * SmoothSDev ; LowerBand = Avg + NumDevsDn + SmoothSDev ;
Plot1 = UpperBand ; Plot2 = LowerBand ;
I realize that the code above probably needs to be broken into two parts for two different indicators (Upper and Lower) but as you can see, there's a lot more to it then what's quoted in the posts above.
The reason for my input here is that of all the indicators and formulas I want to transfer to TC5000, this one is absolutely essential to my trading strategies. Without it TC5000 is a waste of my money and I'll need to find another software that can do it. I hate to think I'll have to pay $2400 for TS per year versus the $1000 for TC5000 but I need this to work for me.
If someone can adapt the above formula it will help a lot of people. In addition, because I'm new I don't know where to find the various formulas for the calculations of things like Standard Deviations. So far, all I've found is what's available when I try to create a custom New PCF. Is there somewhere else I can find more sophisticated formulas?
|
|
Worden Trainer
Joined: 10/7/2004 Posts: 65,138
|
drkenrich, I have absolutely no idea what the correct formula is for Price Headley's Acceleration Bands, but, while I’ve never used EasyLanguage, your script seems fairly straightforward. You might want to try this to see if it matches:
Select Chart Template | Add Indicator | Price Channel from the menus. Set the Smoothing Average to 10 Leave the Average Type as Simple Leave the Width Multiplier at 10 Set the Indicator Line Formula to:
C
Set the Channel Width Formula to:
1.25*SQR((C*C+C1*C1+C2*C2+C3*C3+C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9-10*AVGC10*AVGC10)/10)
Select Close
I did come up with a few notes that you might want to take into consideration. I suspect:
LowerBand = Avg + NumDevsDn + SmoothSDev ;
should actually be:
LowerBand = Avg + NumDevsDn * SmoothSDev ;
in your EasyLanguage script and used this assumption when creating the indicator.
I used a 1.25 factor at the beginning of the Channel Width Formula because the Width Multiplier can only be set in whole numbers. Had NumDevs been 1.2 or 1.3, I would have left it out of the Channel Width Formula and adjusted the width using the Width Multiplier.
Creating this indicator will be more complicated if the Moving Average applied to Price and the Standard Deviation are different.
You can adjust the Standard Deviation used in the Channel Width Formula using the directions in the following thread:
Modelling Bollinger Bands (& Standard Deviation) in a TC PCF
-Bruce Personal Criteria Formulas TC2000 Support Articles
|
|
Registered User Joined: 3/1/2005 Posts: 31
|
Bruce,
Thank you very much. It looks good and from this I can fine tune the channel.
For those interested in Price Headley's strategy, he waits for a bar to close outside of the channel. He wants the 21-day stochastic %K to exceed 80% (overbought) and to cross up over a 10-day %D (these are usually exponentially smoothed). He waits for confirmation of the price to close above the first day breakout close within the next three days. Once in he rides it until the %K falls below the 80% and then sets his trailing stop.
I modify this with additionaly MACD values similar to the stochastics and find it works fairly well. I usually set the SDev to 1.75 to 2 for most stocks in the Acceleration Bands calculations.
Dr. Ken Rich
p.s. I have two samples of Price Headley's stock charts with the Acceleration Bands in place for comparison on fine tuning if someone can tell me how to include them here in an attachment.
|
|
Registered User Joined: 3/1/2005 Posts: 31
|
I finally had a chance to fine tune the above formula and match it against two different screen shots from Price Headley's samples.
Follow the above instructions from Bruce L but change the leading 1.25* to 2.3*, Set your Smoothing Factor to 30, set it to Simple, not exponential, and set the Width Multiplier to 15.
The channel you view is almost identical to the one Price Headley uses.
Dr. Ken Rich
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
I think you might be missing something here ... but I cannot be sure since I have no familiarity with P.H.AccBnds
Bruce's syntax correction above looks correct - it makes no sense that the lower band would have a different form.
Going from the EL code published above, it appears that these bands are very similar to Bollinger bands (with 10-day period and 1.25 StdDev ~12 width) ... with one major exception.
Note that: SDev = StandardDev(Price, Length, 1) ; SmoothSDev = Average(SDev, SmoothingFactor) ; UpperBand = Avg + NumDevsUp * SmoothSDev ;
The difference between the above and Bollinger Bands is the second line. It calls for the Std.Dev value to be AVERAGED (10-day Simple MA in this case), BEFORE applying the width multiplier (1.25 in this case).
So the link to the Bollinger Band article might be a little misleading.
The actual equation for the Channel Width will be a bit messier, to incorporate that average effect:
1.25 / 10 * ( SQR((C*C+C1*C1+C2*C2+C3*C3+C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9-10*AvgC10.0*AvgC10.0)/10) + SQR((C1*C1+C2*C2+C3*C3+C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9+C10*C10-10*AvgC10.1*AvgC10.1)/10) + SQR((C2*C2+C3*C3+C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9+C10*C10+C11*C11-10*AvgC10.2*AvgC10.2)/10) + SQR((C3*C3+C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9+C10*C10+C11*C11+C12*C12-10*AvgC10.3*AvgC10.3)/10) + SQR((C4*C4+C5*C5+C6*C6+C7*C7+C8*C8+C9*C9+C10*C10+C11*C11+C12*C12+C13*C13-10*AvgC10.4*AvgC10.4)/10) + SQR((C5*C5+C6*C6+C7*C7+C8*C8+C9*C9+C10*C10+C11*C11+C12*C12+C13*C13+C14*C14-10*AvgC10.5*AvgC10.5)/10) + SQR((C6*C6+C7*C7+C8*C8+C9*C9+C10*C10+C11*C11+C12*C12+C13*C13+C14*C14+C15*C15-10*AvgC10.6*AvgC10.6)/10) + SQR((C7*C7+C8*C8+C9*C9+C10*C10+C11*C11+C12*C12+C13*C13+C14*C14+C15*C15+C16*C16-10*AvgC10.7*AvgC10.7)/10) + SQR((C8*C8+C9*C9+C10*C10+C11*C11+C12*C12+C13*C13+C14*C14+C15*C15+C16*C16+C17*C17-10*AvgC10.8*AvgC10.8)/10) + SQR((C9*C9+C10*C10+C11*C11+C12*C12+C13*C13+C14*C14+C15*C15+C16*C16+C17*C17+C18*C18-10*AvgC10.9*AvgC10.9)/10)
Jim Dean
|
|
Worden Trainer
Joined: 10/7/2004 Posts: 65,138
|
Tanstaafl, There really isn't any reason to make the formula messier in this particular situation. Add a parenthesis to the end of your formula and set the Indicator Line Formula to AVGC10. Now compare it to my setup (which has a Simple Smoothing Average of 10 and an Indicator Line Formula of C). I think you will find the outputs match.
As I mentioned in my original response, things get more complicated if the Moving Average applied to Price and the Standard Deviation are different. That is when expanding out the Average of the Standard Deviation makes sense and the nifty example you have provided becomes more useful.
-Bruce Personal Criteria Formulas TC2000 Support Articles
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
Hi, Bruce:
Thanks for catching the missing parentheses.
I'm sorry but I disagree with your comments. The formula that you provided creates different results than the one which I provided. You can simply plot them as custom indicators (forget the channel thing) to see that.
As far as I can tell, the formula I provided is an accurate translation of the original code which was posted. I cannot comment on whether the nuance of applying the SMA to the StdDev is a useful one, but it certainly does change the answers.
If you apply your formula using a Custom Channel on the top pane, and then also do a native 10-day, 12-width Bollinger Band on the same pane, you will see that the two are almost perfectly identical (not possible to type 12.5 in as a BB width).
Since the request was for code to model a (supposedly)DIFFERENT indicator than Bollinger Bands, it seems reasonable to stick with the originally-posted algorithm in the process of finding a solution.
Please take another look at the development logic I went thru before. I don't thing that this is a matter of calculating the StdDev based on a different MA than the center-line uses - it's simply a different formula that chooses to SMOOTH the StdDev width before applying it to the centerline.
I hope this helps clear up what I was trying to accomplish. Once again, I must note that I have not independently researched the P.H.AccBands so I cannot vouch for the correctness of the originally posted code ... I was just providing a translation to PCF-eze to create an identical result.
Jim Dean
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
FWIW, there is some reason to question whether the PHAccBnds formula posted originally IS in fact the PHAB algorithm. For instance, EJR reports in the Yahoo group that these bands are:
Note: MetaStock Formula for upper band Upperband:= (H*(1+2*((((H-L)/((H+L)/2))*1000)*0.001))); Mov(Upperband, 20, S );
... which she noted would be modelled by a TC PCF:
[Upper] H*(1+2*( ((H-L)/((H+L)/2))+ ((H1-L1)/((H1+L1)/2))+ ((H2-L2)/((H2+L2)/2))+ ((H3-L3)/((H3+L3)/2))+ ((H4-L4)/((H4+L4)/2))+ ((H5-L5)/((H5+L5)/2))+ ((H6-L6)/((H6+L6)/2))+ ((H7-L7)/((H7+L7)/2))+ ((H8-L8)/((H8+L8)/2))+ ((H9-L9)/((H9+L9)/2))+ ((H10-L10)/((H10+L10)/2))+ ((H11-L11)/((H11+L11)/2))+ ((H12-L12)/((H12+L12)/2))+ ((H13-L13)/((H13+L13)/2))+ ((H14-L14)/((H14+L14)/2))+ ((H15-L15)/((H15+L15)/2))+ ((H16-L16)/((H16+L16)/2))+ ((H17-L17)/((H17+L17)/2))+ ((H18-L18)/((H18+L18)/2))+ ((H19-L19)/((H19+L19)/2)))/20)
MetaStock Formula for lower band Lowerband:= (L*(1-2*((((H-L)/((H+L)/2))*1000)*0.001))); Mov(Lowerband, 20, S );
[Lower] L*(1-2*( ((H-L)/((H+L)/2))+ ((H1-L1)/((H1+L1)/2))+ ((H2-L2)/((H2+L2)/2))+ ((H3-L3)/((H3+L3)/2))+ ((H4-L4)/((H4+L4)/2))+ ((H5-L5)/((H5+L5)/2))+ ((H6-L6)/((H6+L6)/2))+ ((H7-L7)/((H7+L7)/2))+ ((H8-L8)/((H8+L8)/2))+ ((H9-L9)/((H9+L9)/2))+ ((H10-L10)/((H10+L10)/2))+ ((H11-L11)/((H11+L11)/2))+ ((H12-L12)/((H12+L12)/2))+ ((H13-L13)/((H13+L13)/2))+ ((H14-L14)/((H14+L14)/2))+ ((H15-L15)/((H15+L15)/2))+ ((H16-L16)/((H16+L16)/2))+ ((H17-L17)/((H17+L17)/2))+ ((H18-L18)/((H18+L18)/2))+ ((H19-L19)/((H19+L19)/2)))/20)
Quite a bit different than the formula at the top of this thread. As a matter of "intellectual curiousity" I would be interested to find out what the CORRECT algorithm is, if someone can direct me to the original article or book in which it was published.
Jim Dean
|
|
Worden Trainer
Joined: 10/7/2004 Posts: 65,138
|
Tanstaafl, Since I've already mentioned I don't know the actual formula for Price Headley's Acceleration Bands, I'll limit my comments to interpreting drkenrich's EasyLanguage version.
QUOTE (Tanstaafl) The difference between the above and Bollinger Bands is the second line. It calls for the Std.Dev value to be AVERAGED (10-day Simple MA in this case), BEFORE applying the width multiplier (1.25 in this case).
So the link to the Bollinger Band article might be a little misleading.
It doesn't make a difference if the Moving Average is applied before or after the Width Multiplier. The difference is simply the Acceleration Bands are Averaged while the Bollinger Bands are not.
QUOTE (Tanstaafl) I'm sorry but I disagree with your comments. The formula that you provided creates different results than the one which I provided. You can simply plot them as custom indicators (forget the channel thing) to see that.
They plot exactly the same if a Simple Smoothing Average of 10 is selected as part of the Custom Indicator using my formula. Please read again through my Thursday, May 19, 2005 6:49:26 PM post. The Custom Price Channel indicators also produce exactly the same plots. This does not mean your expansion is not useful, but it is unnecessary if the Moving Average applied to Price and the Standard Deviation are the same.
-Bruce Personal Criteria Formulas TC2000 Support Articles
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
My apologies, Bruce ... you are right. You did indicate the need to set the CI average to 10.
The formula I provided would be necessary for application in a PCF, but it's clearly much cleaner to use the internal averaging for plotting by using the internal average feature.
Thanks for your patience ... sorry I did not read your posting carefully enough.
Jim Dean
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
I don't know if this will help, but this is the Tradestation EasyLanguage code as given by Price Headley in his book, Big Trends in Trading on page 92.
UpperBand = Average ((high x (1+2 x ((((high - low)/((high + low)/2)) x 1000) x .001))) , 20)
MidPoint = Average (close , 20)
LowerBand = Average ((low x (1 - 2 x (((((high - low)/((high + low) / 2)) x 1000) x .001))) , 20)
Furthermore, he states that The bands are supposed to be equidistant from a simple 20 period moving average.
Headley also states that he takes the net directional movement each day (high-low) and divides it over the average price of the stock (high-low divided by 2) to get a percentage of directional movement for the stock and that the bands should contract when the stock is nontrending and expand when it is trending.
I hope this helps, I am also very interested in seeing if this indicator can be translated to TC.
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
Hi, Davemc:
Thanks for researching this and posting the info straight from the source. It takes some time to set up the Excel sheet to gen up these formulae, and I prefer doing so based on concrete info. I think you will find the PCF's below to match perfectly with examples you might see in the book.
First, to get a minor detail out of the way, the PCF to handle the directional movement qualifier that you mentioned in your 2nd-to-last paragraph is: 200*(H-L)/(H+L) which gives the percentage that you mentioned.
The formula posted above on 8:35am is very close in form to what you listed, but has an important difference ... in the form that you showed, the Average((High x (...)), 20) is different than EJR's PCF which does not include the (High*) multiplier WITHIN the averaging process ... this is required both by your formula and by MetaStock's: UpperBand = Average ((high x (1 + 2x((((high - low)/((high + low)/2)) x 1000) x .001))) , 20) ... and by derivation: LowerBand = Average ((Low x (1 - 2x((((high - low)/((high + low)/2)) x 1000) x .001))) , 20)
... removing unnecessary paren's & doing some small rearrangement (the *1000 and *.001 offer roundoff protection that I doubt is needed in the current TC version: UpperBand = Average ( high * (1 + 2* 2* (high - low)/(high + low) ) , 20) LowerBand = Average ( low * (1 - 2* 2* (high - low)/(high + low) ) , 20)
I suspect that the original "2x" in your formula (after the "1+") was intended to be a width multiplier ... that is, the example shows a double-wide PHAB, much like a Bollinger Band's width can be adjusted. That's why I left the "2* 2*" separate.
Simplifying further, to help define the width of the bands (for completeness), define: N = 2* 2* (high - low)/(high + low) ... then the band formulae are: Upper = Avg( H*(1+N), 20 ) Lower = Avg( L*(1-N), 20 ) ... the width of one day's component is: H*(1+N) - L*(1-N) = H + HN - L + LN ... so the width of the bands is: Width = Avg( H-L + N*(H+L), 20 )
So, without further ado, here is the PHAB for a 20-day window, with a 2x width ... ... for the Upper Band: PHABtop20,2 0.05*(H0*(1+4*(H0-L0)/(H0+L0))+ H1*(1+4*(H1-L1)/(H1+L1))+ H2*(1+4*(H2-L2)/(H2+L2))+ H3*(1+4*(H3-L3)/(H3+L3))+ H4*(1+4*(H4-L4)/(H4+L4))+ H5*(1+4*(H5-L5)/(H5+L5))+ H6*(1+4*(H6-L6)/(H6+L6))+ H7*(1+4*(H7-L7)/(H7+L7))+ H8*(1+4*(H8-L8)/(H8+L8))+ H9*(1+4*(H9-L9)/(H9+L9))+ H10*(1+4*(H10-L10)/(H10+L10))+ H11*(1+4*(H11-L11)/(H11+L11))+ H12*(1+4*(H12-L12)/(H12+L12))+ H13*(1+4*(H13-L13)/(H13+L13))+ H14*(1+4*(H14-L14)/(H14+L14))+ H15*(1+4*(H15-L15)/(H15+L15))+ H16*(1+4*(H16-L16)/(H16+L16))+ H17*(1+4*(H17-L17)/(H17+L17))+ H18*(1+4*(H18-L18)/(H18+L18))+ H19*(1+4*(H19-L19)/(H19+L19)))
... and for the Lower Band: PHABbot20,2 0.05*(L0*(1-4*(H0-L0)/(H0+L0))+ L1*(1-4*(H1-L1)/(H1+L1))+ L2*(1-4*(H2-L2)/(H2+L2))+ L3*(1-4*(H3-L3)/(H3+L3))+ L4*(1-4*(H4-L4)/(H4+L4))+ L5*(1-4*(H5-L5)/(H5+L5))+ L6*(1-4*(H6-L6)/(H6+L6))+ L7*(1-4*(H7-L7)/(H7+L7))+ L8*(1-4*(H8-L8)/(H8+L8))+ L9*(1-4*(H9-L9)/(H9+L9))+ L10*(1-4*(H10-L10)/(H10+L10))+ L11*(1-4*(H11-L11)/(H11+L11))+ L12*(1-4*(H12-L12)/(H12+L12))+ L13*(1-4*(H13-L13)/(H13+L13))+ L14*(1-4*(H14-L14)/(H14+L14))+ L15*(1-4*(H15-L15)/(H15+L15))+ L16*(1-4*(H16-L16)/(H16+L16))+ L17*(1-4*(H17-L17)/(H17+L17))+ L18*(1-4*(H18-L18)/(H18+L18))+ L19*(1-4*(H19-L19)/(H19+L19)))
... and for the Width: PHABwidth20,2 0.05*(H0-L0+(H0+L0)*4*(H0-L0)/(H0+L0)+ H1-L1+(H1+L1)*4*(H1-L1)/(H1+L1)+ H2-L2+(H2+L2)*4*(H2-L2)/(H2+L2)+ H3-L3+(H3+L3)*4*(H3-L3)/(H3+L3)+ H4-L4+(H4+L4)*4*(H4-L4)/(H4+L4)+ H5-L5+(H5+L5)*4*(H5-L5)/(H5+L5)+ H6-L6+(H6+L6)*4*(H6-L6)/(H6+L6)+ H7-L7+(H7+L7)*4*(H7-L7)/(H7+L7)+ H8-L8+(H8+L8)*4*(H8-L8)/(H8+L8)+ H9-L9+(H9+L9)*4*(H9-L9)/(H9+L9)+ H10-L10+(H10+L10)*4*(H10-L10)/(H10+L10)+ H11-L11+(H11+L11)*4*(H11-L11)/(H11+L11)+ H12-L12+(H12+L12)*4*(H12-L12)/(H12+L12)+ H13-L13+(H13+L13)*4*(H13-L13)/(H13+L13)+ H14-L14+(H14+L14)*4*(H14-L14)/(H14+L14)+ H15-L15+(H15+L15)*4*(H15-L15)/(H15+L15)+ H16-L16+(H16+L16)*4*(H16-L16)/(H16+L16)+ H17-L17+(H17+L17)*4*(H17-L17)/(H17+L17)+ H18-L18+(H18+L18)*4*(H18-L18)/(H18+L18)+ H19-L19+(H19+L19)*4*(H19-L19)/(H19+L19))
Jim Dean
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
oops I forgot to add the following to the prior post of 9:45 today ... since no Edit is possible, please consider this a part of that text:
Copyright 2005 by James D. Dean, All Rights Reserved
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
Tanstaafl,
Your follow up post from 9:59 a.m. seems to be missing whatever it is that you wanted to add to your your post of 9:45 a.m.
I wanted to thank you for working up the pcf formulas for this particular indicator. From the examples in his book, this indicator seems quite promising. I think it's great that there are so many talented people out there that are willing to work up these formulas for those of us that are not able, for whatever reason, to do it for ourselves.
Dave
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
Hi, Dave:
All that I intended to add was the copyright ... if it is not included, then Worden's copyright applies ... I want to keep some stuff I post under my ownership. No big deal.
Jim Dean
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
Well, Tanstaafl, I guess I need to pick your brain again, since I am not having much luck in getting this formula set correctly. I tried entering your formulas as a custom indicator. The bands seem to track the price chart correctly, but I have been unable to figure out how to enter the width formula, which I also entered as a custom indicator. The ABs run together with very little separation.
Thanks again for the help, It is much appreciated, Davemc
|
|
Worden Trainer
Joined: 10/7/2004 Posts: 65,138
|
davemc, I'm assuming Tanstaafl's formulas are designed for use as Personal Criteria Formulas. You are doing way to much work if you are using them to plot Custom Indicators.
PHABtop20,2: -Visible: Checked -Plot using price scale: Checked -Smoothing Average: 20 -Smoothing Type: Simple -Indicator Formula: H*(1+4*(H-L)/(H+L))
PHABbot20,2: -Visible: Checked -Plot using price scale: Checked -Smoothing Average: 20 -Smoothing Type: Simple -Indicator Formula: L*(1-4*(H-L)/(H+L))
PHABwidth20,2: -Visible: Checked -Center Zero Line: Unchecked -Plot using price scale: Unchecked -Smoothing Average: 20 -Smoothing Type: Simple -Indicator Formula: 5*(H-L)
Better yet, plot the top and bottom bands at the same time using a Custom Price Channel:
PHAB20,2: -Visible Checked -Plot Formula Line: Unchecked -Smoothing Average: 20 -Smoothing Type: Simple -Width Multiplier: 10 -Indicator Line Formula: (H+L+4*(H-L)^2/(H+L))/2 -Channel Width Multiplier: 2.5*(H-L)
-Bruce Personal Criteria Formulas TC2000 Support Articles
|
|
Registered User Joined: 1/14/2005 Posts: 21
|
Since pictures are worth a thousand words (which likely includes a few formulae also, I looked on the Price Headley web site to see what his examples on acceleration bands actually looked like. I found this picture of CMGI from the 1999 time frame. He describes his buy signal as three closes above the upper band which came in the third week of November. The sell signal depicted here is the first close below the upper band which transpired it appears during the last week of December. The buy and sell are marked with a 1 and a 0.
Then I looked on other web sites and found the same basic code that Bruce first posted with the notation that is was Metastock code:
Acceleration Bands {For upper band} Upperband:=(H*(1+2*((((H-L)/((H+L)/2))*1000)*0.001))); Mov(Upperband, 20, S );
{For lower band} Lowerband:=(L*(1-2*((((H-L)/((H+L)/2))*1000)*0.001))); Mov(Lowerband, 20, S );
So I used this code in the following TC-format as a custom indicator for the upper acceleration band:
A second custom indicator was constructed for the lower band with the above code and a 20 bar SMA was added. This is the result....
Comparing my TC chart with the example found on the Price Headley site I find the buy and sell points to be close enough (in this example they appear in the same positions as the one example) should anyone choose to use this template for further testing. I would add the caveat that a test using a sample size of ONE is not to be considered as a proof of anything.
Regards, j2d2
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
Thanks to J2D2 adding his take on ABs, I was able to figure out that I had neglected to set plot using price scale and a smoothing average of 20 for Tanstaafl's formula on the chart template. This has made all the difference on the width of the bands. Funny how those little details make a difference .
davemc
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
I have compared j2d2 and Tanstaafl's phab setups to three examples given in Headley's Big Trends in Trading: weekly yahoo from October 1999 to October 2000, JDSU weekly from October 1999 to Jan. 2001 and HRB weekly from 2000 to 2001 and it appears to me that j2d2's setup is quite accurate, whereas, Tanstaafls was off. It is quite possible that I still have set up his chart accurately, so, I will await his reply and see what I have messed up.
Thanks, all, davemc
|
|
Registered User Joined: 10/7/2004 Posts: 799 Location: Duluth, GA
|
Dave, I'm confused as to why your setups of these essentially identical formulae (mine and Bruce's) would show up differently than one another ... both Bruce and I seem to think that our forumulae are the same ... but mine was written so that it could be used EITHER as a PCF or as a Custom Indicator (it includes the 20-day Moving Average, so don't use any smoothing with the CI). Bruce's intended solely for use as a Custom Indicator, making it cleaner since the internal 20-day smoothing input can be used.
I have plotted both and they line up EXACTLY on top of one another. I suggest that you check out your smoothing factor settings.
If Bruce's agree with Headley's book, then mine do too (set up properly :~) ... that's good to know. Thanks for your help.
Jim Dean
|
|
Registered User Joined: 12/19/2004 Posts: 17
|
Good Morning, Tanstaafl,
Once I removed the smoothing average from your formula, both j2d2's and your phabs now look essentially the same on the four different price charts I used to compare them. Thanks to you and j2d2 for your work on this, and I can't wait to see if this actually works in practice. I am going to combine this with another indicator of his, taking a 5 bar, 10 bar, 20 bar and 50 bar MA of relative strength compared to an index such as the Nasdaq Composite to show if the stock is performing better than the group of stocks it is being compared with.
davemc
|
|
Registered User Joined: 10/7/2004 Posts: 1,006
|
Hi j2d2,
How did you copy and paste the images into your post? I have a trial copy of SnagIt, with SnagIt I can copy and paste an image into Word or any other document but can't paste it into this forum. I searched for an answer here but found none, so if you or anyone else knows how this is accomplished, please let me know, it would be greatly appreciated.
Thanks Winnie
|
|
Registered User Joined: 9/25/2005 Posts: 1
|
I am a new TC Scan user and having a great deal of diffuculty getting the velocity indicator scan to work. Can you help - Bizmarc
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 18,819
|
Can you give me more details on what velocity indicator scan you are referring to?
- Craig Here to Help!
|
|
Registered User Joined: 1/14/2005 Posts: 21
|
QUOTE (Winnie) Hi j2d2,
How did you copy and paste the images into your post? I have a trial copy of SnagIt, with SnagIt I can copy and paste an image into Word or any other document but can't paste it into this forum. I searched for an answer here but found none, so if you or anyone else knows how this is accomplished, please let me know, it would be greatly appreciated.
Thanks Winnie
Hello Winnie: I am not familiar with SnagIt. I use PrintKey Pro which is basic screen capture software and very likely similar to what you are using. My software allows me to capture the whole screen or just selected parts that I am interested in. Then I select a format, usually gif or jpeg, and save the image in a separate folder on my hard drive. From that point it is basically the same procedure that you would follow for adding an avatar/icon to your posts on this forum. In simple terms, you need to find a place on the internet where you can upload your picture to a permanent location and then you come back to this forum and create a post that points to where you stored it. This is usually referred to as finding yourself a web host. So do a Google search on web hosting sites or internet host sites and read what you can expect to get from the top ten hosting sites in terms of space, reliability and ease of use. Then decide if you really need that much space and reliability and look at some of the places that offer a limited amount of free or relatively free space for limited use and limited budgets. If you need more information please ask one of the trainers who are certainly more qualified than I at explaining how things work on their forum. Regards, j2d2
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 4,308
|
You did a great job of explaining, J2d2. Thanks for taking the time to share your expertise. I've taken the liberty of copying and pasting Winnie's question and your reply into a new topic in the Ask A Trainer Forum (Including Images in Your Forum Posts). This way, more people will find your helpful comments than they would if they remeained here in an unrelated topic.
- Doug Teaching Online!
|
|
Registered User Joined: 4/27/2006 Posts: 10
|
Hello All,
Does anyone know how to create a scan that would provide a list of stocks that would work well using the Acceleration Bands formula that i2d2 provided?
Thanks.
Don Duhon
|
|
Registered User Joined: 1/28/2005 Posts: 6,049
|
dduhon
There is no simple answer to this question. Since price bands are a smoothed measure of volatility. Any stock with a strong price move will stay outside of the bands.
There are two schools of thought on volatility. A volatile stock will stay volatile. A stock needs to rest before it becomes volatile.
You could create a scan:
(MAXH50-MINL50)/C*100 (or anything else that measures price volatility)
Create two watchlists (high volatility) and (low volatility). See which works best for you. I would also add some fundamental filters. Price,volume,earnings, and so on. ---------------------------------------------------------------------------------------- Another idea is to create a list of stocks that "worked". Like CMGI above.
You would find these by eye. Take note of how long they were above the bands. (CMGI approx. 33 days)
Measure the percent change on the winners over 10 days from the first day they are above the band (mid NOV for CMGI)
You would do this with a custom date sort.
Lets say that the other stocks looked like CMGI.
You would know on average how far they moved (in percent) to start the trend. You would know that they last approx 30 days.
So you would screen for stocks that moved that much over 10 days. With the assumption you are jumping on the trend 1/3 of the way into it.
You would visually check that they are above the bands.
Hope that helps Good Luck
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 18,819
|
Don,
What do you mean by "work well"?
What do you want to scan for? The price outside the bands?
- Craig Here to Help!
|
|
Registered User Joined: 4/27/2006 Posts: 10
|
Craig and diceman
Thanks for comments.
Yes, I want to scan for prices above or below the bands on stocks that would tend to be outside for a while instead of bouncing out and into the bands to quickly.
I thought there might be some way to scan for stocks that would tend to work well with the acceleration band method. The diceman comment on volatility was what I may have been thinking.
Also, some of Headley's comments inply that this method works better with some stocks than others. So I'm trying to get a list of stock that I could run this scan on.
Thanks again.
Don
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 18,819
|
How many days will it have to be outside the bands to qualify as being "outside for awhile"?
- Craig Here to Help!
|
|
Registered User Joined: 4/27/2006 Posts: 10
|
Craig,
I was thinking I could put in a variable.
But if I had to choose a fixed time frame, I would choose 3 days.
Thanks.
Don
|
|
Worden Trainer
Joined: 10/1/2004 Posts: 18,819
|
Here is the formula for today:
C0<=0.05*(L0*(1-4*(H0-L0)/(H0+L0))+ L1*(1-4*(H1-L1)/(H1+L1))+ L2*(1-4*(H2-L2)/(H2+L2))+ L3*(1-4*(H3-L3)/(H3+L3))+ L4*(1-4*(H4-L4)/(H4+L4))+ L5*(1-4*(H5-L5)/(H5+L5))+ L6*(1-4*(H6-L6)/(H6+L6))+ L7*(1-4*(H7-L7)/(H7+L7))+ L8*(1-4*(H8-L8)/(H8+L8))+ L9*(1-4*(H9-L9)/(H9+L9))+ L10*(1-4*(H10-L10)/(H10+L10))+ L11*(1-4*(H11-L11)/(H11+L11))+ L12*(1-4*(H12-L12)/(H12+L12))+ L13*(1-4*(H13-L13)/(H13+L13))+ L14*(1-4*(H14-L14)/(H14+L14))+ L15*(1-4*(H15-L15)/(H15+L15))+ L16*(1-4*(H16-L16)/(H16+L16))+ L17*(1-4*(H17-L17)/(H17+L17))+ L18*(1-4*(H18-L18)/(H18+L18))+ L19*(1-4*(H19-L19)/(H19+L19)))
For yesterday use the same PCF but add 1 to every value after C, H or L so it would start:
C1<=0.05*(L1*(1-4*(H1-L1)......
For two days ago use the same PCF but add 2 to every value after C, H or L so it would start:
C2<=0.05*(L2*(1-4*(H2-L2)......
This will give you a PCF for each day. Add all three to the same EasyScan to find stocks that closed below their bands three days in a row.
- Craig Here to Help!
|
|
Registered User Joined: 12/14/2004 Posts: 5
|
It seems there was a pretty long thread on Price Headley's Acceleration Bands, but what is the final result?
It seems one method is to use the Custom Indicator as put forth by j2d2.
But what is the final answer if one wants a PCF ???
I am still a little confused.
Would it be possible for him or his company to put out an offical statement? Since he published this info in his book, I do not see it as a copyright issue.
Thank you, Letgo
|
|
Guest-1 |