Author: Yuriy Tokman (YTG)
Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each barSeries array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
DayFibo
ÿþ//+------------------------------------------------------------------+

//|                                                      DayFibo.mq4 |

//|                                               Yuriy Tokman (YTG) |

//|                       https://www.mql5.com/ru/users/satop/seller |

//+------------------------------------------------------------------+

#property copyright "Yuriy Tokman (YTG)"

#property link      "https://www.mql5.com/ru/users/satop/seller"

#property version   "1.00"

#property strict

#property indicator_chart_window



 string nam = "FiboDay";

//+------------------------------------------------------------------+

//| Custom indicator initialization function                         |

//+------------------------------------------------------------------+

int OnInit()

  {

//--- indicator buffers mapping

   ObjectDelete(0,nam);

//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Custom indicator deinitialization function                       |

//+------------------------------------------------------------------+

int deinit()

  {

//----

   ObjectDelete(0,nam);

   Comment("");

//----

   return(0);

  }

//+------------------------------------------------------------------+

//| Custom indicator iteration function                              |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &time[],

                const double &open[],

                const double &high[],

                const double &low[],

                const double &close[],

                const long &tick_volume[],

                const long &volume[],

                const int &spread[])

  {

//---

 if(Period()>1440){ Alert("Period Error"); return(0);}



 int limit=rates_total-prev_calculated;

 if(prev_calculated==0)limit--;

 else  limit++;

 if(limit>Bars-1440/Period())limit = Bars-1440/Period();

//---

 double o1=0,c1=0,l1=0,h1=0;



 datetime t1 = iTime(Symbol(),1440,1);

 datetime t2 = t1 + (datetime)(1440*60-1);

 int b_1 = iBarShift(Symbol(),0,t1);

 int b_2 = iBarShift(Symbol(),0,t2);

 o1 = iOpen(Symbol(),1440,1);

 c1 = iClose(Symbol(),1440,1);

 h1 = iHigh(Symbol(),0,iHighest(Symbol(),0,MODE_HIGH,b_1-b_2+1,b_2));

 l1 = iLow(Symbol(),0,iLowest(Symbol(),0,MODE_LOW,b_1-b_2+1,b_2)); 

 double h=h1,l=l1;

 if(o1<c1){h=l1;l=h1;} 

 FiboLevelsCreate(0,nam,0,t1,h,t2,l);

 ObjectSetInteger(0,nam,OBJPROP_LEVELCOLOR,0,clrRed);

//--- return value of prev_calculated for next call

   return(rates_total);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+ 

//| C>7405B "#@>2=8 $81>=0GG8" ?> 7040==K< :>>@48=0B0<               | 

//+------------------------------------------------------------------+ 

bool FiboLevelsCreate(const long            chart_ID=0,        // ID 3@0D8:0 

                      const string          name="FiboLevels", // 8<O >1J5:B0 

                      const int             sub_window=0,      // =><5@ ?>4>:=0  

                      datetime              time1=0,           // 2@5<O ?5@2>9 B>G:8 

                      double                price1=0,          // F5=0 ?5@2>9 B>G:8 

                      datetime              time2=0,           // 2@5<O 2B>@>9 B>G:8 

                      double                price2=0,          // F5=0 2B>@>9 B>G:8 

                      const color           clr=clrRed,        // F25B >1J5:B0 

                      const ENUM_LINE_STYLE style=STYLE_SOLID, // AB8;L ;8=88 >1J5:B0 

                      const int             width=1,           // B>;I8=0 ;8=88 >1J5:B0 

                      const bool            back=false,        // =0 704=5< ?;0=5 

                      const bool            selection=false,    // 2K45;8BL 4;O ?5@5<5I5=89 

                      const bool            ray_right=true,   // ?@>4>;65=85 >1J5:B0 2?@02> 

                      const bool            hidden=false,       // A:@KB 2 A?8A:5 >1J5:B>2 

                      const long            z_order=0)         // ?@8>@8B5B =0 =060B85 <KHLN 

  { 

//--- CAB0=>28< :>>@48=0BK B>G5: ?@82O7:8, 5A;8 >=8 =5 7040=K 

   if(ObjectFind(chart_ID,name)!=-1)ObjectDelete(chart_ID,name);//ChangeFiboLevelsEmptyPoints(time1,price1,time2,price2); 

//--- A1@>A8< 7=0G5=85 >H81:8 

   ResetLastError(); 

//--- A>74048< "#@>2=8 $81>=0GG8" ?> 7040==K< :>>@48=0B0< 

   if(!ObjectCreate(chart_ID,name,OBJ_FIBO,sub_window,time1,price1,time2,price2)) 

     { 

      Print(__FUNCTION__, 

            ": =5 C40;>AL A>740BL \"#@>2=8 $81>=0GG8\"! >4 >H81:8 = ",GetLastError()); 

      return(false); 

     } 

//--- CAB0=>28< F25B 

   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 

//--- CAB0=>28< AB8;L ;8=88 

   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 

//--- CAB0=>28< B>;I8=C ;8=88 

   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); 

//--- >B>1@078< =0 ?5@54=5< (false) 8;8 704=5< (true) ?;0=5 

   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 

//--- 2:;NG8< (true) 8;8 >B:;NG8< (false) @568< 2K45;5=8O >1J5:B0 4;O ?5@5<5I5=89 

//--- ?@8 A>740=88 3@0D8G5A:>3> >1J5:B0 DC=:F859 ObjectCreate, ?> C<>;G0=8N >1J5:B 

//--- =5;L7O 2K45;8BL 8 ?5@5<5I0BL. =CB@8 65 MB>3> <5B>40 ?0@0<5B@ selection 

//--- ?> C<>;G0=8N @025= true, GB> ?>72>;O5B 2K45;OBL 8 ?5@5<5I0BL MB>B >1J5:B 

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 

   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); 

//--- 2:;NG8< (true) 8;8 >B:;NG8< (false) @568< ?@>4>;65=8O >B>1@065=8O >1J5:B0 2?@02> 

   ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right); 

//--- A:@>5< (true) 8;8 >B>1@078< (false) 8<O 3@0D8G5A:>3> >1J5:B0 2 A?8A:5 >1J5:B>2 

   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 

//--- CAB0=>28 ?@8>@8B5B =0 ?>;CG5=85 A>1KB8O =060B8O <KH8 =0 3@0D8:5 

   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 

//--- CA?5H=>5 2K?>;=5=85 

   return(true); 

  }

//----

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