Price Data Components
Miscellaneous
0
Views
0
Downloads
0
Favorites
PivotPointsWeekly_S&M v1
//+------------------------------------------------------------------+
//| Auto-Pivot Plotter Weekly V1-00.mq4 |
//| Copyright © 2007, BundyRaider |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, BundyRaider"
#property link ""
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 FireBrick
#property indicator_color2 FireBrick
#property indicator_color3 FireBrick
#property indicator_color4 SlateGray
#property indicator_color5 LimeGreen
#property indicator_color6 LimeGreen
#property indicator_color7 LimeGreen
#property indicator_color8 Green
//---- input parameters
extern int DaysToPlot = 20; //If DaysToPlot is "0" (zero) we plot ALL available data
extern int Linewidth = 2;
extern color cPivot = SlateGray;
extern color cSupport = LimeGreen;
extern color cResistance = FireBrick;
extern bool ShowPriceLabel = true;
extern string LabelFontType = "Arial Black";
extern int LabelFontSize = 7;
extern int LabelShift = 0;
//---- buffers
double Res3[];
double Res2[];
double Res1[];
double Pivot[];
double Supp1[];
double Supp2[];
double Supp3[];
double Extra1[];
datetime LabelShiftTime;
double digits;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,Linewidth,cResistance);
SetIndexBuffer(0,Res3);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,Linewidth,cResistance);
SetIndexBuffer(1,Res2);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,Linewidth,cResistance);
SetIndexBuffer(2,Res1);
SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,Linewidth,cPivot);
SetIndexBuffer(3,Pivot);
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID,Linewidth,cSupport);
SetIndexBuffer(4,Supp1);
SetIndexStyle(5,DRAW_LINE,STYLE_SOLID,Linewidth,cSupport);
SetIndexBuffer(5,Supp2);
SetIndexStyle(6,DRAW_LINE,STYLE_SOLID,Linewidth,cSupport);
SetIndexBuffer(6,Supp3);
SetIndexStyle(7,DRAW_LINE,STYLE_SOLID,Linewidth);
SetIndexBuffer(7,Extra1);
SetIndexLabel(0, "W_R3");
SetIndexLabel(1, "W_R2");
SetIndexLabel(2, "W_R1");
SetIndexLabel(3, "W_PP");
SetIndexLabel(4, "W_S1");
SetIndexLabel(5, "W_S2");
SetIndexLabel(6, "W_S3");
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Weekly Pivot Point");
//----
SetIndexDrawBegin(0,1);
digits = Digits;
//if(digits == 5 || digits == 3) { digits = digits - 1 ; }
//IndicatorDigits(Digits);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("WRes3");
ObjectDelete("WRes2");
ObjectDelete("WRes1");
ObjectDelete("WeeklyPivot");
ObjectDelete("WSup1");
ObjectDelete("WSup2");
ObjectDelete("WSup3");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
// ****************************************************
// Establish the nuber of bars in a day.
// ****************************************************
int BarsInDay=1440/Period();
for(int i=0; i<limit; i++)
{
if ( (i<((DaysToPlot+1)*BarsInDay))||DaysToPlot==0) // Used to limit the number of days
{ // that are mapped out. Less waiting ;)
// *****************************************************
// Find previous day's opening and closing bars.
// *****************************************************
//Find Our Week date.
datetime WeekDate=Time[i];
int WeeklyBar = iBarShift( NULL, PERIOD_W1, WeekDate,false)+1;
double PreviousHigh = iHigh(NULL, PERIOD_W1,WeeklyBar);
double PreviousLow = iLow(NULL, PERIOD_W1,WeeklyBar);
double PreviousClose = iClose(NULL, PERIOD_W1,WeeklyBar);
// ************************************************************************
// Calculate Pivot lines and map into indicator buffers.
// ************************************************************************
double P = (PreviousHigh+PreviousLow+PreviousClose)/3;
double R1 = (2*P)-PreviousLow;
double S1 = (2*P)-PreviousHigh;
double R2 = P+(PreviousHigh - PreviousLow);
double S2 = P-(PreviousHigh - PreviousLow);
double R3 = (2*P)+(PreviousHigh-(2*PreviousLow));
double S3 = (2*P)-((2* PreviousHigh)-PreviousLow);
LabelShiftTime = Time[LabelShift];
if(ShowPriceLabel)
{
ObjectCreate("WRes3", OBJ_TEXT, 0, LabelShiftTime, 0);
ObjectSetText("WRes3", " "+DoubleToStr(R3,digits),LabelFontSize,LabelFontType,cResistance);
SetIndexLabel(0, "WRes3");
ObjectCreate("WRes2", OBJ_TEXT, 0, LabelShiftTime, 0);
ObjectSetText("WRes2", " "+DoubleToStr(R2,digits),LabelFontSize,LabelFontType,cResistance);
SetIndexLabel(1, "WRes2");
ObjectCreate("WRes1", OBJ_TEXT, 0, LabelShiftTime, 0);
ObjectSetText("WRes1", " "+DoubleToStr(R1,digits),LabelFontSize,LabelFontType,cResistance);
SetIndexLabel(2, "WRes1");
ObjectCreate("WeeklyPivot", OBJ_TEXT, 0,LabelShiftTime,0);
ObjectSetText("WeeklyPivot", " "+DoubleToStr(P,digits),LabelFontSize,LabelFontType,cPivot);
SetIndexLabel(3, "WeeklyPivot");
ObjectCreate("WSup1", OBJ_TEXT, 0, 0, 0);
ObjectSetText("WSup1", " "+DoubleToStr(S1,digits),LabelFontSize,LabelFontType,cSupport);
SetIndexLabel(4, "WSup1");
ObjectCreate("WSup2", OBJ_TEXT, 0, LabelShiftTime, 0);
ObjectSetText("WSup2", " "+DoubleToStr(S2,digits),LabelFontSize,LabelFontType,cSupport);
SetIndexLabel(5, "WSup2");
ObjectCreate("WSup3", OBJ_TEXT, 0, LabelShiftTime, 0);
ObjectSetText("WSup3", " "+DoubleToStr(S3,digits),LabelFontSize,LabelFontType,cSupport);
SetIndexLabel(6, "WSup3");
}
}
Pivot[i]=P;
Res1[i] =R1;
Res2[i] =R2;
Res3[i] =R3;
Supp1[i]=S1;
Supp2[i]=S2;
Supp3[i]=S3;
// Extra1[i]=OpenPriceAt+i;
ObjectMove("WRes3", 0, LabelShiftTime,Res3[0]);
ObjectMove("WRes2", 0, LabelShiftTime,Res2[0]);
ObjectMove("WRes1", 0, LabelShiftTime,Res1[0]);
ObjectMove("WeeklyPivot", 0, LabelShiftTime,Pivot[0]);
ObjectMove("WSup1", 0, LabelShiftTime,Supp1[0]);
ObjectMove("WSup2", 0, LabelShiftTime,Supp2[0]);
ObjectMove("WSup3", 0, LabelShiftTime,Supp3[0]);
// **********************************************
// Calculate the mid-levels in to the buffers.
// (for mid-levels version)
// **********************************************(Twe)
// Res1[i] =((R1-P)/2)+P; //M3
// Res2[i] =((R2-R1)/2)+R1; //M4
// Res3[i] =((R3-R2)/2)+R2;
// Supp1[i]=((P-S1)/2)+S1; //M2
// Supp2[i]=((S1-S2)/2)+S2; //M1
// Supp3[i]=((S2-S3)/2)+S3;
//End of 'DaysToPlot 'if' statement.
}
// ***************************************************************************************
// End of Main Loop
// ***************************************************************************************
// *****************************************
// Return from Start() (Main Routine)
return(0);
}
//+-------------------------------------------------------------------------------------------------------+
// END Custom indicator iteration function
//+-------------------------------------------------------------------------------------------------------+
// *****************************************************************************************
// *****************************************************************************************
// -----------------------------------------------------------------------------------------
// The following routine will use "StartingBar"'s time and use it to find the
// general area that SHOULD contain the bar that matches "TimeToLookFor"
// -----------------------------------------------------------------------------------------
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
---