Price Data Components
Miscellaneous
0
Views
0
Downloads
0
Favorites
Pivot_Mid_Resistance_Historical
//+----------------------------------------------------------------------+
//| Mid Pivot Resistance Historical_V1.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.) |
//| Modified 4/14/07 to chart historical Mid Pivot resistance by Traden4x|
//+----------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Lime
#property indicator_color2 Lime
#property indicator_color3 Lime
#property indicator_color4 Yellow
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 2
#property indicator_width4 1
//---- input parameters
extern int GMTshift=0;
extern color PivotNameColor = Yellow;
extern color HColor = Lime;
extern int fontsize=12;
extern int LabelShift=20;
double MR3Buffer[];
double MR2Buffer[];
double MR1Buffer[];
double PivotBuffer[];
double P, MR1, MR2, MR3, R1, R2, R3;
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(4);
//---- indicators
SetIndexStyle(0,DRAW_LINE, STYLE_DOT,1,Lime);
SetIndexBuffer(0,MR3Buffer);
SetIndexStyle(1,DRAW_LINE, 0,2,Lime);
SetIndexBuffer(1,MR2Buffer);
SetIndexStyle(2,DRAW_LINE,STYLE_DASH,1,Lime);
SetIndexBuffer(2,MR1Buffer);
SetIndexStyle(3,DRAW_LINE, 1,1, Yellow);
SetIndexBuffer(3,PivotBuffer);
SetIndexLabel(0,"MR3");
SetIndexLabel(1,"MR2");
SetIndexLabel(2,"MR1");
SetIndexLabel(3,"Pivot");
//----
// IndicatorShortName("Resistance Pivots");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
ObjectDelete("CamPivot");
ObjectDelete("ResMR1");
ObjectDelete("ResMR2");
ObjectDelete("ResMR3");
//----
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
//---- To display all 8 Camarilla pivots remove comment symbols below and
// add the appropriate object functions below
R1 = (2*P)-prev_low;
R2 = P+(prev_high-prev_low);
R3 = (2*P)+(prev_high-(2*prev_low));
MR1 = (P+R1)/2;
MR2 = (R1+R2)/2;
MR3 = (R2+R3)/2;
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;
MR3Buffer[cnt]=MR3;
MR2Buffer[cnt]=MR2;
MR1Buffer[cnt]=MR1;
}
if (cur_day == TimeDay(CurTime())) DisplayLabels();
//----
return(0);
}
void DisplayLabels()
{
if(ObjectFind("CamPivot") != 0)
{
ObjectCreate("CamPivot", OBJ_TEXT, 0, 0,0);
ObjectSetText("CamPivot", " Pivot",fontsize,"Arial",PivotNameColor);
}
else
{
ObjectMove("CamPivot", 0, Time[60],P);
}
if(ObjectFind("ResMR1") != 0)
{
ObjectCreate("ResMR1", OBJ_TEXT, 0, 0, 0);
ObjectSetText("ResMR1", " MR 1",fontsize,"Arial",HColor);
}
else
{
ObjectMove("ResMR1", 0, Time[60],MR1);
}
if(ObjectFind("ResMR2") != 0)
{
ObjectCreate("ResMR2", OBJ_TEXT, 0, 0, 0);
ObjectSetText("ResMR2", " MR 2",fontsize,"Arial",HColor);
}
else
{
ObjectMove("ResMR2", 0, Time[60],MR2);
}
if(ObjectFind("ResMR3") != 0)
{
ObjectCreate("ResMR3", OBJ_TEXT, 0, 0, 0);
ObjectSetText("ResMR3", " MR 3",fontsize,"Arial",HColor);
}
else
{
ObjectMove("ResMR3", 0, Time[60],MR3);
}
}
//+------------------------------------------------------------------+
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
---