CCI_Woodies指标属于CCI指标的一种优化,在副图绘制另类CCI。* s- z; B/ [8 G- } Y
- @1 R9 x6 l8 w+ a! Z
CCI_Woodies指标图表效果:CCI_Woodies指标
' r$ Y$ \3 z, l5 x+ y4 h0 [& W. @0 ~, C* q9 j7 B1 H Q
CCI_Woodies指标源码:
8 R; b- n5 z- q6 @6 }% w) A0 _0 Y1 G5 T! F3 n7 ?
//+------------------------------------------------------------------+
8 R. u( x5 @: [//| CCI_Woodies.mq4 |
1 z: F7 t0 f e- i5 x9 B//+------------------------------------------------------------------+
6 y n, H- v3 i#property copyright ""7 h3 L5 j) e) e" \' ?% j
#property link "http://www.125808047.com /"
$ u D4 K( ?( q# k. j: f' B2 y; U! A [
#property indicator_separate_window9 g; R" S. e2 Q7 Q$ a
#property indicator_buffers 23 \6 T6 ]2 L( Z/ y. e9 z
#property indicator_color1 SteelBlue
$ U9 c! U7 V5 K% k# C7 N4 ]#property indicator_color2 Red" W. G! Y8 d' |& ^$ }
//---- input parameters9 P4 T) [8 P$ Q* Z! O
extern int CCIPeriod1=14; ^# B/ ^0 C0 F; @1 ?
extern int CCIPeriod2=6;
/ p( j+ _8 ~5 v# J8 c//---- buffers% C. h% {& Z; g
double CCIBuffer1[];
) z1 f( R4 y! n! R; d0 qdouble CCIBuffer2[];/ ^/ B$ {7 ^. T: N. l
//+------------------------------------------------------------------+
8 h8 O0 o7 ~" K7 V P//| Custom indicator initialization function |# P4 c- J( d/ O- s# @0 _0 d
//+------------------------------------------------------------------+2 s( ]% ?+ n. g% R& M
int init()
9 ?8 G ^! n, k l {2 _$ v4 `/ S' ?1 n& {# w4 J
//---- indicator line
, ]3 T2 y$ d0 y3 P, j1 P SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,SteelBlue);$ b# B. r- E0 B+ ]7 L& i5 P5 N# o
SetIndexStyle(1,DRAW_LINE);
1 N9 D: T N d/ a SetIndexBuffer(0,CCIBuffer1);
/ X( M# P. ^. _ L: u* @ k SetIndexBuffer(1,CCIBuffer2);
- Q9 \2 z5 \2 `' ?8 a, K//----8 E. T% L2 S) _7 u4 ?
SetIndexDrawBegin(0,CCIPeriod1);- C% D; z! c1 _* Y
SetIndexDrawBegin(1,CCIPeriod1);
' \# E, Y l! q3 C$ E( A6 p7 ^ Comment("www.125808047.com");
$ I. p3 I3 U @2 N4 B) q* i//----
) H1 V F, b; f; v3 @* B1 ]/ B return(0);; y% G- {" r, ]0 o% _8 Z
}
2 H6 t# K' y+ g- ~' Z//+------------------------------------------------------------------+* G) S6 C6 C) G
//| CCI_Woodies |, h% L( N3 L* q+ W# |% o
//+------------------------------------------------------------------+
0 [! j) B' P7 ^int start()
. r o" I. h# o; i3 p& T9 | {1 z4 v7 e' B1 R: L7 A9 D
int i,counted_bars=IndicatorCounted();' B* R7 l+ p. T, O) m
//----
$ z, ]) b& ]5 W2 t1 o( ~; \8 r7 [ if(Bars<=CCIPeriod1) return(0);; I( |: r6 t* J& R& L4 C# L
//---- initial zero
) ]! I" E. p( A3 R I if(counted_bars<1)
$ `7 `& H! L0 h; H( L for(i=1;i<=CCIPeriod1;i++) CCIBuffer1[Bars-i]=0.0;
2 b+ a' _" l9 Z/ ^' h, w' i//----2 r$ d; n" W( D7 o1 R8 F7 Z
i=Bars-CCIPeriod1-1;
8 ]) h9 `5 R. Z, ?$ M if(counted_bars>=CCIPeriod1) i=Bars-counted_bars-1;
# v: u( L6 F3 ]& B4 x% u while(i>=0)
/ l! b$ H) j7 x- v }& R* K {
. L+ u( E8 B+ z1 k6 C0 x2 q% e# D CCIBuffer1[i]=iCCI(NULL,0,CCIPeriod1,PRICE_TYPICAL,i);
" ?: p9 i9 }" @2 D7 t2 b$ j CCIBuffer2[i]=iCCI(NULL,0,CCIPeriod2,PRICE_TYPICAL,i);
8 n4 w# u* R. @7 v2 O c: q1 T i--;" @% A5 X5 X/ I9 f: d
}
- C+ q1 d: L" i! V% \& ] return(0);* P {) O' `: l, I( e7 H
}
' L; r( l/ e4 o! ?//+------------------------------------------------------------------+ |