Author: Copyright � 2006 YuraZ-VAF-Zhunko-Nestor
Axel-Pivot
Price Data Components
Series array that contains the lowest prices of each barSeries array that contains the highest prices of each barSeries array that contains close prices for each bar
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
Axel-Pivot
//+-------------------------------------------------------------------+
//|                                MF_Pivot AXEL 0-2254.mq4           |
//|                                Copyright © YuraZ-VAF-Zhunko-Nestor|
//|                                MF YURAZ     yzh@mail.ru           |
//|                                MF VAF  vazh-af@inbox.ru           |
//|                                MF ZHUNKO zhunko@mail.ru           |
//|                                MF NESTOR a_nesterchuk@mail.ru     |
//+-------------------------------------------------------------------+
//| Èäèêàòîð ðàçðàáîòàí ïî ìàòåðèàëàì ÀÊÀÄÅÌÈÈ ÌÔ.                    |
//| ÈÑÏÐÀÂËÅÍÍÀß ÂÅÐÑÈß.                                              |
//| Ñîâïàäàåò ñ òî÷íîñòüþ 5ï ñ óðîâíÿìè DJ îò Axel Rudolph !          |
//| Áåðåò äàííûå ñ M1.                                                |
//|                          ÂÍÈÌÀÅÍÈÅ!                               |
//| Åñëè âàøå ÄÖ äà¸ò íå òî÷íûå êîòèðîâêè - PIVOT íå áóäåò ñîâïàäàòü. |
//+-------------------------------------------------------------------+
//|                    ÈÇÌÅÍÅÍÈß è ÄÎÏÎËÍÅÍÈß.                        |
//| 1.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-101 îò 06.09.2006 .         |
//| 1.1.Âîçìîæíî ïåðåìåùåíèå âñåé íàäïèñè ïî ýêðàíó êîîðäèíàòàìè XY   |
//| 1.2.Ââåäåíû íàñòðîéêè ïî óìîë÷àíèþ.                               |
//| 1.3.Ââåäåíà íàñòðîéêà öâåòà òåêñòà.                               |
//| 2.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-102 îò 08.09.2006 .         |
//| 2.1.Èñïðàâëåíà îøèáêà îòðèñîâêè ëèíèè â íåêîòîðûõ òåðìèíàëàõ.     |
//| 3.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-103 îò 09.09.2006 .         |
//| 3.1.Èçìåí¸í ïåðåêëþ÷àòåëü âûâîäà òåêñòà íà ëîãè÷åñêèé.            |
//| 3.2.Èçìåíåíû íàçâàíèÿ âíåøíèõ ïåðåìåííûõ.                         |
//| 3.3.Ââåäåíû îòñóòñòâóþùèå êîìåíòàðèè â èñõîäíèê.                  |
//| 3.4.Èçìåíåíà íàñòðîéêà ðàçíèöû âðåìåíè ìåæäó ÌÒ4 è GMT.           |
//| 4.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-113 îò 14.09.2006 .         |
//| 4.1.Ââåäíà íå÷óâñòâèòåëåííîñòü ê ïðîïóùåííûì áàðàì.               |
//| 5.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-114 îò 17.09.2006 .         |
//| 5.1.Óïðîùåíû íàñòðîéêè âðåìåíè êîíöà ïåðèîäà ðàñ÷¸òà è âðåìåíè    |
//|     íà÷àëà îòðèñîâêè ëèíèè.                                       |
//| 5.2.Íà âàëþòíûõ ïàðàõ, ñîäåðæàùèõ JPY, â òåêñòîâîé ñòðîêå öèôðîâîå|
//|     çíà÷åíèå ïîñëå çàïÿòîé ñîäåðæèò äâà çíàêà. Íà îñòàëüíûõ       |
//|     âàëþòíûõ ïàðàõ - ÷åòûðå.                                      |
//| 6.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-214 îò 18.09.2006 .         |
//| 6.1 Äîðàáîòêà âûâîäà êîëè÷åñòâà çíàêîâ äëÿ âàëþòíûõ ïàð â         |
//|     òåêñòîâîì îòîáðàæåíèè.                                        |
//| 7.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-224 îò 19.09.2006 .         |
//| 7.1.Óñòðàíåíà îøèáêà íà÷àëà ðàñ÷¸òà â ïîíåäåëüíèê.                |
//| 8.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-225 îò 24.09.2006 .         |
//| 8.1.Óñòðàíåíà îøèáêà íà÷àëà ðàñ÷¸òà â àçèàòñêóþ ñåññèþ.           |
//| 8.2.Ïðè îòñóòñòâèè äàííûõ äëÿ ðàñ÷¸òà âìåñòî "99999999,0000"      |
//|     âûâîäèòñÿ "0,0000".                                           |
//| 9.Äîïîëíåíèÿ â âåðñèè MF_Pivot AXEL 0-2254 îò 06.10.2006 .        |
//| 9.1.Êîððåêòíîå îòîáðàæåíèå ïîêàçàíèé â çàâèñèìîñòè îò èçìåíåíèÿ   |
//|     ïàðàìåòðîâ ñòàðòà ðàñ÷¸òà.                                    |
//| 9.2.Îïòèìèçàöèÿ êîäà ïðåîáðàçîâàíèé.                              |
//| 9.3.Èçìåíåíèå àëãîðèòìà ðàñ÷¸òà ìèíèìóìîâ è ìàêñèìóìîâ ñåññèé.    |    
//+-------------------------------------------------------------------+
#property copyright "Copyright © 2006 YuraZ-VAF-Zhunko-Nestor"
#property link      "yzh@mail.ru ; vazh-af@inbox.ru ; zhunko@mail.ru ; a_nesterchuk@mail.ru"


#property indicator_chart_window 
#property indicator_buffers 1
//Öâåò ïî óìîë÷àíèþ.
#property indicator_color1 Lavender
//Ñòèëü ïî óìîë÷àíèþ.
#property indicator_style1 STYLE_DASH
//Òîëùèíà ëèíèè ïî óìîë÷àíèþ.
#property indicator_width1 1
//----Ëîêàëèçàöèÿ---------------------------------------------------------------------------------------------------------------------------------
extern int    Äíåé = 7;                       // Êîëè÷åñòâî ðàñ÷èòûâàåìûõ äíåé.
extern double Âðåìÿ_ÄÖ = 2;                    // Ðàçíèöà âî âðåìåíè ìåæäó ÌÒ4 è GMT.
extern bool   Time_Summer = false;              // true - ëåòíåå âðåìÿ / false - çèìíåå âðåìÿ.
//----Íàñòðîéêà äëèíû ïåðèîäà ðàñ÷¸òà-------------------------------------------------------------------------------------------------------------
extern double Asia_ïåðèîä_ðàñ÷¸òà_÷àñ   = 12 ; // Ïåðèîä ðàñ÷¸òà â ÷àñàõ äëÿ Àçèè.
extern double Europe_ïåðèîä_ðàñ÷¸òà_÷àñ =  9 ; // Ïåðèîä ðàñ÷¸òà â ÷àñàõ äëÿ Åâðîïû.
extern double USA_ïåðèîä_ðàñ÷¸òà_÷àñ    =  6 ; // Ïåðèîä ðàñ÷¸òà â ÷àñàõ äëÿ Àìåðèêè.
//----Íàñòðîéêà âðåìåíè êîíöà ïåðèîäà ðàñ÷¸òà è âðåìåíè íà÷àëà îòðèñîâêè ëèíèè--------------------------------------------------------------------
extern string Start_ASIA          = "00:15" ;  // Âðåìÿ êîíöà ïåðèîäà ðàñ÷¸òà äëÿ Àçèè ïî GMT.
                                               // Âðåìÿ íà÷àëà îòðèñîâêè ëèíèè "PIVOT DJ ASIA" (ó÷èòûâàþòñÿ òîëüêî ÷àñû, ìèíóòû îòáðàñûâàþòñÿ).
extern string Start_EUROPE_Winter = "06:15" ;  // Âðåìÿ êîíöà ïåðèîäà ðàñ÷¸òà äëÿ Åâðîïû ïî GMT.
                                               // Âðåìÿ íà÷àëà îòðèñîâêè ëèíèè "PIVOT DJ EUROPE" (ó÷èòûâàþòñÿ òîëüêî ÷àñû, ìèíóòû îòáðàñûâàþòñÿ).
extern string Start_USA_Winter    = "12:00" ;  // Âðåìÿ êîíöà ïåðèîäà ðàñ÷¸òà äëÿ Àìåðèêè ïî GMT.
                                               // Âðåìÿ íà÷àëà îòðèñîâêè ëèíèè "PIVOT DJ USA" (ó÷èòûâàþòñÿ òîëüêî ÷àñû, ìèíóòû îòáðàñûâàþòñÿ).
//----Íàñòðîéêà îòîáðàæåíèÿ-----------------------------------------------------------------------------------------------------------------------
extern int    Óãîë         =   0   ;    // Ðàñïîëîæåíèå èíäèêàòîðà : 0 = ñâåðõó ñëåâà, 1 = ñâåðõó ñïðàâà, 2 = ñíèçó ñëåâà, 3 = ñíèçó ñïðàâà.
extern int    XD           = 250   ;    // Ñìåùåíèå îò óãëà ïî X.
extern int    YD           =   0   ;    // Ñìåùåíèå îò óãëà ïî Y.
extern bool   TEXT_Visible = true  ;    // true - îòîáðàæàòü òåêñò; false - íå îòîáðàæàòü òåêñò.
extern color  TextColor    = Lavender ;    // Öâåò òåêñòà.
//================================================================================================================================================
double nClose   = 0 ;
double nPivot   = 0 ; 
double nMaxHigh = 0 ; 
double nMinLow  = 0 ;
//---------------------------------------------------------------
double    PBuffer[];
//---------------------------------------------------------------
static string ss1 = "Asia DJ Pivot"    ;
static string ss2 = "Europe DJ Pivot"  ;
static string ss3 = "Usa DJ Pivot"     ;
static string ss4 = "Downloads"        ;
//===============================================================
int init() 
 { 
  if ( TEXT_Visible == true )
   {
    ObjectCreate(ss4, OBJ_LABEL, 0, 0, 0);   
    ObjectSet(ss4, OBJPROP_XDISTANCE, XD);
    ObjectSet(ss4, OBJPROP_YDISTANCE, YD);
    ObjectSet(ss4, OBJPROP_CORNER, Óãîë);

    ObjectCreate(ss1, OBJ_LABEL, 0, 0, 0);   
    ObjectSet(ss1, OBJPROP_XDISTANCE, XD);
    ObjectSet(ss1, OBJPROP_YDISTANCE, 10+YD);
    ObjectSet(ss1, OBJPROP_CORNER, Óãîë);

    ObjectCreate(ss2, OBJ_LABEL, 0, 0, 0);   
    ObjectSet(ss2, OBJPROP_XDISTANCE, XD);
    ObjectSet(ss2, OBJPROP_YDISTANCE, 20+YD);
    ObjectSet(ss2, OBJPROP_CORNER, Óãîë);

    ObjectCreate(ss3, OBJ_LABEL, 0, 0, 0);   
    ObjectSet(ss3, OBJPROP_XDISTANCE, XD);
    ObjectSet(ss3, OBJPROP_YDISTANCE, 30+YD);
    ObjectSet(ss3, OBJPROP_CORNER, Óãîë);
   }
    SetIndexStyle(0,DRAW_LINE);
    SetIndexBuffer(0,PBuffer);
  return(0); 
 }
//===============================================================
int deinit() 
{ 
if ( TEXT_Visible == true )
 {
  ObjectDelete(ss4);
  ObjectDelete(ss1);
  ObjectDelete(ss2);
  ObjectDelete(ss3);
 }
return(0); 
} 
//===============================================================
 void funPivot(int pDay, int pMonth, int pYear,  double PeriodHour, double hourMT4, double minuteMT4)
  { 
   datetime dTimeMT4end;
   datetime dTimeMT4begin;
   
   string sTimeMT4 = StringConcatenate(DoubleToStr( pYear, 0),".",DoubleToStr( pMonth , 0),".",DoubleToStr( pDay , 0)," ",
                     DoubleToStr( hourMT4, 0),":",DoubleToStr( minuteMT4, 0) ) ; 
                    
   dTimeMT4end = StrToTime(sTimeMT4); 
   dTimeMT4begin = dTimeMT4end - PeriodHour*3600+60  ;  
   
   if (TimeDayOfWeek (dTimeMT4begin) ==0)
   dTimeMT4begin = dTimeMT4begin - 172800;
   
   int      shiftend=iBarShift(NULL,PERIOD_M1,dTimeMT4end);
   int      shiftbegin=iBarShift(NULL,PERIOD_M1,dTimeMT4begin);
      
   nMinLow =iLow(NULL,PERIOD_M1,Lowest ( NULL, PERIOD_M1, MODE_LOW, shiftbegin-shiftend, shiftend));
   nMaxHigh= iHigh(NULL,PERIOD_M1,Highest( NULL, PERIOD_M1, MODE_HIGH, shiftbegin-shiftend, shiftend)); 
   nClose=iClose(NULL,PERIOD_M1,shiftend);
   nPivot = (nMaxHigh+nMinLow+nClose)/3;
   
   return; 
  } 
//================================================================
int start() 
 {
  int mDay;
  int mMonth ;
  int mYear  ;
  string mYearMonthDay;
//----------------------------------------------------------------
  static double PeriodHour_ ; // = Asia_ïåðèîä_ðàñ÷¸òà_÷àñ;
  static double hourMT4_    ; // = Asia_êîíåö_ïåðèîäà_MT4_÷àñ; 
  static double minuteMT4_  ; // = Asia_êîíåö_ïåðèîäà_MT4_ìèí; 

  static double nPivotEurope; // = nPivot; 
  static double nMaxHighE   ; // = nMaxHigh; 
  static double nMinLowE    ; // = nMinLow; 
  static double nCloseE     ; // = nClose; 

  static double nPivotUSA   ; // = nPivot; 
  static double nMaxHighU   ; // = nMaxHigh; 
  static double nMinLowU    ; // = nMinLow; 
  static double nCloseU     ; // = nClose; 

  static double nPivotASIA  ; // = nPivot; 
  static double nMaxHighA   ; // = nMaxHigh; 
  static double nMinLowA    ; // = nMinLow; 
  static double nCloseA     ; // = nClose; 
//-----------------------------------------------------------------
  datetime  mDatBegin;
  if (Bars != IndicatorCounted())
   {
    if (Äíåé == 0 )
     {
      deinit();
      return(0);
     }
  else
     {
      mDatBegin = StrToTime(StringConcatenate(TimeToStr(CurTime(),TIME_DATE)," 00:00")) - ((Äíåé-1) * 86400);
     }
//==================================================================
  for ( int i =0; mDatBegin < CurTime();  mDatBegin += 86400 )
   {
    mYear  = TimeYear( mDatBegin);
    mMonth = TimeMonth( mDatBegin);
    mDay   = TimeDay( mDatBegin);
    mYearMonthDay = StringConcatenate(DoubleToStr (mYear,0) , "." , DoubleToStr (mMonth, 0) , "." , DoubleToStr (mDay , 0));
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Start_ASIA=StringTrimRight(StringTrimLeft(Start_ASIA));
    Start_EUROPE_Winter=StringTrimRight(StringTrimLeft(Start_EUROPE_Winter));
    Start_USA_Winter=StringTrimRight(StringTrimLeft(Start_USA_Winter));
    
    if (Time_Summer==true) int TWS =1;
    else TWS=0;
    
    int  Asia_end_MT4_hour           = StrToDouble(StringSubstr(Start_ASIA, 0, 2)) + Âðåìÿ_ÄÖ;
    int  Asia_end_MT4_min            = StrToDouble(StringSubstr(Start_ASIA, 3, 2)) ;
                                    
    int  Europe_end_MT4_hour_pivot   = StrToDouble (StringSubstr(Start_EUROPE_Winter, 0, 2)) + Âðåìÿ_ÄÖ;
    int  Europe_end_MT4_hour_session = StrToDouble (StringSubstr(Start_EUROPE_Winter, 0, 2)) + Âðåìÿ_ÄÖ - TWS;
    int  Europe_end_MT4_min          = StrToDouble (StringSubstr(Start_EUROPE_Winter, 3, 2)) ;
                                    
    int  USA_end_MT4_hour_pivot      = StrToDouble (StringSubstr(Start_USA_Winter, 0, 2)) + Âðåìÿ_ÄÖ - TWS;
    int  USA_end_MT4_hour_session    = StrToDouble (StringSubstr(Start_USA_Winter, 0, 2)) + Âðåìÿ_ÄÖ - TWS;
    int  USA_end_MT4_min             = StrToDouble (StringSubstr(Start_USA_Winter, 3, 2)) ;
//----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
    PeriodHour_  = Asia_ïåðèîä_ðàñ÷¸òà_÷àñ;
    hourMT4_     = Asia_end_MT4_hour;
    minuteMT4_   = Asia_end_MT4_min;
    funPivot( mDay, mMonth ,mYear ,PeriodHour_, hourMT4_, minuteMT4_);
    nPivotASIA   = nPivot;
    nMaxHighA    = nMaxHigh;
    nMinLowA     = nMinLow;
    nCloseA      = nClose;
//----------------------------------------------
    PeriodHour_  = Europe_ïåðèîä_ðàñ÷¸òà_÷àñ;
    hourMT4_     = Europe_end_MT4_hour_pivot;
    minuteMT4_   = Europe_end_MT4_min;
    funPivot(mDay, mMonth,mYear,PeriodHour_, hourMT4_, minuteMT4_);
    nPivotEurope = nPivot;
    nMaxHighE    = nMaxHigh;
    nMinLowE     = nMinLow;
    nCloseE      = nClose;
//----------------------------------------------
    PeriodHour_  = USA_ïåðèîä_ðàñ÷¸òà_÷àñ;
    hourMT4_     = USA_end_MT4_hour_pivot;
    minuteMT4_   = USA_end_MT4_min;
    funPivot(mDay, mMonth,mYear,PeriodHour_, hourMT4_, minuteMT4_);
    nPivotUSA    = nPivot;
    nMaxHighU    = nMaxHigh;
    nMinLowU     = nMinLow;
    nCloseU      = nClose;
//----------------------------------------------
    string DC_ASIA   = StringConcatenate(mYearMonthDay , " " , Asia_end_MT4_hour, ":00");   
    string DC_EUROPE = StringConcatenate(mYearMonthDay , " " , Europe_end_MT4_hour_session, ":00");   
    string DC_USA    = StringConcatenate(mYearMonthDay , " " , USA_end_MT4_hour_session, ":00");   
   
    int pPivotBARA = iBarShift (NULL,0,StrToTime (DC_ASIA)); 
    int pPivotBARE = iBarShift (NULL,0,StrToTime (DC_EUROPE));  
    int pPivotBARU = iBarShift (NULL,0,StrToTime (DC_USA));

      int j;

      if ( nPivotASIA !=0 )
         {
          for (j =0  ; j < pPivotBARA; j++)
            PBuffer[j] = nPivotASIA ;
         }  
      if ( nPivotEurope !=0)
         {
          for (j = 0 ; j < pPivotBARE; j++)
            PBuffer[j] = nPivotEurope ;
         }

      if (nPivotUSA !=0 )
         {
          for (j = 0 ; j < pPivotBARU; j++)
            PBuffer[j] = nPivotUSA ;
         }
   }

   if (TEXT_Visible == true )
    {
     string sPivotASIA    =  StringConcatenate("PivotAsia     =",DoubleToStr(nPivotASIA  ,Digits)," High="+DoubleToStr(nMaxHighA,Digits)," Low=",DoubleToStr(nMinLowA,Digits)," Close=",DoubleToStr(nCloseA,Digits)) ; 
     string sPivotEUROPE  =  StringConcatenate("PivotEurope="   ,DoubleToStr(nPivotEurope,Digits)," High="+DoubleToStr(nMaxHighE,Digits)," Low=",DoubleToStr(nMinLowE,Digits)," Close=",DoubleToStr(nCloseE,Digits)) ;
     string sPivotUSA     =  StringConcatenate("PivotUSA    ="  ,DoubleToStr(nPivotUSA   ,Digits)," High="+DoubleToStr(nMaxHighU,Digits)," Low=",DoubleToStr(nMinLowU,Digits)," Close="+DoubleToStr(nCloseU,Digits)) ; 

     ObjectSetText(ss1, sPivotASIA   , 8, "Tahoma", TextColor); 
     ObjectSetText(ss2, sPivotEUROPE , 8, "Tahoma", TextColor); 
     ObjectSetText(ss3, sPivotUSA    , 8, "Tahoma", TextColor); 
     ObjectSetText(ss4, "Download from www.usd.ucoz.ru", 8, "Tahoma", White); 

    }
 }
return(0);
}
//+------------------------------------------------------------------+

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 ---