//+------------------------------------------------------------------+ //| CCI_Cross.mq4 | //| Copyright © 2006, Eli Hayun | //| http://www.elihayun.com | //| Built for ValeoFX | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Eli Hayun" #property link "http://www.elihayun.com" #property indicator_chart_window #property indicator_buffers 6 #property indicator_color1 EMPTY//Red// 5-CCi #property indicator_width1 0 #property indicator_color2 EMPTY//Red//5-CCi #property indicator_width2 0 #property indicator_color3 Yellow//15-CCi #property indicator_width3 3 #property indicator_color4 Yellow //15-CCi #property indicator_width4 3 #property indicator_color5 GreenYellow//40-CCi #property indicator_width5 4 #property indicator_color6 GreenYellow // 40-CCi #property indicator_width6 4 //---- input parameters -------------------------------------------- extern int FastCCI=5; extern int SlowCCI=25;//15 extern int VerySlowCCI=40;//28 extern int Move_Arrow = 5 ;//5 werk nie; kort nog iets onder sê Gerhard. //---- buffers ----------------------------------------------------- double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_NONE); SetIndexArrow(0,241);//217 SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_NONE); SetIndexArrow(1,242);//218 SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID, 3); SetIndexArrow(2,221);//221 SetIndexBuffer(2,ExtMapBuffer3); SetIndexEmptyValue(2,0.0); SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,3); SetIndexArrow(3,222);//222 SetIndexBuffer(3,ExtMapBuffer4); SetIndexEmptyValue(3,0.0); SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID,5); SetIndexArrow(4,241);//241 SetIndexBuffer(4,ExtMapBuffer5); SetIndexEmptyValue(4,0.0); SetIndexStyle(5,DRAW_ARROW,STYLE_SOLID,5); SetIndexArrow(5,242);//242 SetIndexBuffer(5,ExtMapBuffer6); SetIndexEmptyValue(5,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int shift; for(shift=Bars-1;shift>=0;shift--) { ExtMapBuffer1[shift] = 0; ExtMapBuffer2[shift] = 0; ExtMapBuffer3[shift] = 0; ExtMapBuffer4[shift] = 0; ExtMapBuffer5[shift] = 0; ExtMapBuffer6[shift] = 0; double fCCI_0 = iCCI(NULL, 0, FastCCI, PRICE_TYPICAL, shift); double fCCI_1 = iCCI(NULL, 0, FastCCI, PRICE_TYPICAL, shift+1); double fCCI_2 = iCCI(NULL, 0, FastCCI, PRICE_TYPICAL, shift+2); if (fCCI_0 > 35 && fCCI_1< 35 )//********************************* ExtMapBuffer1[shift] = Low[shift] - 3 * Point; if (fCCI_0 < -35 && fCCI_1> -35 )//******************************* ExtMapBuffer2[shift] = High[shift] + 3 * Point; double sCCI_0 = iCCI(NULL, 0, SlowCCI, PRICE_TYPICAL, shift); double sCCI_1 = iCCI(NULL, 0, SlowCCI, PRICE_TYPICAL, shift+1); double sCCI_2 = iCCI(NULL, 0, SlowCCI, PRICE_TYPICAL, shift+2); if (sCCI_0 > 81 && sCCI_1< 81 && sCCI_2 < 81)//71//62 ***************************************** ExtMapBuffer3[shift] = Low[shift] - 4 * Point; if (sCCI_0 < -81 && sCCI_1> -81 && sCCI_2 > -81)//71//62 ************************************** ExtMapBuffer4[shift] = High[shift] + 4 * Point; double vsCCI_0 = iCCI(NULL, 0, VerySlowCCI, PRICE_TYPICAL, shift); double vsCCI_1 = iCCI(NULL, 0, VerySlowCCI, PRICE_TYPICAL, shift+1); double vsCCI_2 = iCCI(NULL, 0, VerySlowCCI, PRICE_TYPICAL, shift+2); if (vsCCI_0 > 0 && vsCCI_1< 0 && vsCCI_2 < 0)//51//35***************** ExtMapBuffer5[shift] = Low[shift] - 5 * Point; if (vsCCI_0 < -0 && vsCCI_1> -0 && vsCCI_2 > -0)//51****************** ExtMapBuffer6[shift] = High[shift] + 5 * Point; } string sComment = ""; if (ExtMapBuffer1[0] != 0) sComment = sComment + " 1st UP"; if (ExtMapBuffer2[0] != 0) sComment = sComment + " 1st Down"; if (ExtMapBuffer3[0] != 0) sComment = sComment + " 2nd UP"; if (ExtMapBuffer4[0] != 0) sComment = sComment + " 2nd Down"; if (ExtMapBuffer5[0] != 0) sComment = sComment + " 3rd UP"; if (ExtMapBuffer6[0] != 0) sComment = sComment + " 3rd Down"; if ((sComment != "") && (!IsTesting())) { if (NewBar()) { PlaySound("wait.wav");//"expert.wav"); Print(Symbol(), " ", sComment); } Comment(TimeToStr(CurTime()), " ", sComment); } if ((sComment == "") && (!IsTesting())) { Comment(""); } return(0); } //+------------------------------------------------------------------+ bool NewBar() { static datetime dt = 0; //if (dt == 0) dt = Time[0]; if (dt != Time[0]) { dt = Time[0]; return(true); } return(false); } //===================================================================
Sample
Analysis
Market Information Used:
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_NONE
Implements a curve of type DRAW_ARROW
Indicators Used:
Commodity channel index
Custom Indicators Used:
Order Management characteristics:
Other Features:
It plays sound alerts