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

Re: [amibroker] AFL formula for CCI



PureBytes Links

Trading Reference Links




Dave,
 
The mean deviation in CCI requires that SMATP does NOT move 
over the period.
In your 
MD = Sum(Abs(SMATP - avg), 
period);
 
SMATP is moving.
 
You can not code itwith SUM 
or MA. You must use looping for that.
 
 

function<FONT 
face="Courier New"> MeanDev( array, mean, range ){  result = <FONT 
color=#ff00ff>0<FONT 
face="Courier New">;   
for<FONT 
face="Courier New">( i = range ; i < BarCount; i++ )   
{      result[ i ] = <FONT 
color=#ff00ff>0;  <FONT 
color=#008000>    <FONT face="Courier New" 
color=#008000>// the mean is not 'moving' over the range (outside the 
loop)      tm = 
mean[ i ]; <FONT 
face="Courier New">     
 <FONT 
face="Courier New">for( j = <FONT 
color=#ff00ff>0; j < range; j++ 
)      {       
 result[ i ] = result[ i ] + abs<FONT 
face="Courier New">( array[ i - j ] - tm );     
 }       <FONT 
face="Courier New"> result[ i ] = result[ i 
]/range;   }    
return result;}
n = <FONT face="Courier New" 
color=#ff00ff>20;
SMATP = <FONT 
color=#0000ff>MA(Avg,n);<FONT 
color=#008000>//1,2
MD = MeanDev( Avg, SMATP, n );
CCIx = (Avg - SMATP) / (<FONT 
face="Courier New">0.015 * MD);<FONT 
color=#008000>//5,6,7
Plot<FONT 
face="Courier New">(CCIx,<FONT 
color=#ff00ff>"CCIx",colorGreen,styleLine);<FONT 
color=#0000ff>
Plot(<FONT 
color=#0000ff>CCI(n),<FONT 
color=#ff00ff>"CCI",colorRed,styleLine);
 
Best regards,Tomasz Janeczkoamibroker.com
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  Dave Merrill 
  
  To: <A title=amibroker@xxxxxxxxxxxxxxx 
  href="">amibroker@xxxxxxxxxxxxxxx 
  Sent: Sunday, October 12, 2003 7:24 
  AM
  Subject: RE: [amibroker] AFL formula for 
  CCI
  
  <SPAN 
  class=806081305-12102003>thanks for jumping in graham.
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>first, I think AB's Avg is (H+L+C)/3, so we don't 
  need to calculated it again.
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>second, I think the problem we're both having is the 
  mean deviation code. my loop version sums, over 20 days, the absolute 
  values of the difference between TODAY'S SMATP and the typical price of that 
  day.
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>this non-loop version is close, not the results it 
  gives, but conceptually:
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>  MD = Sum(Abs(SMATP - avg), 
  period);
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>what's wrong I think is that for each day being 
  summed, it uses the SMATP value for that day, same as it uses the avg value 
  for that day. but as I said above, it needs the avg for each day, but the 
  SMATP value used should always be from the current day, the one being 
  calculated, not the value on each of the previous (Period) 
  days.
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>any more ideas? not just you graham, 
  but anyone?
  <SPAN 
  class=806081305-12102003> 
  <SPAN 
  class=806081305-12102003>dave
  <BLOCKQUOTE 
  >This 
    isn't an exact match, I tried to check against the description in ABhelp 
    files but couldn't quite follow it.I am missing something, just not 
    certain what.TP = (H+L+C)/3;SMATP = MA(TP,20);MD = MA(abs(TP 
    - SMATP),20);CCIx = (TP - SMATP) / (0.015 * 
    MD);Plot(CCIx,"CCIx",colorGreen,styleLine);Plot(CCI(20),"CCI",colorRed,styleLine);Cheers,Graham<A 
    href="">http://groups.msn.com/ASXShareTrading<A 
    href="">http://groups.msn.com/FMSAustralia 
    -----Original Message-----From: Dave Merrill 
    [mailto:dmerrill@xxxxxxx] Sent: Sunday, 12 October 2003 12:22 PMTo: 
    amibroker@xxxxxxxxxxxxxxxSubject: [amibroker] AFL formula for 
    CCIre the earlier discussion of using arrays as paremters to 
    built-inindicators, I need a version of the CCI that can take an array 
    for itsperiod.here's a description of how the 20-period CCI is 
    calculated, fromStockCharts.com:  1) Calculate today's Typical 
    Price (TP) = (H+L+C)/3 where H = high; L =low, and C = close.  
    2) Calculate today's 20-day Simple Moving Average of the Typical 
    Price(SMATP).  3) Calculate today's Mean Deviation. First, 
    calculate the absolute valueof the difference between today's SMATP and 
    the typical price for each ofthe past 20 days. Add all of these absolute 
    values together and divide by 20to find the Mean Deviation.  4) 
    The final step is to apply the Typical Price (TP), the Simple 
    MovingAverage of the Typical Price (SMATP), the Mean Deviation and a 
    Constant(.015) to the following 
    formula:      CCI = (Typical Price - SMATP) / 
    (.015 x Mean Deviation)according to my tests, this matches the 
    built-in CCI exactly:  MD = 0;      // MD 
    is Mean Deviation  for(i = 0; i < period; i++) 
    {    MD = MD + Abs(SMATP - Ref(avg, -i));  
    }  MD = MD / period;can anyone see how to do the same thing 
    with AFL array processing instead ofthe 
    loop?thanks,daveSend BUG REPORTS to 
    bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at:<A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to <A 
    href="">http://docs.yahoo.com/info/terms/ 
    Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend 
    SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    Send 
  BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 







Yahoo! Groups Sponsor


  ADVERTISEMENT 









Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.