Author: ttitto
FiboPivots

This script is designed to provide a comprehensive visual overview of key price levels on your trading chart by combining three distinct types of technical analysis: Pivot Points, Fibonacci Retracements, and Moving Averages.

Core Functionality

The script automates the calculation of various market benchmarks and displays them clearly on your screen. Instead of requiring you to manually calculate these values, the tool identifies significant price boundaries based on historical data and displays them as organized labels and lines.

Key Components Explained

1. Pivot Point Analysis The script automatically calculates standard Pivot Points based on the price action of the previous trading session. It identifies:

  • Pivot Point (PP): The central equilibrium point of the market.
  • Resistance Levels (R1, R2): Potential "ceilings" where the price may face selling pressure.
  • Support Levels (S1, S2): Potential "floors" where the price may find buying interest.

2. Fibonacci Retracements The tool identifies the highest and lowest prices within a specific timeframe (which can be customized by you) and projects a wide range of Fibonacci levels. These include standard retracement levels (like 38.2%, 50%, and 61.8%) as well as extended "Fibonacci Extension" levels. These help traders identify potential areas where the market might pull back or expand during a trend.

3. Moving Averages The script integrates several popular Moving Averages (EMA and SMA) into its calculations. By including these, the tool helps you see the broader trend of the market—from fast-moving averages that capture immediate momentum to slower averages that represent long-term trends.

Visual Organization and User Experience

One of the primary features of this script is how it presents information:

  • Automatic Sorting: The script collects every single calculated price level (Pivots, Fibonaccis, MAs, and Highs/Lows), sorts them from highest to lowest in value, and organizes them into a clean list.
  • Color-Coded Labels: Each type of data is assigned a specific color to help you distinguish between them at a glance (e.g., Pivot Points have one color, Fibonacci levels another, and Moving Averages a third).
  • Real-Time Updates: The tool continuously updates these values as the market moves, ensuring that your visual dashboard always reflects the current state of the price action.

Summary for the Trader

In simple terms, this script acts as an automated "Price Dashboard." It scans the recent history to find where the "walls" (Resistance), "floors" (Support), and "trends" (Moving Averages) are located, then creates a ranked list of these levels on your chart so you can make more informed decisions about where to enter or exit a trade.

Indicators Used
Moving average indicator
9 Views
0 Downloads
0 Favorites
FiboPivots
//+------------------------------------------------------------------+
//|                                                   FiboPivots.mq4 |
//|                                                           ttitto |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "ttitto"
#property link      ""

extern string  CloseMarketTime="20:59:59";

int closebar;
datetime calcbegin;
datetime closemarkettime;
extern bool visible_bars=false;
extern string first_bar_time="yyyy.mm.dd hh:mm";
extern string last_bar_time="yyyy.mm.dd hh:mm";
extern color close_color=Cyan;
extern color fibo_color=Orange;
extern color fiboext_color=Red;
extern color ma_color=Black;
extern color pivot_color=Blue;
extern int fontsize=13;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   start();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
closemarkettime=StrToTime(CloseMarketTime);
if (CurTime()<=closemarkettime){closemarkettime=closemarkettime-24*60*60;}

closebar=(CurTime()-closemarkettime)/(60*Period());

double   highpr=High[Highest(NULL,0,MODE_HIGH,24*60/Period(),closebar)];
double   lowpr=Low[Lowest(NULL,0,MODE_LOW,24*60/Period(),closebar)];
double close=Close[closebar];

double pp=(highpr+lowpr+close)/3;
double s1=2*pp-highpr;
double s2=pp-(highpr-lowpr);
double r1=2*pp-lowpr;
double r2=pp+(highpr-lowpr);

string name=TimeToStr(closemarkettime);
calcbegin=closemarkettime+1;


      

//////////////////////////////////////////////////////////////////////

ObjectCreate("pp"+name,OBJ_TREND,0,calcbegin,pp,CurTime(),pp);
ObjectSet("pp"+name,OBJPROP_COLOR,Pink);
ObjectSet("pp"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("pp"+name,OBJPROP_PRICE1,pp);
ObjectSet("pp"+name,OBJPROP_TIME2,CurTime());
ObjectSet("pp"+name,OBJPROP_PRICE2,pp);
ObjectSet("pp"+name,OBJPROP_RAY,false);


ObjectCreate("ppt"+name,OBJ_TEXT,0,calcbegin,pp);
ObjectSetText("ppt"+name,"Pivot point "+DoubleToStr(pp,Digits),9);
ObjectSet("ppt"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("ppt"+name,OBJPROP_PRICE1,pp);
ObjectSet("ppt"+name,OBJPROP_COLOR,Pink);
//=======================================================================
ObjectCreate("r1"+name,OBJ_TREND,0,calcbegin,r1,CurTime(),r1);
ObjectSet("r1"+name,OBJPROP_COLOR,RoyalBlue);
ObjectSet("r1"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("r1"+name,OBJPROP_PRICE1,r1);
ObjectSet("r1"+name,OBJPROP_TIME2,CurTime());
ObjectSet("r1"+name,OBJPROP_PRICE2,r1);
ObjectSet("r1"+name,OBJPROP_RAY,false);


ObjectCreate("r1t"+name,OBJ_TEXT,0,calcbegin,r1);
ObjectSetText("r1t"+name,"R1 "+DoubleToStr(r1,Digits),9);
ObjectSet("r1t"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("r1t"+name,OBJPROP_PRICE1,r1);
ObjectSet("r1t"+name,OBJPROP_COLOR,RoyalBlue);
//=====================================================================
ObjectCreate("r2"+name,OBJ_TREND,0,calcbegin,r2,CurTime(),r2);
ObjectSet("r2"+name,OBJPROP_COLOR,Blue);
ObjectSet("r2"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("r2"+name,OBJPROP_PRICE1,r2);
ObjectSet("r2"+name,OBJPROP_TIME2,CurTime());
ObjectSet("r2"+name,OBJPROP_PRICE2,r2);
ObjectSet("r2"+name,OBJPROP_RAY,false);


ObjectCreate("r2t"+name,OBJ_TEXT,0,calcbegin,r2);
ObjectSetText("r2t"+name,"R2 "+DoubleToStr(r2,Digits),9);
ObjectSet("r2t"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("r2t"+name,OBJPROP_PRICE1,r2);
ObjectSet("r2t"+name,OBJPROP_COLOR,Blue);
//====================================================================
ObjectCreate("s1"+name,OBJ_TREND,0,calcbegin,s1,CurTime(),s1);
ObjectSet("s1"+name,OBJPROP_COLOR,HotPink);
ObjectSet("s1"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("s1"+name,OBJPROP_PRICE1,s1);
ObjectSet("s1"+name,OBJPROP_TIME2,CurTime());
ObjectSet("s1"+name,OBJPROP_PRICE2,s1);
ObjectSet("s1"+name,OBJPROP_RAY,false);


ObjectCreate("s1t"+name,OBJ_TEXT,0,calcbegin,s1);
ObjectSetText("s1t"+name,"S1 "+DoubleToStr(s1,Digits),9);
ObjectSet("s1t"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("s1t"+name,OBJPROP_PRICE1,s1);
ObjectSet("s1t"+name,OBJPROP_COLOR,HotPink);
//====================================================================
ObjectCreate("s2"+name,OBJ_TREND,0,calcbegin,s2,CurTime(),s2);
ObjectSet("s2"+name,OBJPROP_COLOR,Red);
ObjectSet("s2"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("s2"+name,OBJPROP_PRICE1,s2);
ObjectSet("s2"+name,OBJPROP_TIME2,CurTime());
ObjectSet("s2"+name,OBJPROP_PRICE2,s2);
ObjectSet("s2"+name,OBJPROP_RAY,false);


ObjectCreate("s2t"+name,OBJ_TEXT,0,calcbegin,s2);
ObjectSetText("s2t"+name,"S2 "+DoubleToStr(s2,Digits),9);
ObjectSet("s2t"+name,OBJPROP_TIME1,calcbegin);
ObjectSet("s2t"+name,OBJPROP_PRICE1,s2);
ObjectSet("s2t"+name,OBJPROP_COLOR,Red);

Comment(name+" "+closebar,"\n"+"Highest Price: "+highpr,"\n"+"Lowest Price: "+ lowpr,"\n"+ "Close Price: "+close);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Fibonacci/////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
double bars_number;
int bars_count;
int first_bar;
int last_bar;
double hgpr;
double lwpr;
double pr38,pr138up,pr138dn;
double pr50,pr150up,pr150dn;
double pr68,pr168up,pr168dn;
double pr23,pr123up,pr123dn;
double pr76,pr176up,pr176dn;

if (visible_bars==true)
   {  
   first_bar=FirstVisibleBar();  
   bars_count=BarsPerWindow();
   }
else
   {
   bars_number=((StrToTime(last_bar_time)-StrToTime(first_bar_time))/60)/Period();
   first_bar=MathFloor(bars_number)+1;
   last_bar=iBarShift(NULL,0,StrToTime(last_bar_time));
   }   

//Comment("Bars Number: "+bars_number+ " "+"First Bar: "+first_bar);

hgpr=High[Highest(NULL,0,MODE_HIGH,first_bar,last_bar)];
lwpr=Low[Lowest(NULL,0,MODE_LOW,first_bar,last_bar)];
pr23=(hgpr-lwpr)*0.236+lwpr;
pr38=(hgpr-lwpr)*0.382+lwpr;
pr50=(hgpr-lwpr)*0.5+lwpr;
pr68=(hgpr-lwpr)*0.681+lwpr;
pr76=(hgpr-lwpr)*0.764+lwpr;

pr123up=(hgpr-lwpr)*1.236+lwpr;
pr138up=(hgpr-lwpr)*1.382+lwpr;
pr150up=(hgpr-lwpr)*1.5+lwpr;
pr168up=(hgpr-lwpr)*1.681+lwpr;
pr176up=(hgpr-lwpr)*1.764+lwpr;

pr123dn=-(hgpr-lwpr)*0.236+lwpr;
pr138dn=-(hgpr-lwpr)*0.382+lwpr;
pr150dn=-(hgpr-lwpr)*0.5+lwpr;
pr168dn=-(hgpr-lwpr)*0.681+lwpr;
pr176dn=-(hgpr-lwpr)*0.764+lwpr;



//Drawing lines=========================================================

ObjectCreate("hgpr",OBJ_HLINE,0,StrToTime(last_bar_time),hgpr);
ObjectSet("hgpr",OBJPROP_COLOR,Black);
ObjectSet("hgpr",OBJPROP_PRICE1,hgpr);

ObjectCreate("Highest Price",OBJ_TEXT,0,StrToTime(last_bar_time),hgpr);
ObjectSetText("Highest Price","Highest price",10);
ObjectSet("Highest Price",OBJPROP_PRICE1,hgpr);
ObjectSet("Highest Price",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("Highest Price", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////

ObjectCreate("lwpr",OBJ_HLINE,0,StrToTime(last_bar_time),lwpr);
ObjectSet("lwpr",OBJPROP_COLOR,Black);
ObjectSet("lwpr",OBJPROP_PRICE1,lwpr);

ObjectCreate("Lowest Price",OBJ_TEXT,0,StrToTime(last_bar_time),lwpr);
ObjectSetText("Lowest Price","Lowest price",10);
ObjectSet("Lowest Price",OBJPROP_PRICE1,lwpr);
ObjectSet("Lowest Price",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("Lowest Price", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr23",OBJ_HLINE,0,StrToTime(last_bar_time),pr23);
ObjectSet("pr23",OBJPROP_COLOR,Black);
ObjectSet("pr23",OBJPROP_PRICE1,pr23);

ObjectCreate("pr23t",OBJ_TEXT,0,StrToTime(last_bar_time),pr23);
ObjectSetText("pr23t","fibo 23.6",10);
ObjectSet("pr23t",OBJPROP_PRICE1,pr23);
ObjectSet("pr23t",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr23t", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////

ObjectCreate("pr38",OBJ_HLINE,0,StrToTime(last_bar_time),pr38);
ObjectSet("pr38",OBJPROP_COLOR,Black);
ObjectSet("pr38",OBJPROP_PRICE1,pr38);

ObjectCreate("pr38t",OBJ_TEXT,0,StrToTime(last_bar_time),pr38);
ObjectSetText("pr38t","fibo 38.2",10);
ObjectSet("pr38t",OBJPROP_PRICE1,pr38);
ObjectSet("pr38t",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr38t", OBJPROP_COLOR,Black);
//////////////////////////////////////////////////////////////////////
ObjectCreate("pr50",OBJ_HLINE,0,StrToTime(last_bar_time),pr50);
ObjectSet("pr50",OBJPROP_COLOR,Black);
ObjectSet("pr50",OBJPROP_PRICE1,pr50);

ObjectCreate("pr50t",OBJ_TEXT,0,StrToTime(last_bar_time),pr50);
ObjectSetText("pr50t","fibo 50",10);
ObjectSet("pr50t",OBJPROP_PRICE1,pr50);
ObjectSet("pr50t",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr50t", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////

ObjectCreate("pr68",OBJ_HLINE,0,StrToTime(last_bar_time),pr68);
ObjectSet("pr68",OBJPROP_COLOR,Black);
ObjectSet("pr68",OBJPROP_PRICE1,pr68);

ObjectCreate("pr68t",OBJ_TEXT,0,StrToTime(last_bar_time),pr68);
ObjectSetText("pr68t","fibo 68.1",10);
ObjectSet("pr68t",OBJPROP_PRICE1,pr68);
ObjectSet("pr68t",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr68t", OBJPROP_COLOR,Black);
//////////////////////////////////////////////////////////////////////

ObjectCreate("pr76",OBJ_HLINE,0,StrToTime(last_bar_time),pr76);
ObjectSet("pr76",OBJPROP_COLOR,Black);
ObjectSet("pr76",OBJPROP_PRICE1,pr76);

ObjectCreate("pr76t",OBJ_TEXT,0,StrToTime(last_bar_time),pr76);
ObjectSetText("pr76t","fibo 76.4",10);
ObjectSet("pr76t",OBJPROP_PRICE1,pr76);
ObjectSet("pr76t",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr76t", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr123up",OBJ_HLINE,0,StrToTime(last_bar_time),pr123up);
ObjectSet("pr123up",OBJPROP_COLOR,Black);
ObjectSet("pr123up",OBJPROP_PRICE1,pr123up);

ObjectCreate("pr123upt",OBJ_TEXT,0,StrToTime(last_bar_time),pr123up);
ObjectSetText("pr123upt","fibo 123",10);
ObjectSet("pr123upt",OBJPROP_PRICE1,pr123up);
ObjectSet("pr123upt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr123upt", OBJPROP_COLOR,Black);
////////////////////////////////////////////////////////////////////////
ObjectCreate("pr123dn",OBJ_HLINE,0,StrToTime(last_bar_time),pr123dn);
ObjectSet("pr123dn",OBJPROP_COLOR,Black);
ObjectSet("pr123dn",OBJPROP_PRICE1,pr123dn);

ObjectCreate("pr123dnt",OBJ_TEXT,0,StrToTime(last_bar_time),pr123dn);
ObjectSetText("pr123dnt","fibo -123",10);
ObjectSet("pr123dnt",OBJPROP_PRICE1,pr123dn);
ObjectSet("pr123dnt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr123dnt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr138up",OBJ_HLINE,0,StrToTime(last_bar_time),pr138up);
ObjectSet("pr138up",OBJPROP_COLOR,Black);
ObjectSet("pr138up",OBJPROP_PRICE1,pr138up);

ObjectCreate("pr138upt",OBJ_TEXT,0,StrToTime(last_bar_time),pr138up);
ObjectSetText("pr138upt","fibo 138",10);
ObjectSet("pr138upt",OBJPROP_PRICE1,pr138up);
ObjectSet("pr138upt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr138upt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr138dn",OBJ_HLINE,0,StrToTime(last_bar_time),pr138dn);
ObjectSet("pr138dn",OBJPROP_COLOR,Black);
ObjectSet("pr138dn",OBJPROP_PRICE1,pr138dn);

ObjectCreate("pr138dnt",OBJ_TEXT,0,StrToTime(last_bar_time),pr138dn);
ObjectSetText("pr138dnt","fibo -138",10);
ObjectSet("pr138dnt",OBJPROP_PRICE1,pr138dn);
ObjectSet("pr138dnt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr138dnt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr150dn",OBJ_HLINE,0,StrToTime(last_bar_time),pr150dn);
ObjectSet("pr150dn",OBJPROP_COLOR,Black);
ObjectSet("pr150dn",OBJPROP_PRICE1,pr150dn);

ObjectCreate("pr150dnt",OBJ_TEXT,0,StrToTime(last_bar_time),pr150dn);
ObjectSetText("pr150dnt","fibo -150",10);
ObjectSet("pr150dnt",OBJPROP_PRICE1,pr150dn);
ObjectSet("pr150dnt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr150dnt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr150up",OBJ_HLINE,0,StrToTime(last_bar_time),pr150up);
ObjectSet("pr150up",OBJPROP_COLOR,Black);
ObjectSet("pr150up",OBJPROP_PRICE1,pr150up);

ObjectCreate("pr150upt",OBJ_TEXT,0,StrToTime(last_bar_time),pr150up);
ObjectSetText("pr150upt","fibo 150",10);
ObjectSet("pr150upt",OBJPROP_PRICE1,pr150up);
ObjectSet("pr150upt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr150upt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr168up",OBJ_HLINE,0,StrToTime(last_bar_time),pr168up);
ObjectSet("pr168up",OBJPROP_COLOR,Black);
ObjectSet("pr168up",OBJPROP_PRICE1,pr168up);

ObjectCreate("pr168upt",OBJ_TEXT,0,StrToTime(last_bar_time),pr168up);
ObjectSetText("pr168upt","fibo 168",10);
ObjectSet("pr168upt",OBJPROP_PRICE1,pr168up);
ObjectSet("pr168upt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr168upt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr168dn",OBJ_HLINE,0,StrToTime(last_bar_time),pr168dn);
ObjectSet("pr168dn",OBJPROP_COLOR,Black);
ObjectSet("pr168dn",OBJPROP_PRICE1,pr168dn);

ObjectCreate("pr168dnt",OBJ_TEXT,0,StrToTime(last_bar_time),pr168dn);
ObjectSetText("pr168dnt","fibo -168",10);
ObjectSet("pr168dnt",OBJPROP_PRICE1,pr168dn);
ObjectSet("pr168dnt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr168dnt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr176dn",OBJ_HLINE,0,StrToTime(last_bar_time),pr176dn);
ObjectSet("pr176dn",OBJPROP_COLOR,Black);
ObjectSet("pr176dn",OBJPROP_PRICE1,pr176dn);

ObjectCreate("pr176dnt",OBJ_TEXT,0,StrToTime(last_bar_time),pr176dn);
ObjectSetText("pr176dnt","fibo -176",10);
ObjectSet("pr176dnt",OBJPROP_PRICE1,pr176dn);
ObjectSet("pr176dnt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr176dnt", OBJPROP_COLOR,Black);
///////////////////////////////////////////////////////////////////////
ObjectCreate("pr176up",OBJ_HLINE,0,StrToTime(last_bar_time),pr176up);
ObjectSet("pr176up",OBJPROP_COLOR,Black);
ObjectSet("pr176up",OBJPROP_PRICE1,pr176up);

ObjectCreate("pr176upt",OBJ_TEXT,0,StrToTime(last_bar_time),pr176up);
ObjectSetText("pr176upt","fibo 176",10);
ObjectSet("pr176upt",OBJPROP_PRICE1,pr176up);
ObjectSet("pr176upt",OBJPROP_TIME1,Time[first_bar-3]);
ObjectSet("pr176upt", OBJPROP_COLOR,Black);
/////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////
//LEVELS////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
double ema8=iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
double ema21=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,0);
double sma200=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,0);
double sma89=iMA(NULL,0,89,0,MODE_SMA,PRICE_CLOSE,0);
double ema365=iMA(NULL,0,365,0,MODE_EMA,PRICE_CLOSE,0);


double levels[27][2];
levels[1][1]=1;
levels[1][0]=r1;

levels[0][0]=r2;
levels[0][1]=2;

levels[2][0]=pp;
levels[2][1]=3;

levels[3][0]=s2;
levels[3][1]=4;

levels[4][0]=s1;
levels[4][1]=5;

levels[5][0]=lwpr;
levels[5][1]=6;

levels[6][0]=hgpr;
levels[6][1]=7;

levels[7][0]=Close[0];
levels[7][1]=8;

levels[8][0]=ema8;
levels[8][1]=9;

levels[9][0]=ema21;
levels[9][1]=10;

levels[10][0]=sma200;
levels[10][1]=11;

levels[11][0]=sma89;
levels[11][1]=12;

levels[12][0]=ema365;
levels[12][1]=13;

levels[13][0]=pr38;
levels[13][1]=14;

levels[14][0]=pr50;
levels[14][1]=15;

levels[15][0]=pr68;
levels[15][1]=16;

levels[16][0]=pr23;
levels[16][1]=17;

levels[17][0]=pr76;
levels[17][1]=18;

levels[18][0]=pr138up;
levels[18][1]=19;

levels[19][0]=pr138dn;
levels[19][1]=20;

levels[20][0]=pr150up;
levels[20][1]=21;

levels[21][0]=pr150dn;
levels[21][1]=22;

levels[22][0]=pr168up;
levels[22][1]=23;

levels[23][0]=pr168dn;
levels[23][1]=24;

levels[24][0]=pr123up;
levels[24][1]=25;

levels[25][0]=pr123dn;
levels[25][1]=26;

levels[26][0]=pr176up;
levels[26][1]=27;

levels[27][0]=pr176dn;
levels[27][1]=28;


string comm,print;
ArraySort(levels,WHOLE_ARRAY,0,MODE_DESCEND);
for (int i=0;i<28;i++) {
   //comm=comm;
   ObjectDelete("Prices"+i);
   ObjectCreate("Prices"+i, OBJ_LABEL, 0, 0, 0);
   if (StringFind(comm,"F6")!=-1||StringFind(comm,"F2")!=-1||StringFind(comm,"F3")!=-1||StringFind(comm,"F7")!=-1||StringFind(comm,"F5")!=-1||StringFind(comm,"F ")!=-1) {
      ObjectSetText("Prices"+i, comm, fontsize, "Arial Bold", fibo_color);
   }
   if (StringFind(comm,"CLOS")!=-1) {
      ObjectSetText("Prices"+i, comm, fontsize, "Arial Bold", close_color);
   }
   if (StringFind(comm,"F1")!=-1||StringFind(comm,"F-")!=-1) {
      ObjectSetText("Prices"+i, comm, fontsize, "Arial Bold", fiboext_color);
   }
   if (StringFind(comm,"MA")!=-1) {
      ObjectSetText("Prices"+i, comm, fontsize, "Arial Bold", ma_color);
   }
   if (StringFind(comm,"S1")!=-1||StringFind(comm,"S2")!=-1||StringFind(comm,"PP")!=-1||StringFind(comm,"R1")!=-1||StringFind(comm,"R2")!=-1) {
      ObjectSetText("Prices"+i, comm, fontsize, "Arial Bold", pivot_color);
   }
   
   
   ObjectSet("Prices"+i,OBJPROP_YDISTANCE,50+i*15);
   ObjectSet("Prices"+i,OBJPROP_XDISTANCE,5);


   for (int j=1;j>=0;j--) {
      if (j==0){
         print=DoubleToStr(levels[i][j],Digits);
         comm=comm+":       "+print;
      }
      else {
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(1,Digits)) {
            print="R1"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(2,Digits)) {
            print="R2"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(3,Digits)) {
            print="PP"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(4,Digits)) {
            print="S2"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(5,Digits)) {
            print="S1"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(6,Digits)) {
            print="F Low"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(7,Digits)) {
            print="F High"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(8,Digits)) {
            print="CLOSE"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(9,Digits)) {
            print="EMA8"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(10,Digits)) {
            print="EMA21"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(11,Digits)) {
            print="SMA200"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(12,Digits)) {
            print="SMA89"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(13,Digits)) {
            print="EMA365"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(14,Digits)) {
            print="F38"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(15,Digits)) {
            print="F50"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(16,Digits)) {
            print="F68"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(17,Digits)) {
            print="F23"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(18,Digits)) {
            print="F76"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(19,Digits)) {
            print="F138"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(20,Digits)) {
            print="F-138"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(21,Digits)) {
            print="F150"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(22,Digits)) {
            print="F-150"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(23,Digits)) {
            print="F168"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(24,Digits)) {
            print="F-168"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(25,Digits)) {
            print="F123"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(26,Digits)) {
            print="F-123"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(27,Digits)) {
            print="F176"; comm=print;
         }
         if (DoubleToStr(levels[i][1],Digits)==DoubleToStr(28,Digits)) {
            print="F-176"; comm=print;
         }

         
         
      }
   }
}
//Comment(comm);

//ObjectCreate("Prices", OBJ_LABEL, 0, 0, 0);
//ObjectSetText("Prices", comm, 40, "Comic Sans MS", LawnGreen);*/
   return(0);
  }
//+------------------------------------------------------------------+

Comments