Daily_FiboPiv_DK

Author: Copyright � 2008, Kalenzo
2 Views
0 Downloads
0 Favorites
Daily_FiboPiv_DK
//+------------------------------------------------------------------+
//|                                             Daily_FiboPiv_DK.mq5 |
//|                                        Copyright © 2008, Kalenzo | 
//|                                      bartlomiej.gorski@gmail.com | 
//+------------------------------------------------------------------+
//---- author of the indicator
#property copyright "Copyright © 2008, Kalenzo"
//---- link to the website of the author
#property link "bartlomiej.gorski@gmail.com" 
//---- indicator version number
#property version   "1.10"

//---- number of indicator buffers
#property indicator_buffers 0 
//---- 0 graphical plots are used in total
#property indicator_plots   0
//---- drawing the indicator in the main window
#property indicator_chart_window
//+------------------------------------------------+ 
//|  declaration of constants                      |
//+------------------------------------------------+ 
#define RESET  0 // the constant for returning the indicator recalculation command to the terminal
#define STRING "                                         "
//+------------------------------------------------+ 
//| Enumeration for the level width                |
//+------------------------------------------------+ 
enum ENUM_WIDTH //Type of constant
  {
   w_1 = 1,   //1
   w_2,       //2
   w_3,       //3
   w_4,       //4
   w_5        //5
  };
//+------------------------------------------------+ 
//| Enumeration for the level style                |
//+------------------------------------------------+ 
enum STYLE
  {
   SOLID_,//Solid line
   DASH_,//Dashed line
   DOT_,//Dotted line
   DASHDOT_,//Dot-dash line
   DASHDOTDOT_   //Dot-dash line with double dots
  };
//+------------------------------------------------+
//| Indicator input parameters                     |
//+------------------------------------------------+
input color NotEven_levels_color=clrGreen; //color of the odd price level
input STYLE NotEven_levels_style=DASHDOTDOT_;//style of the odd price level
input ENUM_WIDTH NotEven_levels_width=w_1;//width of the odd price level

input color Even_levels_color=clrBlue; //color of the even price level
input STYLE Even_levels_style=STYLE_SOLID;//style of the even price level
input ENUM_WIDTH Even_levels_width=w_1;//width of the even price level

input color Pivot_levels_color=clrRed; //pivot color
input STYLE Pivot_levels_style=STYLE_SOLID;//pivot style
input ENUM_WIDTH Pivot_levels_width=w_3;//width of pivot

input uint  FontSize=10; //Text font size
//+----------------------------------------------+

string font;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+  
void OnInit()
  {
//----
   font="Arial Black";
//----
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+    
void OnDeinit(const int reason)
  {
//---- delete the level, if necessary
   ObjectDelete(0,"R18");
   ObjectDelete(0,"R17");
   ObjectDelete(0,"R16");
   ObjectDelete(0,"R15");
   ObjectDelete(0,"R14");
   ObjectDelete(0,"R13");
   ObjectDelete(0,"R12");
   ObjectDelete(0,"R11");
   ObjectDelete(0,"R10");
   ObjectDelete(0,"R9");
   ObjectDelete(0,"R8");
   ObjectDelete(0,"R7");
   ObjectDelete(0,"R6");
   ObjectDelete(0,"R5");
   ObjectDelete(0,"R4");
   ObjectDelete(0,"R3");
   ObjectDelete(0,"R2");
   ObjectDelete(0,"R1");
   
   ObjectDelete(0,"Daily Pivot");
   
   ObjectDelete(0,"S18");
   ObjectDelete(0,"S17");
   ObjectDelete(0,"S16");
   ObjectDelete(0,"S15");
   ObjectDelete(0,"S14");
   ObjectDelete(0,"S13");
   ObjectDelete(0,"S12");
   ObjectDelete(0,"S11");
   ObjectDelete(0,"S10");
   ObjectDelete(0,"S9");
   ObjectDelete(0,"S8");
   ObjectDelete(0,"S7");
   ObjectDelete(0,"S6");
   ObjectDelete(0,"S5");
   ObjectDelete(0,"S4");
   ObjectDelete(0,"S3");
   ObjectDelete(0,"S2");
   ObjectDelete(0,"S1");
   
   ObjectDelete(0,"R18Tx");
   ObjectDelete(0,"R17Tx");
   ObjectDelete(0,"R16Tx");
   ObjectDelete(0,"R15Tx");
   ObjectDelete(0,"R14Tx");
   ObjectDelete(0,"R13Tx");
   ObjectDelete(0,"R12Tx");
   ObjectDelete(0,"R11Tx");
   ObjectDelete(0,"R10Tx");
   ObjectDelete(0,"R9Tx");
   ObjectDelete(0,"R8Tx");
   ObjectDelete(0,"R7Tx");
   ObjectDelete(0,"R6Tx");
   ObjectDelete(0,"R5Tx");
   ObjectDelete(0,"R4Tx");
   ObjectDelete(0,"R3Tx");
   ObjectDelete(0,"R2Tx");
   ObjectDelete(0,"R1Tx");

   ObjectDelete(0,"Daily Pivot Tx");

   ObjectDelete(0,"S18Tx");
   ObjectDelete(0,"S17Tx");
   ObjectDelete(0,"S16Tx");
   ObjectDelete(0,"S15Tx");
   ObjectDelete(0,"S14Tx");
   ObjectDelete(0,"S13Tx");
   ObjectDelete(0,"S12Tx");
   ObjectDelete(0,"S11Tx");
   ObjectDelete(0,"S10Tx");
   ObjectDelete(0,"S9Tx");
   ObjectDelete(0,"S8Tx");
   ObjectDelete(0,"S7Tx");
   ObjectDelete(0,"S6Tx");
   ObjectDelete(0,"S5Tx");
   ObjectDelete(0,"S4Tx");
   ObjectDelete(0,"S3Tx");
   ObjectDelete(0,"S2Tx");
   ObjectDelete(0,"S1Tx");
//----
   ChartRedraw(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(
                const int rates_total,    // amount of history in bars at the current tick
                const int prev_calculated,// amount of history in bars at the previous tick
                const datetime &time[],
                const double &open[],
                const double& high[],     // price array of maximums of price for the calculation of indicator
                const double& low[],      // price array of minimums of price for the calculation of indicator
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]
                )
  {
//---- declaration of local variables
   string trendinfo;
   datetime iTime[6];
   double iHigh[6],iLow[6],iClose[6];

//---- copy newly appeared data into the arrays 
   if(CopyTime(Symbol(),PERIOD_D1,0,1,iTime)<=0) return(RESET);
   if(CopyClose(Symbol(),PERIOD_D1,0,6,iClose)<=0) return(RESET);
   if(CopyHigh(Symbol(),PERIOD_D1,0,6,iHigh)<=0) return(RESET);
   if(CopyLow(Symbol(),PERIOD_D1,0,6,iLow)<=0) return(RESET);

   MqlDateTime tm;
   TimeToStruct(iTime[5],tm);
   double yesterday_close=0.0,yesterday_high=0.0,yesterday_low=0.0;

   if(tm.day_of_week==MONDAY)
     {
      TimeToStruct(iTime[4],tm);
      
      if(tm.day_of_week==FRIDAY)
        {
         yesterday_close=iClose[4];
         yesterday_high=iHigh[4];
         yesterday_low=iLow[4];
        }
      else
        {
         for(int d=5; d>=0; d--)
           {
            TimeToStruct(iTime[d],tm);

            if(tm.day_of_week==FRIDAY)
              {
               yesterday_close=iClose[d];
               yesterday_high=iHigh[d];
               yesterday_low=iLow[d];
               break;
              }
           }
        }
     }
   else
     {
      yesterday_close=iClose[5];
      yesterday_high=iHigh[5];
      yesterday_low=iLow[5];
     }

//---- Calculation of pivots
   double R=yesterday_high-yesterday_low;//range
   double p=(yesterday_high+yesterday_low+yesterday_close)/3;// Standard Pivot
//----
   double r18=p + (R * 3.000);
   double r17=p + (R * 2.764);
   double r16=p + (R * 2.618);
   double r15=p + (R * 2.500);
   double r14=p + (R * 2.382);
   double r13=p + (R * 2.236);
   double r12=p + (R * 2.000);
   double r11=p + (R * 1.764);
   double r10=p + (R * 1.618);
   double r9=p + (R * 1.500);
   double r8=p + (R * 1.382);
   double r7=p + (R * 1.236);
   double r6=p + (R * 1.000);
   double r5=p + (R * 0.764);
   double r4=p + (R * 0.618);
   double r3=p + (R * 0.500);
   double r2=p + (R * 0.382);
   double r1=p + (R * 0.236);
//----
   double s1=p - (R * 0.236);
   double s2=p - (R * 0.382);
   double s3=p - (R * 0.500);
   double s4=p - (R * 0.618);
   double s5=p - (R * 0.764);
   double s6=p - (R * 1.000);
   double s7=p - (R * 1.236);
   double s8=p - (R * 1.382);
   double s9=p - (R * 1.500);
   double s10=p - (R * 1.618);
   double s11=p - (R * 1.764);
   double s12=p - (R * 2.000);
   double s13=p - (R * 2.236);
   double s14=p - (R * 2.382);
   double s15=p - (R * 2.500);
   double s16=p - (R * 2.618);
   double s17=p - (R * 2.764);
   double s18=p - (R * 3.000);
   
   int bar10=rates_total-10;
//----
   SetHline(0,"R18",0,r18,Even_levels_color,Even_levels_style,Even_levels_width,false,"R18");
   SetText(0,"R18Tx",0,time[bar10],r18,STRING+"+FIB 300.0",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R17",0,r17,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R17");
   SetText(0,"R17Tx",0,time[bar10],r17,STRING+"+FIB 276.4",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R16",0,r16,Even_levels_color,Even_levels_style,Even_levels_width,false,"R16");
   SetText(0,"R16Tx",0,time[bar10],r16,STRING+"+FIB 261.8",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R15",0,r15,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R15");
   SetText(0,"R15Tx",0,time[bar10],r15,STRING+"+FIB 250.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R14",0,r14,Even_levels_color,Even_levels_style,Even_levels_width,false,"R14");
   SetText(0,"R14Tx",0,time[bar10],r14,STRING+"+FIB 238.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R13",0,r13,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R13");
   SetText(0,"R13Tx",0,time[bar10],r13,STRING+"+FIB 223.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R12",0,r12,Even_levels_color,Even_levels_style,Even_levels_width,false,"R12");
   SetText(0,"R12Tx",0,time[bar10],r12,STRING+"+FIB 223.6",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R11",0,r11,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R11");
   SetText(0,"R11Tx",0,time[bar10],r11,STRING+"+FIB 200.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R10",0,r10,Even_levels_color,Even_levels_style,Even_levels_width,false,"R10");
   SetText(0,"R10Tx",0,time[bar10],r10,STRING+"+FIB 176.4",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R9",0,r9,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R9");
   SetText(0,"R9Tx",0,time[bar10],r9,STRING+"+FIB 161.8",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R8",0,r8,Even_levels_color,Even_levels_style,Even_levels_width,false,"R8");
   SetText(0,"R8Tx",0,time[bar10],r8,STRING+"+FIB 138.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R7",0,r7,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R7");
   SetText(0,"R7Tx",0,time[bar10],r7,STRING+"+FIB 123.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R6",0,r6,Even_levels_color,Even_levels_style,Even_levels_width,false,"R6");
   SetText(0,"R6Tx",0,time[bar10],r6,STRING+"+FIB 100.0",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R5",0,r5,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R5");
   SetText(0,"R5Tx",0,time[bar10],r5,STRING+"+FIB 76.4",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R4",0,r4,Even_levels_color,Even_levels_style,Even_levels_width,false,"R4");
   SetText(0,"R4Tx",0,time[bar10],r4,STRING+"+FIB 61.8",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R3",0,r3,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R3");
   SetText(0,"R3Tx",0,time[bar10],r3,STRING+"+FIB 50.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R2",0,r2,Even_levels_color,Even_levels_style,Even_levels_width,false,"R2");
   SetText(0,"R2Tx",0,time[bar10],r2,STRING+"+FIB 38.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"R1",0,r1,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"R1");
   SetText(0,"R1Tx",0,time[bar10],r1,STRING+"+FIB 23.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);
//----
   SetHline(0,"Daily Pivot",0,p,Pivot_levels_color,Pivot_levels_style,Pivot_levels_width,false,"Daily Pivot");
   SetText(0,"Daily Pivot Tx",0,time[bar10],p,STRING+"Daily Pivot",Pivot_levels_color,font,FontSize,ANCHOR_LOWER);
//----   
   SetHline(0,"S18",0,s18,Even_levels_color,Even_levels_style,Even_levels_width,false,"S18");
   SetText(0,"S18Tx",0,time[bar10],s18,STRING+"-FIB 300.0",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S17",0,s17,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S17");
   SetText(0,"S17Tx",0,time[bar10],s17,STRING+"-FIB 276.4",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S16",0,s16,Even_levels_color,Even_levels_style,Even_levels_width,false,"S16");
   SetText(0,"S16Tx",0,time[bar10],s16,STRING+"-FIB 261.8",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S15",0,s15,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S15");
   SetText(0,"S15Tx",0,time[bar10],s15,STRING+"-FIB 250.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S14",0,s14,Even_levels_color,Even_levels_style,Even_levels_width,false,"S14");
   SetText(0,"S14Tx",0,time[bar10],s14,STRING+"-FIB 238.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S13",0,s13,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S13");
   SetText(0,"S13Tx",0,time[bar10],s13,STRING+"-FIB 223.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S12",0,s12,Even_levels_color,Even_levels_style,Even_levels_width,false,"S12");
   SetText(0,"S12Tx",0,time[bar10],s12,STRING+"-FIB 223.6",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S11",0,s11,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S11");
   SetText(0,"S11Tx",0,time[bar10],s11,STRING+"-FIB 200.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S10",0,s10,Even_levels_color,Even_levels_style,Even_levels_width,false,"S10");
   SetText(0,"S10Tx",0,time[bar10],s10,STRING+"-FIB 176.4",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S9",0,s9,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S9");
   SetText(0,"S9Tx",0,time[bar10],s9,STRING+"-FIB 161.8",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S8",0,s8,Even_levels_color,Even_levels_style,Even_levels_width,false,"S8");
   SetText(0,"S8Tx",0,time[bar10],s8,STRING+"-FIB 138.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S7",0,s7,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S7");
   SetText(0,"S7Tx",0,time[bar10],s7,STRING+"-FIB 123.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S6",0,s6,Even_levels_color,Even_levels_style,Even_levels_width,false,"S6");
   SetText(0,"S6Tx",0,time[bar10],s6,STRING+"-FIB 100.0",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S5",0,s5,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S5");
   SetText(0,"S5Tx",0,time[bar10],s5,STRING+"-FIB 76.4",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S4",0,s4,Even_levels_color,Even_levels_style,Even_levels_width,false,"S4");
   SetText(0,"S4Tx",0,time[bar10],s4,STRING+"-FIB 61.8",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S3",0,s3,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S3");
   SetText(0,"S3Tx",0,time[bar10],s3,STRING+"-FIB 50.0",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S2",0,s2,Even_levels_color,Even_levels_style,Even_levels_width,false,"S2");
   SetText(0,"S2Tx",0,time[bar10],s2,STRING+"-FIB 38.2",Even_levels_color,font,FontSize,ANCHOR_LOWER);

   SetHline(0,"S1",0,s1,NotEven_levels_color,NotEven_levels_style,NotEven_levels_width,false,"S1");
   SetText(0,"S1Tx",0,time[bar10],s1,STRING+"-FIB 23.6",NotEven_levels_color,font,FontSize,ANCHOR_LOWER);
//----
//----
   ChartRedraw(0);
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|  Creating the horizontal line                                    |
//+------------------------------------------------------------------+
void CreateHline
(
 long     chart_id,      // chart ID.
 string   name,          // object name
 int      nwin,          // window index
 double   price,         // horizontal level price
 color    Color,         // color of the line
 int      style,         // style of the line
 int      width,         // width of the line
 bool     background,    // line background display
 string   text           // text
 )
//---- 
  {
//----
   ObjectCreate(chart_id,name,OBJ_HLINE,nwin,0,price);
   ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color);
   ObjectSetInteger(chart_id,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chart_id,name,OBJPROP_WIDTH,width);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
   ObjectSetInteger(chart_id,name,OBJPROP_BACK,background);
   ObjectSetInteger(chart_id,name,OBJPROP_RAY,true);
   ObjectSetInteger(chart_id,name,OBJPROP_SELECTED,true);
   ObjectSetInteger(chart_id,name,OBJPROP_SELECTABLE,true);
   ObjectSetInteger(chart_id,name,OBJPROP_ZORDER,true);
//----
  }
//+------------------------------------------------------------------+
//|  Horizontal line redrawing                                       |
//+------------------------------------------------------------------+
void SetHline
(
 long     chart_id,      // chart ID.
 string   name,          // object name
 int      nwin,          // window index
 double   price,         // horizontal level price
 color    Color,         // color of the line
 int      style,         // style of the line
 int      width,         // width of the line
 bool     background,    // line background display
 string   text           // text
 )
//---- 
  {
//----
   if(ObjectFind(chart_id,name)==-1) CreateHline(chart_id,name,nwin,price,Color,style,width,background,text);
   else
     {
      ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
      ObjectMove(chart_id,name,0,0,price);
      ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color);
     }
//----
  }
//+------------------------------------------------------------------+
//|  creating a text label                                           |
//+------------------------------------------------------------------+
void CreateText(long chart_id,// chart ID
                string   name,              // object name
                int      nwin,              // window index
                datetime time,              // price level time
                double   price,             // price level
                string   text,              // Labels text
                color    Color,             // Text color
                string   Font,              // Text font
                int      Size,              // Text size
                ENUM_ANCHOR_POINT point     // The chart corner to Which an text is attached
                )
//---- 
  {
//----
   ObjectCreate(chart_id,name,OBJ_TEXT,nwin,time,price);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
   ObjectSetInteger(chart_id,name,OBJPROP_COLOR,Color);
   ObjectSetString(chart_id,name,OBJPROP_FONT,Font);
   ObjectSetInteger(chart_id,name,OBJPROP_FONTSIZE,Size);
   ObjectSetInteger(chart_id,name,OBJPROP_BACK,false);
   ObjectSetInteger(chart_id,name,OBJPROP_ANCHOR,point);
//----
  }
//+------------------------------------------------------------------+
//|  changing a text label                                           |
//+------------------------------------------------------------------+
void SetText(long chart_id,// chart ID
             string   name,              // object name
             int      nwin,              // window index
             datetime time,              // price level time
             double   price,             // price level
             string   text,              // Labels text
             color    Color,             // Text color
             string   Font,              // Text font
             int      Size,              // Text size
             ENUM_ANCHOR_POINT point     // The chart corner to Which an text is attached
             )
//---- 
  {
//----
   if(ObjectFind(chart_id,name)==-1) CreateText(chart_id,name,nwin,time,price,text,Color,Font,Size,point);
   else
     {
      ObjectSetString(chart_id,name,OBJPROP_TEXT,text);
      ObjectMove(chart_id,name,0,time,price);
     }
//----
  }
//+------------------------------------------------------------------+

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