DualFiboLine_LastPeriod

Author: Copyright � 2011, Andrey N. Bolkonsky
Price Data Components
Series array that contains the highest prices of each bar
0 Views
0 Downloads
0 Favorites
DualFiboLine_LastPeriod
//+------------------------------------------------------------------+
//|                                      DualFiboLine_LastPeriod.mq4 |
//|                               Óðîâíè Ôèáîííà÷è (äâóíàïðàâëåííûå) |
//|                              ïî ïðåäûäóùåìó çàâåðø¸ííîìó ïåðèîäó |
//|                            Copyright © 2011, Andrey N. Bolkonsky |
//|                                                       04/03.2011 |
//|                           email: abolk@yandex.ru | skype: abolk1 |
//| Ïèøó è ìîäåðíèçèðóþ - ñîâåòíèêè, èíäèêàòîðû, ñêðèïòû - ïîä çàêàç |
//+------------------------------------------------------------------+
// Ïðè ñîçäàíèè DualFiboLine_LastPeriod (ìîäåðíèçàöèÿ è àäàïòàöèÿ)
// èñïîëüçîâàëñÿ ñêðèïò ñî ñëåäóþùèì òåêñòîì copyright:
//
//  yuraz (C) 2006-2009 yzh@mail.ru
//  äëÿ ñîçäàíèÿ äâóõñòîðîííåé ôèáî
//  2006, áëàãîäàðíîñòü çà ñîäåéñòâèå Âàäèìó Æóíêî
//  2008, Âèòàëèé
//
// íàçâàíèå ôàéëà ñêðèïòà: YURAZ_CreateDualFibo.mq4
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Andrey N. Bolkonsky"
#property link      "abolk@yandex.ru"
//---- indicator settings
#property indicator_chart_window
//---- input parameters
#define _LabelFibo "LabelFiboLine"
#define _LenFibo 13
//---- indicator parameters
extern int    _LastPeriod =PERIOD_D1; // Ïðîøåäøèé ïåðèîä, íà êîòîðûé óñòàíàâëèâàþòñÿ óðîâíè Ôèáî
extern int    _shiftStart =1;         // Íîìåð áàðà íàçàä (òàéìôðåéì ïåðèîäà), ñ êîòîðãî íà÷èíàåòñÿ ïðîøåäøèé ïåðèîä
extern int    _shiftEnd   =0;         // Íîìåð áàðà íàçàä (òàéìôðåéì ïåðèîäà), ñ êîòîðãî íà÷èíàåòñÿ òåêóùèé ïåðèîä
//---- FiboLine parameters
extern color  gFiboTLColor       =Red;         // Öâåò íàñòðîå÷íîé ëèíèè Ôèáî (TUNING LINE)  
extern color  gFiboColor         =Red;         // Öâåò Ôèáî
extern int    gFiboTLStyle       =STYLE_DOT;   // Íàñòðîéêà ñòèëÿ íàñòðîå÷íîé ëèíèè Ôèáî (TUNING LINE)
extern int    gFiboStyle         =STYLE_SOLID; // Íàñòðîéêà ñòèëÿ ëèíèè Ôèáî
extern int    gFiboTLStyle_WIDTH =0;           // Íàñòðîéêà òîëùèíû íàñòðîå÷íîé ëèíèè Ôèáî (TUNING LINE)
extern int    gFiboStyle_WIDTH   =0;           // Íàñòðîéêà òîëùèíû ëèíèè Ôèáî
extern bool   gFiboFONE          =true;        // true - ôîíîâîå îòîáðàæåíèå ëèíèé Ôèáî
       // êîððåêòèðîâêà óðîâíåé: 0 - óðîâåíü íå îòîáðàæàòü
extern string str1     ="===== Âåðõíèå óðîâíè";
extern double gsFibo31 =  1109.4; // 31 1109.0
extern double gsFibo30 =   685.4; // 30  685.4
extern double gsFibo29 =   598.0; // 29  598.0
extern double gsFibo28 =   510.8; // 28  510.8
extern double gsFibo27 =   423.6; // 27  423.6
extern double gsFibo26 =   361.8; // 26  369.6
extern double gsFibo25 =   311.0; // 25  315.7
extern double gsFibo24 =   261.8; // 24  261.8
extern double gsFibo23 =   211.0; // 23  211.8
extern double gsFibo22 =   161.8; // 22  161.8
extern double gsFibo21 =   138.2; // 21  138.2
extern string str2     ="===== Âíóòðåííèå óðîâíè";
       double gsFibo20 =   100.0; // 20    0.0/100.0
extern double gsFibo19 =    88.2; // 19   11.8/ 88.2
extern double gsFibo18 =    76.4; // 18   23.6/ 76.4
extern double gsFibo17 =    61.8; // 17   38.2/ 61.8
extern double gsFibo16 =    50.0; // 16   50.0/ 50.0
extern double gsFibo15 =    38.2; // 15   61.8/ 38.2
extern double gsFibo14 =    23.4; // 14   76.4/ 23.4
extern double gsFibo13 =    11.8; // 13   88.2/ 11.8
       double gsFibo12 =     0.0; // 12  100.0/  0.0
extern string str3     ="===== Íèæíèå óðîâíè";
extern double gsFibo11 =   138.2; // 11  138.2
extern double gsFibo10 =   161.8; // 10  161.8
extern double gsFibo09 =   211.0; // 09  211.8
extern double gsFibo08 =   261.8; // 08  261.8
extern double gsFibo07 =   311.0; // 07  315.7
extern double gsFibo06 =   361.8; // 06  369.6
extern double gsFibo05 =   423.6; // 05  423.6
extern double gsFibo04 =   510.4; // 04  510.8
extern double gsFibo03 =   598.4; // 03  598.0
extern double gsFibo02 =   685.4; // 02  685.4
extern double gsFibo01 =  1109.4; // 01 1109.0
       //
       double gsFibo31d;
       double gsFibo30d;
       double gsFibo29d;
       double gsFibo28d;
       double gsFibo27d;
       double gsFibo26d;
       double gsFibo25d;
       double gsFibo24d;
       double gsFibo23d;
       double gsFibo22d;
       double gsFibo21d;
       //
       double gsFibo20d;
       double gsFibo19d;
       double gsFibo18d;
       double gsFibo17d;
       double gsFibo16d;
       double gsFibo15d;
       double gsFibo14d;
       double gsFibo13d;
       double gsFibo12d;
       //
       double gsFibo11d;
       double gsFibo10d;
       double gsFibo09d;
       double gsFibo08d;
       double gsFibo07d;
       double gsFibo06d;
       double gsFibo05d;
       double gsFibo04d;
       double gsFibo03d;
       double gsFibo02d;
       double gsFibo01d;
//----
       bool   _isNewPeriod =true;
//----

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   initFibo();
   DeleteGraficAlert(_LabelFibo,_LenFibo);
   StartGraficAlert_Fibo();
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   datetime time1,time2;
   double price1,price2;
//----
   if(iTime(Symbol(),Period(),0)!=iTime(Symbol(),Period(),1))
      _isNewPeriod=true;
   //
   if(ObjectFind(_LabelFibo)==-1)
      _isNewPeriod=true;
//----
   if(_isNewPeriod)
     {
      StartGraficAlert_Fibo();
      _isNewPeriod=false;
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   DeleteGraficAlert(_LabelFibo,_LenFibo);
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DeleteGraficAlert(string define_Label, int len)
  {
   for(int i = ObjectsTotal() - 1; i >= 0; i--)
     {
       string label = ObjectName(i);
       if(StringSubstr(label, 0, len) != define_Label)
           continue;
       ObjectDelete(label);   
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void initFibo()
  {
   gsFibo31d =(gsFibo31)/100;
   gsFibo30d =(gsFibo30)/100;
   gsFibo29d =(gsFibo29)/100;
   gsFibo28d =(gsFibo28)/100;
   gsFibo27d =(gsFibo27)/100;
   gsFibo26d =(gsFibo26)/100;
   gsFibo25d =(gsFibo25)/100;
   gsFibo24d =(gsFibo24)/100;
   gsFibo23d =(gsFibo23)/100;
   gsFibo22d =(gsFibo22)/100;
   gsFibo21d =(gsFibo21)/100;
   //
   gsFibo20d =(gsFibo20)/100;
   gsFibo19d =(gsFibo19)/100;
   gsFibo18d =(gsFibo18)/100;
   gsFibo17d =(gsFibo17)/100;
   gsFibo16d =(gsFibo16)/100;
   gsFibo15d =(gsFibo15)/100;
   gsFibo14d =(gsFibo14)/100;
   gsFibo13d =(gsFibo13)/100;
   gsFibo12d =(gsFibo12)/100;
   //
   gsFibo11d =(gsFibo11-100)/100;
   gsFibo10d =(gsFibo10-100)/100;
   gsFibo09d =(gsFibo09-100)/100;
   gsFibo08d =(gsFibo08-100)/100;
   gsFibo07d =(gsFibo07-100)/100;
   gsFibo06d =(gsFibo06-100)/100;
   gsFibo05d =(gsFibo05-100)/100;
   gsFibo04d =(gsFibo04-100)/100;
   gsFibo03d =(gsFibo03-100)/100;
   gsFibo02d =(gsFibo02-100)/100;
   gsFibo01d =(gsFibo01-100)/100;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void StartGraficAlert_Fibo()
  {
   datetime time1,time2;
   double price1,price2;
//----
   time1 =iTime(Symbol(),_LastPeriod,_shiftEnd);
   price1=iHigh(Symbol(),_LastPeriod,_shiftStart);
   time2 =iTime(Symbol(),_LastPeriod,_shiftStart);
   price2=iLow (Symbol(),_LastPeriod,_shiftStart);
   //
   if(ObjectFind(_LabelFibo)==-1)
      CreateGraficAlert_Fibo(0,0,0,0);
   //
   ChangeGraficAlert_Fibo(time1,price1,time2,price2);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CreateGraficAlert_Fibo(datetime time1, double price1, datetime time2, double price2)
  {
   ObjectCreate(_LabelFibo,OBJ_FIBO,0,time1,price1,time2,price2);
   ObjectSet(_LabelFibo,OBJPROP_RAY,false);
   ObjectSet(_LabelFibo,OBJPROP_FIBOLEVELS,31);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ChangeGraficAlert_Fibo(datetime time1, double price1, datetime time2, double price2)
  {
   ObjectSet(_LabelFibo,OBJPROP_TIME1, time1 );
   ObjectSet(_LabelFibo,OBJPROP_PRICE1,price1);
   ObjectSet(_LabelFibo,OBJPROP_TIME2, time2 );
   ObjectSet(_LabelFibo,OBJPROP_PRICE2,price2);
//---- Âåðõíèå óðîâíè
   if(gsFibo31!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 0,            gsFibo31d   );
      ObjectSetFiboDescription(_LabelFibo,                    0,DoubleToStr(gsFibo31 ,1));
     }
   if(gsFibo30!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 1,            gsFibo30d   );
      ObjectSetFiboDescription(_LabelFibo,                    1,DoubleToStr(gsFibo30 ,1));
     }
   if(gsFibo29!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 2,            gsFibo29d   );
      ObjectSetFiboDescription(_LabelFibo,                    2,DoubleToStr(gsFibo29 ,1));
     }
   if(gsFibo28!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 3,            gsFibo28d   );
      ObjectSetFiboDescription(_LabelFibo,                    3,DoubleToStr(gsFibo28 ,1));
     }
   if(gsFibo27!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 4,            gsFibo27d   );
      ObjectSetFiboDescription(_LabelFibo,                    4,DoubleToStr(gsFibo27 ,1));
     }
   if(gsFibo26!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 5,            gsFibo26d   );
      ObjectSetFiboDescription(_LabelFibo,                    5,DoubleToStr(gsFibo26 ,1));
     }
   if(gsFibo25!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 6,            gsFibo25d   );
      ObjectSetFiboDescription(_LabelFibo,                    6,DoubleToStr(gsFibo25 ,1));
     }
   if(gsFibo24!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 7,            gsFibo24d   );
      ObjectSetFiboDescription(_LabelFibo,                    7,DoubleToStr(gsFibo24 ,1));
     }
   if(gsFibo23!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 8,            gsFibo23d   );
      ObjectSetFiboDescription(_LabelFibo,                    8,DoubleToStr(gsFibo23 ,1));
     }
   if(gsFibo22!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+ 9,            gsFibo22d   );
      ObjectSetFiboDescription(_LabelFibo,                    9,DoubleToStr(gsFibo22 ,1));
     }
   if(gsFibo21!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+10,            gsFibo21d   );
      ObjectSetFiboDescription(_LabelFibo,                   10,DoubleToStr(gsFibo21 ,1));
     }
//---- Âíóòðåííèå óðîâíè
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+11,                gsFibo20d );
      ObjectSetFiboDescription(_LabelFibo,                   11,DoubleToStr(100-gsFibo20,1)+"/"+DoubleToStr(gsFibo20,1));
   if(gsFibo19!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+12,                gsFibo19d );
      ObjectSetFiboDescription(_LabelFibo,                   12,DoubleToStr(100-gsFibo19,1)+"/"+DoubleToStr(gsFibo19,1));
     }
   if(gsFibo18!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+13,                gsFibo18d );
      ObjectSetFiboDescription(_LabelFibo,                   13,DoubleToStr(100-gsFibo18,1)+"/"+DoubleToStr(gsFibo18,1));
     }
   if(gsFibo17!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+14,                gsFibo17d );
      ObjectSetFiboDescription(_LabelFibo,                   14,DoubleToStr(100-gsFibo17,1)+"/"+DoubleToStr(gsFibo17,1));
     }
   if(gsFibo16!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+15,                gsFibo16d );
      ObjectSetFiboDescription(_LabelFibo,                   15,DoubleToStr(100-gsFibo16,1)+"/"+DoubleToStr(gsFibo16,1));
     }
   if(gsFibo15!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+16,                gsFibo15d );
      ObjectSetFiboDescription(_LabelFibo,                   16,DoubleToStr(100-gsFibo15,1)+"/"+DoubleToStr(gsFibo15,1));
     }
   if(gsFibo14!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+17,                gsFibo14d );
      ObjectSetFiboDescription(_LabelFibo,                   17,DoubleToStr(100-gsFibo14,1)+"/"+DoubleToStr(gsFibo14,1));
     }
   if(gsFibo13!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+18,                gsFibo13d );
      ObjectSetFiboDescription(_LabelFibo,                   18,DoubleToStr(100-gsFibo13,1)+"/"+DoubleToStr(gsFibo13,1));
     }
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+19,                gsFibo12d );
      ObjectSetFiboDescription(_LabelFibo,                   19,DoubleToStr(100-gsFibo12,1)+"/"+DoubleToStr(gsFibo12,1));
//---- Íèæíèå óðîâíè
   if(gsFibo11!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+20,            -gsFibo11d   );
      ObjectSetFiboDescription(_LabelFibo,                   20,DoubleToStr( gsFibo11 ,1));
     }
   if(gsFibo10!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+21,            -gsFibo10d   );
      ObjectSetFiboDescription(_LabelFibo,                   21,DoubleToStr( gsFibo10 ,1));
     }
   if(gsFibo09!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+22,            -gsFibo09d   );
      ObjectSetFiboDescription(_LabelFibo,                   22,DoubleToStr( gsFibo09 ,1));
     }
   if(gsFibo08!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+23,            -gsFibo08d   );
      ObjectSetFiboDescription(_LabelFibo,                   23,DoubleToStr( gsFibo08 ,1));
     }
   if(gsFibo07!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+24,            -gsFibo07d   );
      ObjectSetFiboDescription(_LabelFibo,                   24,DoubleToStr( gsFibo07 ,1));
     }
   if(gsFibo06!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+25,            -gsFibo06d   );
      ObjectSetFiboDescription(_LabelFibo,                   25,DoubleToStr( gsFibo06 ,1));
     }
   if(gsFibo05!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+26,            -gsFibo05d   );
      ObjectSetFiboDescription(_LabelFibo,                   26,DoubleToStr( gsFibo05 ,1));
     }
   if(gsFibo04!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+27,            -gsFibo04d   );
      ObjectSetFiboDescription(_LabelFibo,                   27,DoubleToStr( gsFibo04 ,1));
     }
   if(gsFibo03!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+28,            -gsFibo03d   );
      ObjectSetFiboDescription(_LabelFibo,                   28,DoubleToStr( gsFibo03 ,1));
     }
   if(gsFibo02!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+29,            -gsFibo02d   );
      ObjectSetFiboDescription(_LabelFibo,                   29,DoubleToStr( gsFibo02 ,1));
     }
   if(gsFibo01!=0)
     {
      ObjectSet               (_LabelFibo,OBJPROP_FIRSTLEVEL+30,            -gsFibo01d   );
      ObjectSetFiboDescription(_LabelFibo,                   30,DoubleToStr( gsFibo01 ,1));
     }
//----
   ObjectSet(_LabelFibo,OBJPROP_COLOR,     gFiboTLColor      );
   ObjectSet(_LabelFibo,OBJPROP_LEVELCOLOR,gFiboColor        );
   ObjectSet(_LabelFibo,OBJPROP_STYLE,     gFiboTLStyle      );
   ObjectSet(_LabelFibo,OBJPROP_LEVELSTYLE,gFiboStyle        );
   ObjectSet(_LabelFibo,OBJPROP_WIDTH,     gFiboTLStyle_WIDTH);
   ObjectSet(_LabelFibo,OBJPROP_LEVELWIDTH,gFiboStyle_WIDTH  );
   ObjectSet(_LabelFibo,OBJPROP_BACK,      gFiboFONE         );
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---