CCIFilterv0.2

Download script
Author: Copyright � 2006, Forex-TSD.com
CCIFilterv0.2

This tool is designed to help traders identify and visualize market trends by filtering price movements through a specific momentum indicator (the CCI). Instead of just showing raw data, it categorizes the market into four distinct trend states, making it easier to understand whether the current price action is strong, weak, or neutral.

Core Logic and Trend Identification

The script analyzes the relationship between current price momentum and two specific "trigger levels." Based on where the momentum falls, it classifies the market into one of the following four categories:

  • Strong Upward Trend: Triggered when the momentum exceeds the upper threshold. This indicates high-velocity buying pressure.
  • Mild Upward Trend: Occurs when momentum is positive but stays below the upper threshold. This suggests a steady, moderate increase in price.
  • Mild Downward Trend: Occurs when momentum is negative but remains above the lower threshold. This suggests a gradual, controlled decrease in price.
  • Strong Downward Trend: Triggered when momentum drops below the lower threshold. This indicates high-velocity selling pressure.

Visual Representation

To make this information accessible at a glance, the script plots four different colored histograms on your chart's sub-window. Each color corresponds to one of the trend states mentioned above. By observing which bar is active, you can instantly recognize the current "mood" of the market without having to interpret complex mathematical values yourself.

Alert System

Beyond just visual cues, the script includes an automated notification system. When the market shifts into any of these four trend states, the tool can generate a real-time alert on your screen. This ensures that you are immediately notified of momentum changes as they happen, allowing for quicker reactions to new market trends.

Summary of Benefits

  • Trend Clarification: Simplifies complex momentum data into four easy-to-read categories.
  • Visual Consistency: Uses color-coded histograms to highlight the prevailing trend strength.
  • Real-Time Monitoring: Provides instant notifications for trend shifts, helping you stay informed even when not staring directly at the charts.
12 Views
0 Downloads
0 Favorites
CCIFilterv0.2
//+------------------------------------------------------------------+
//|                                                    CCIFilter.mq4 |
//|                                  Copyright © 2006, Forex-TSD.com |
//|                                                Written by nnjeim |   
//|                                                                  |                                      
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Forex-TSD.com "
#property link      "http://www.forex-tsd.com/"

#property indicator_separate_window
#property indicator_minimum -0.05
#property indicator_maximum 1.05
#property indicator_buffers 4
#property indicator_color1 MediumBlue
#property indicator_color2 Crimson
#property indicator_color3 LightBlue
#property indicator_color4 Orange



//---- input parameters
extern int PeriodCCI=50;
extern int UpperTriggerLevel=100;
extern int LowerTriggerLevel=-100;
extern int AlertON=1;
//---- indicator buffers
double UpBuffer1[];
double DnBuffer1[];
double UpBuffer2[];
double DnBuffer2[];
double alertTag;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  int init()
  {
   string short_name;
//---- indicator line
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,2);
   
   SetIndexBuffer(0,UpBuffer1);
   SetIndexBuffer(1,DnBuffer1);
   SetIndexBuffer(2,UpBuffer2);
   SetIndexBuffer(3,DnBuffer2);
   
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- name for DataWindow and indicator subwindow label
   short_name="CCI Filter("+PeriodCCI+")";
   IndicatorShortName(short_name);
   SetIndexLabel(0,"UpTrend");
   SetIndexLabel(1,"DownTrend");
   SetIndexLabel(2,"Mild UpTrend");
   SetIndexLabel(3,"Mild DownTrend");
   
//----
   SetIndexDrawBegin(0,PeriodCCI);
   SetIndexDrawBegin(1,PeriodCCI);
   SetIndexDrawBegin(2,PeriodCCI);
   SetIndexDrawBegin(3,PeriodCCI);  
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| CCIFilter                                                         |
//+------------------------------------------------------------------+
int start()
  {
   int shift,trend;
   double CCI0;

   
   for(shift=Bars-PeriodCCI-1;shift>=0;shift--)
   {	
   CCI0=iCCI(NULL,0,PeriodCCI,PRICE_CLOSE,shift);
   	
	  if (CCI0>0 && CCI0<UpperTriggerLevel)  trend=1;
	  if (CCI0>UpperTriggerLevel)  trend=2;  
	  if (CCI0<0 && CCI0>LowerTriggerLevel) trend=-1;
	  if (CCI0<LowerTriggerLevel)  trend=-2;
	  
	  if (trend==1) 
	  {
	  
	  UpBuffer1[shift]=0;
	  UpBuffer2[shift]=1;
	  DnBuffer1[shift]=0;
	  DnBuffer2[shift]=0;
	  if(AlertON==1 && alertTag!=Time[0]) {Alert("Mild UP Trend ",Symbol()," Period ",Period());alertTag = Time[0];}
	  }
	  if (trend==2) 
	  {
	  
	  UpBuffer1[shift]=1;
	  UpBuffer2[shift]=0;
	  DnBuffer1[shift]=0;
	  DnBuffer2[shift]=0;
	  if(AlertON==1 && alertTag!=Time[0]) {Alert("UP Trend ",Symbol()," Period ",Period());alertTag = Time[0];}
	  
	  }
	  if (trend==-1) 
	  {
	   
	  UpBuffer1[shift]=0;
	  UpBuffer2[shift]=0;
	  DnBuffer1[shift]=0;
	  DnBuffer2[shift]=1;
	  if(AlertON==1 && alertTag!=Time[0]) {Alert("Mild Down Trend ",Symbol()," Period ",Period());alertTag = Time[0];}
	  }
	  
	  if (trend==-2) 
	  {
	  
	  UpBuffer1[shift]=0;
	  UpBuffer2[shift]=0;
	  DnBuffer1[shift]=1;
	  DnBuffer2[shift]=0;
	  if(AlertON==1 && alertTag!=Time[0]) {Alert("Down Trend ",Symbol()," Period ",Period());alertTag = Time[0];} 
	  
	  }
	}
	return(0);	
 }

Comments