KC_v1
Download scriptThis tool is designed to provide traders with a visual representation of market volatility and trend direction by creating a "channel" around the current price action. Instead of just showing a single moving average line, it calculates two distinct boundaries that help identify the active trading range.
How the Logic Works
The script generates these boundaries using three primary components:
- The Core Trend (EMA): The tool first identifies the underlying trend by calculating an Exponential Moving Average. This represents the "average" price over a specific period, smoothed out to reduce market noise.
- The Volatility Measure (ATR): To understand how much the price is swinging, the script utilizes an Average True Range. This measures the typical distance between high and low prices during a specific timeframe.
- The Multiplier (Factor): This allows the tool to expand or contract the width of the channel based on your preference.
Visualizing the Result
By combining these elements, the script creates two separate lines plotted on your chart:
- The Upper Boundary: This is calculated by taking the moving average and adding a portion of the volatility measure. It acts as a ceiling for price movement.
- The Lower Boundary: This is calculated by taking the moving average and subtracting that same volatility portion. It acts as a floor for price movement.
Practical Application
Essentially, the logic creates a dynamic "tunnel" or channel. When the market is stable, these lines will stay relatively close together. When the market becomes highly volatile, the distance between the two lines expands automatically. This allows you to see not just where the price is currently heading, but also the degree of intensity and fluctuation occurring in the market at any given moment.
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+------------------------------------------------------------------+
//| KC.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
//---- Matsu
//---- indicator settings
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Red
//---- indicator parameters
extern int EMA=20;
extern int ATR=20;
extern double Factor=1.5;
//---- indicator buffers
double ind_buffer1[];
double ind_buffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexDrawBegin(0,EMA);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,ind_buffer1) &&
!SetIndexBuffer(1,ind_buffer2))
Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("KC("+EMA+","+ATR+","+Factor+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- KC counted in the 1-st additional buffer
for(int i=0; i<limit; i++)
ind_buffer1[i]=iMA(NULL,0,EMA,0,MODE_EMA,PRICE_CLOSE,i) + iATR(NULL,0,ATR,0)*Factor;
//---- signal line counted in the 2-nd additional buffer
for(i=0; i<limit; i++)
ind_buffer2[i]=iMA(NULL,0,EMA,0,MODE_EMA,PRICE_CLOSE,i) - iATR(NULL,0,ATR,0)*Factor;
//---- done
return(0);
}
//+------------------------------------------------------------------+
Comments