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 Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---