CCI_Woodies指标属于CCI指标的一种优化,在副图绘制另类CCI。- j1 y' w# U8 k) e) I
5 ~1 B' a2 ?. [CCI_Woodies指标图表效果:CCI_Woodies指标
) A e: @ K) a9 f# L% m" a
. `, A* A* D7 }3 lCCI_Woodies指标源码:
6 ~& i; t* r3 r6 m4 ~) t8 |6 E
2 S- L2 V& O8 {- l0 T. [" C//+------------------------------------------------------------------+
9 E$ N2 U; [: J8 x5 p+ R2 J) L//| CCI_Woodies.mq4 |
$ e7 n9 D2 I" B m* H) _//+------------------------------------------------------------------+
7 K; N: Z9 i2 ~' X#property copyright ""% W8 G9 k+ U% d7 R, z
#property link "http://www.125808047.com /"1 z3 T' J" \# o6 M
1 f, [0 F1 W# M3 `
#property indicator_separate_window, |2 q' q+ L' n9 [
#property indicator_buffers 2
9 R) g1 }/ i5 Y0 E6 V#property indicator_color1 SteelBlue" o2 l% Z5 }# w% n* t2 o v
#property indicator_color2 Red. c# i/ s1 M+ N
//---- input parameters
% r/ B* Z, f- D8 bextern int CCIPeriod1=14;' S- l7 s+ n9 }/ ] {, l& A9 Z" n
extern int CCIPeriod2=6;
0 u5 k' `" \: T' Z//---- buffers
" h i: z5 \! W, a5 Vdouble CCIBuffer1[];
. v# \9 L2 L- `1 U) ~double CCIBuffer2[];3 B+ Y* w d$ n4 ?% w
//+------------------------------------------------------------------+* U6 j8 L+ S" M) J
//| Custom indicator initialization function | v% p d- @0 ]) B5 g3 u
//+------------------------------------------------------------------+
. L" m: z( w" P& wint init()3 `: R8 h6 v k2 x0 T2 h N% x' V3 ^
{
. j5 v6 h4 M0 S* ?; [//---- indicator line
! Y3 h! ~6 ~8 h3 ?' \ SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,SteelBlue);8 v6 E4 G2 ~2 I- i# M: v* z4 L
SetIndexStyle(1,DRAW_LINE);
; j8 E. f" e! e3 ^6 F5 M& ] SetIndexBuffer(0,CCIBuffer1);
' [# b ] ^& ~" W+ A3 Z4 Q SetIndexBuffer(1,CCIBuffer2);8 p: L6 n2 m3 E9 ^
//----
; a! g/ m/ b- O% b W SetIndexDrawBegin(0,CCIPeriod1);9 s0 q* B$ V& q/ h: P% |( k3 t
SetIndexDrawBegin(1,CCIPeriod1);& [ Q% I. s1 y% z! ?; @
Comment("www.125808047.com");
# C- x3 Y0 F1 w0 D! F//----
1 b# t5 Z& S$ [# p2 L2 G8 C return(0);. t& t8 y @- u% b% P
}
. I! H3 h/ H2 M- _; n//+------------------------------------------------------------------+7 I7 V+ a: E, n) m8 ~# z
//| CCI_Woodies |
: z! ]4 D" o# d& ]; B) f8 Q, l//+------------------------------------------------------------------+
" C& E X* x8 U( z* B* L1 {int start()5 _6 |) k7 ]( M
{
) ]+ N$ ~0 b7 p int i,counted_bars=IndicatorCounted();
l* \: d& J5 `$ g4 k$ d' Q//----
. {3 g) g8 B5 X. b/ U if(Bars<=CCIPeriod1) return(0);
# N7 X5 u$ l, k4 W" o; A/ u//---- initial zero
4 I) V$ I6 f; r: h, n if(counted_bars<1)
% Y8 [7 f' ?# W8 L& g for(i=1;i<=CCIPeriod1;i++) CCIBuffer1[Bars-i]=0.0;
& Z6 { K$ A8 ~3 P1 C//----
( r% }) e' T% O1 | i=Bars-CCIPeriod1-1;
+ _( K* l& {8 [: j# R3 P if(counted_bars>=CCIPeriod1) i=Bars-counted_bars-1;
, }: f0 w+ G" `' | while(i>=0)
$ m) c# _) L' B4 D% P {
3 P* o/ h$ D) A, ?4 U CCIBuffer1[i]=iCCI(NULL,0,CCIPeriod1,PRICE_TYPICAL,i);/ |5 G6 f9 u4 y' |/ n+ g' I0 e
CCIBuffer2[i]=iCCI(NULL,0,CCIPeriod2,PRICE_TYPICAL,i);6 L* t3 I$ Q: p0 K; n ?
i--;
( r4 D% p% T+ W- j8 J+ z }2 W3 J2 y* t5 b0 d. X: k0 h
return(0);
1 n [) D5 v; G0 j3 B0 i! W }2 q W! n) f* H5 t* |. W
//+------------------------------------------------------------------+ |