sell zone fibs_v1
Download scriptThis tool is designed to help traders visualize specific price zones on a chart based on moving average calculations. It acts as a visual aid that identifies potential "sell zones" by projecting several parallel levels relative to a dynamic trend line.
Core Logic and Functionality
Trend Identification The script begins by calculating a Moving Average (MA). This serves as the foundation of the tool, smoothing out market noise to show the underlying trend of the price action. Users can choose from various types of moving averages—such as Simple (SMA), Exponential (EMA), Smoothed (SMMA), Linear Weighted (LWMA), or Least Squares (LSMA)—depending on how they prefer to view the market's momentum.
Dynamic Zone Generation Once the primary Moving Average is established, the script automatically calculates seven distinct levels below that line. These levels are determined by specific "Fibonacci" multipliers provided in the settings. Instead of being static lines, these zones move dynamically with the Moving Average as the price changes.
Visual Output The tool renders these calculations on the chart as a series of horizontal markers or lines:
- The Base Line: Represents the primary Moving Average value.
- The Sub-Levels: Seven additional lines are plotted at set intervals below the main average.
How it Works for the Trader
When price action interacts with these generated levels, it provides a visual framework for identifying potential areas of resistance or "sell zones." By looking at where the price sits in relation to these seven tiered lines, traders can better anticipate potential reversals or identify specific price points where the market might show signs of slowing down.
In summary, the script transforms a single moving average into a multi-layered map of support and resistance levels, allowing for a more nuanced view of price behavior relative to the current trend.
//+------------------------------------------------------------------+
//| sell zone fibs.mq4 |
//| Copyright © 2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//----
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 Black
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Red
#property indicator_color5 Red
#property indicator_color6 Red
#property indicator_color7 Red
#property indicator_color8 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width4 1
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
//---- input parameters
extern int MAPeriod=55;
extern int MAType=2;
extern int fibo1=1;
extern int fibo2=2;
extern int fibo3=3;
extern int fibo4=4;
extern int fibo5=5;
extern int fibo6=6;
extern int fibo7=7;
//---- buffers
double LineBuffer[];
double Fib1[];
double Fib2[];
double Fib3[];
double Fib4[];
double Fib5[];
double Fib6[];
double Fib7[];
//---- variables
int MAMode;
string strMAType;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
//---- indicators
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_NONE);
SetIndexBuffer(0,LineBuffer);
SetIndexDrawBegin(0,MAPeriod);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Fib1);
SetIndexDrawBegin(1,MAPeriod);
SetIndexStyle(2,DRAW_LINE,STYLE_DOT,1);
SetIndexBuffer(2,Fib2);
SetIndexDrawBegin(2,MAPeriod);
SetIndexStyle(3,DRAW_LINE,STYLE_DOT,1);
SetIndexBuffer(3,Fib3);
SetIndexDrawBegin(3,MAPeriod);
SetIndexStyle(4,DRAW_LINE,STYLE_DOT,1);
SetIndexBuffer(4,Fib4);
SetIndexDrawBegin(4,MAPeriod);
SetIndexStyle(5,DRAW_LINE,STYLE_DOT,1);
SetIndexBuffer(5,Fib5);
SetIndexDrawBegin(5,MAPeriod);
SetIndexStyle(6,DRAW_LINE,STYLE_DOT,1);
SetIndexBuffer(6,Fib6);
SetIndexDrawBegin(6,MAPeriod);
SetIndexStyle(7,DRAW_LINE);
SetIndexBuffer(7,Fib7);
SetIndexDrawBegin(7,MAPeriod);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName( strMAType+ " (" +MAPeriod + ") ");
//----
switch(MAType)
{
case 1: strMAType="EMA"; MAMode=MODE_EMA; break;
case 2: strMAType="SMMA"; MAMode=MODE_SMMA; break;
case 3: strMAType="LWMA"; MAMode=MODE_LWMA; break;
case 4: strMAType="LSMA"; break;
default: strMAType="SMA"; MAMode=MODE_SMA; break;
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double LSMA(int Rperiod, int shift)
{
int i;
double sum;
int length;
double lengthvar;
double tmp;
double wt;
//----
length=Rperiod;
sum=0;
for(i=length; i>=1 ;i--)
{
lengthvar=length + 1;
lengthvar/=3;
tmp=0;
tmp =(i - lengthvar)*Close[length-i+shift];
sum+=tmp;
}
wt=sum*6/(length*(length+1));
//----
return(wt);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double MA;
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;
//----
for(int i=limit; i>=0; i--)
{
if (MAType==4)
{
MA=LSMA(MAPeriod,i);
}
else
{
MA=iMA(NULL,0,MAPeriod,0,MAMode,PRICE_LOW,i);
}
LineBuffer[i]=MA;
Fib1[i]=MA - fibo1*Point;
Fib2[i]=MA - fibo2*Point;
Fib3[i]=MA - fibo3*Point;
Fib4[i]=MA - fibo4*Point;
Fib5[i]=MA - fibo5*Point;
Fib6[i]=MA - fibo6*Point;
Fib7[i]=MA - fibo7*Point;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments