Price Data Components
Miscellaneous
0
Views
0
Downloads
0
Favorites
gStdPivots
//+------------------------------------------------------------------+
//| cam_H2_H5_Historical_V4.mq4 gStdPivots.mq4|
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//| Modified to chart historical camarilla pivots by MrPip |
//| 3/28/06 Fixed problem of Sunday/Monday pivots |
//| and added some ideas from goodtiding5 (Kenneth Z.)
//| 10/18/06 Modified by Stache to convert to std pivots |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Yellow
#property indicator_width1 1
#property indicator_style1 3
#property indicator_color2 DodgerBlue
#property indicator_width2 1
#property indicator_style2 3
#property indicator_color3 FireBrick
#property indicator_width3 1
#property indicator_style3 3
#property indicator_color4 Magenta
#property indicator_width4 1
#property indicator_style4 1
#property indicator_color5 FireBrick
#property indicator_width5 1
#property indicator_style5 3
#property indicator_color6 DodgerBlue
#property indicator_width6 1
#property indicator_style6 3
#property indicator_color7 Yellow
#property indicator_width7 1
#property indicator_style7 3
//---- input parameters
extern int GMTshift=0;
extern color RColor = Green;
extern color SColor= Red;
extern int fontsize=10;
extern int LabelShift=20;
double R3Buffer[];
double R2Buffer[];
double R1Buffer[];
double PivotBuffer[];
double S1Buffer[];
double S2Buffer[];
double S3Buffer[];
double P, R1,R2,R3,S1,S2,S3;
double prev_high=0;
double prev_low=0;
double prev_close=0;
double cur_day=0;
double prev_day=0;
double day_high=0;
double day_low=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(7);
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,R3Buffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,R2Buffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,R1Buffer);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,PivotBuffer);
SetIndexStyle(4,DRAW_LINE);
SetIndexBuffer(4,S1Buffer);
SetIndexStyle(5,DRAW_LINE);
SetIndexBuffer(5,S2Buffer);
SetIndexStyle(6,DRAW_LINE);
SetIndexBuffer(6,S3Buffer);
SetIndexLabel(0,"S3");
SetIndexLabel(1,"S2");
SetIndexLabel(2,"S1");
SetIndexLabel(3,"Pivot");
SetIndexLabel(4,"R1");
SetIndexLabel(5,"R2");
SetIndexLabel(6,"R3");
//----
// IndicatorShortName("gStdPivots);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
ObjectDelete("CamPivot");
ObjectDelete("ResH2");
ObjectDelete("ResH3");
ObjectDelete("ResH4");
ObjectDelete("ResH5");
ObjectDelete("ResH4");
ObjectDelete("ResH5");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int cnt, limit;
//---- exit if period is greater than 4 hr charts
if(Period() > 240)
{
Alert("Error - Chart period is greater than 4 Hr.");
return(-1); // then exit
}
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
// if(counted_bars>0) counted_bars--;
// limit=(Bars-counted_bars)-1;
limit=counted_bars;
//---- Get new daily prices & calculate pivots
for (cnt=limit;cnt >=0;cnt--)
{
if (TimeDayOfWeek(Time[cnt]) == 0)
{
cur_day = prev_day;
}
else
{
cur_day = TimeDay(Time[cnt]- (GMTshift*3600));
}
if (prev_day != cur_day)
{
prev_close = Close[cnt+1];
prev_high = day_high;
prev_low = day_low;
day_high = High[cnt];
day_low = Low[cnt];
P = (prev_high + prev_low + prev_close)/3;//Pivot
R1 = (2*P)-prev_low;
S1 = (2*P)-prev_high;
R2 = P+(prev_high - prev_low);
S2 = P-(prev_high - prev_low);
R3 = (2*P)+(prev_high-(2*prev_low));
S3 = (2*P)-((2* prev_high)-prev_low);
prev_day = cur_day;
}
if (High[cnt]>day_high)
{
day_high = High[cnt];
}
if (Low[cnt]<day_low)
{
day_low = Low[cnt];
}
// day_low=Open[cnt]; day_high=Open[cnt];
//--- Draw Pivot lines on chart
PivotBuffer[cnt]=P;
R3Buffer[cnt]=R3;
R2Buffer[cnt]=R2;
R1Buffer[cnt]=R1;
S1Buffer[cnt]=S1;
S2Buffer[cnt]=S2;
S3Buffer[cnt]=S3;
}
if (cur_day == TimeDay(CurTime())) DisplayLabels();
//----
return(0);
}
void DisplayLabels()
{
if(ObjectFind("CamPivot") != 0)
{
ObjectCreate("StsPivot", OBJ_TEXT, 0, 0,0);
ObjectSetText("StdPivot", " Pivot",fontsize,"Arial",Yellow);
}
else
{
ObjectMove("StdPivot", 0, Time[20],P);
}
if(ObjectFind("Res 3") != 0)
{
ObjectCreate("Res 3", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Res 3", " R 3",fontsize,"Arial",RColor);
}
else
{
ObjectMove("Res 3", 0, Time[20],R3);
}
if(ObjectFind("Res 2") != 0)
{
ObjectCreate("Res 2", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Res 2", " R 2",fontsize,"Arial",RColor);
}
else
{
ObjectMove("Res 2", 0, Time[20],R2);
}
if(ObjectFind("Res 1") != 0)
{
ObjectCreate("Res 1", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Res 1", " R 1",fontsize,"Arial",RColor);
}
else
{
ObjectMove("Res 1", 0, Time[20],R1);
}
if(ObjectFind("Sup 1") != 0)
{
ObjectCreate("Sup 1", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Sup 1", " S 1",fontsize,"Arial",SColor);
}
else
{
ObjectMove("Sup 1", 0, Time[20],S1);
}
if(ObjectFind("Sup 2") != 0)
{
ObjectCreate("Sup 2", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Sup 2", " S 2",fontsize,"Arial",SColor);
}
else
{
ObjectMove("Sup 2", 0, Time[20],S2);
}
if(ObjectFind("Sup 3") != 0)
{
ObjectCreate("Sup 3", OBJ_TEXT, 0, 0, 0);
ObjectSetText("Sup 3", " S 3",fontsize,"Arial",SColor);
}
else
{
ObjectMove("Sup 3", 0, Time[20],S3);
}
}
//+------------------------------------------------------------------+
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
---