PureBytes Links
Trading Reference Links
|
<SPAN
class=324330312-12102003>thanks tomasz, <FONT face="Courier New"
color=#0000ff size=2>but it's still not working
when I pass an array for the CCIx period, which is the end result I'm
looking for. I still get the same error "Error 3. Condition in IF, WHILE, FOR
statements has to be Numeric or Boolean type."
<SPAN
class=324330312-12102003>
<SPAN
class=324330312-12102003>any further ideas?
<SPAN
class=324330312-12102003>
<SPAN
class=324330312-12102003>here my actual code:
<SPAN
class=324330312-12102003>
<SPAN
class=324330312-12102003>==============
<SPAN
class=324330312-12102003>function MeanDev(array, mean, range) { result
= 0; for(i = range; i < BarCount; i++) { result[i] =
0; // the mean is not 'moving' over the range (outside the
loop) tm = mean[i]; for(j = 0; j < range; j++)
{ result[i] = result[i] + abs(array[i - j] -
tm); } result[i] = result[i] / range;
} return result;}function CCIx(period)
{ SMATP = MA(Avg, period); MD = MeanDev(Avg, SMATP,
period); result = (Avg - SMATP) / (0.015 * MD); return
result;}
<SPAN
class=324330312-12102003><SPAN
class=324330312-12102003>==============
<SPAN
class=324330312-12102003><SPAN
class=324330312-12102003>
<SPAN
class=324330312-12102003><SPAN
class=324330312-12102003>dave
<SPAN
class=324330312-12102003><SPAN
class=324330312-12102003>
<BLOCKQUOTE
>
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 =
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.
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
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.
|