You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hello All,
This is my Weekly Pivots indicator. Please check the values if you wish use it.
//+------------------------------------------------------------------+
//| Weekly Pivots.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, JYForex."
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Red
#property indicator_color4 Red
#property indicator_color5 Green
#property indicator_color6 Green
#property indicator_color7 Green
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 3
#property indicator_width6 3
#property indicator_width7 3
double weekly_pp[];
double weekly_r1[];
double weekly_r2[];
double weekly_r3[];
double weekly_s1[];
double weekly_s2[];
double weekly_s3[];
void
get_weekly_pivot_points(int index, int wshift)
{
double h, c, l, r;
double pp, r1, r2, r3, s1, s2, s3;
h = iHigh(NULL, PERIOD_W1, wshift);
c = iClose(NULL, PERIOD_W1, wshift);
l = iLow(NULL, PERIOD_W1, wshift);
r = h - l;
pp = (h+l+c)/3;
r1 = (2 * pp) - l;
r2 = pp + r;
r3 = r2 + r;
s1 = (2 * pp) - h;
s2 = pp - r;
s3 = s2 - r;
weekly_pp[index] = pp;
weekly_r1[index] = r1;
weekly_r2[index] = r2;
weekly_r3[index] = r3;
weekly_s1[index] = s1;
weekly_s2[index] = s2;
weekly_s3[index] = s3;
}
int
get_day_shift(int b)
{
int i, r, p;
datetime t, td;
t = Time[b]; // Start time of the bar
td = iTime(Symbol(), PERIOD_W1, 0); // Start of week
r = 1;
for (i = 0; i < 1000; i++) {
if (t >= td) {
return (r);
}
td = iTime(Symbol(), PERIOD_W1, i);
r++;
}
return (r);
}
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_LINE);
SetIndexStyle(5,DRAW_LINE);
SetIndexStyle(7,DRAW_LINE);
SetIndexBuffer(0,weekly_pp);
SetIndexBuffer(1,weekly_r1);
SetIndexBuffer(2,weekly_r2);
SetIndexBuffer(3,weekly_r3);
SetIndexBuffer(4,weekly_s1);
SetIndexBuffer(5,weekly_s2);
SetIndexBuffer(6,weekly_s3);
IndicatorShortName("Weekly Pivots");
SetIndexLabel(0,"Weekly PP");
SetIndexLabel(1,"Weekly R1");
SetIndexLabel(2,"Weekly R2");
SetIndexLabel(3,"Weekly R3");
SetIndexLabel(4,"Weekly S1");
SetIndexLabel(5,"Weekly S2");
SetIndexLabel(6,"Weekly S3");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit, d;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++) {
d = get_day_shift(i);
get_weekly_pivot_points(i, d);
}
//----
return(0);
}
//+------------------------------------------------------------------+