File Name: Woodie_Pivots.efs
Description:
Contains Pivot Points based on theories by Woodie.
Formula Parameters:
Notes:
Download File:
Woodie_Pivots.efs
Image:
EFS Code:
Description:
Contains Pivot Points based on theories by Woodie.
Formula Parameters:
Notes:
Download File:
Woodie_Pivots.efs
Image:
EFS Code:
PHP Code:
/************************
Copyright © eSignal, 2003
*************************/
/*
Description: Contains Pivot Points based on theories by Woodie.
PP = (YesterdaysHigh + YesterdaysLow + (TodaysOpen x 2)) / 4
R1 = (PP x 2) - YesterdaysLow
S1 = (PP x 2) - YesterdaysHigh
R2 = PP + R1 - S1
S2 = PP - R1 + S1
R3 = PP + R2 - S2
S3 = PP - R2 + S2
*/
function preMain() {
setPriceStudy(true);
setStudyTitle("Woodie Pivots");
setCursorLabelName("PP-R3", 0);
setCursorLabelName("PP-R2", 1);
setCursorLabelName("PP-R1", 2);
setCursorLabelName("PP", 3);
setCursorLabelName("PP-S1", 4);
setCursorLabelName("PP-S2", 5);
setCursorLabelName("PP-S3", 6);
// R3
setDefaultBarStyle(PS_SOLID, 0);
setDefaultBarFgColor(Color.RGB(255,0,255), 0);
setDefaultBarThickness(3, 0);
// R2
setDefaultBarStyle(PS_DASH, 1);
setDefaultBarFgColor(Color.RGB(255,0,0), 1);
setDefaultBarThickness(2, 1);
// R1
setDefaultBarStyle(PS_DOT, 2);
setDefaultBarFgColor(Color.RGB(0,0,255), 2);
setDefaultBarThickness(1, 2);
// Woodie Pivot Point
setDefaultBarStyle(PS_SOLID, 3);
setDefaultBarFgColor(Color.RGB(0,0,0), 3);
setDefaultBarThickness(1, 3);
// S1
setDefaultBarStyle(PS_DOT, 4);
setDefaultBarFgColor(Color.RGB(0,0,255), 4);
setDefaultBarThickness(1, 4);
// S2
setDefaultBarStyle(PS_DASH, 5);
setDefaultBarFgColor(Color.RGB(255,0,0), 5);
setDefaultBarThickness(2, 5);
// S3
setDefaultBarStyle(PS_SOLID, 6);
setDefaultBarFgColor(Color.RGB(255,0,255), 6);
setDefaultBarThickness(2, 6);
}
// Start of Performance addition
var vLastRawTime = null;
var vLastPP = null;
var vLastPPR1 = null;
var vLastPPR2 = null;
var vLastPPS1 = null;
var vLastPPS2 = null;
var vLastArray = null;
var vSymbol = null;
var vInterval = null;
var vReset = true;
function main() {
var vH;
var vL;
var vC;
var vRawTime;
var vBarTime;
var vIndex;
var nState = getBarState();
if(vReset == true) {
vLastRawTime = null;
vLastArray = null;
vLastPP = null;
vLastPPR1 = null;
vLastPPR2 = null;
vLastPPS1 = null;
vLastPPS2 = null;
vInterval = getInterval();
vSymbol = getSymbol();
vSymbol += ",D";
vReset = false;
}
vRawTime = getDay();
if(vRawTime == null)
return;
// Start of Performance addition
if(vRawTime != null && vLastRawTime != null) {
if(vRawTime == vLastRawTime) {
return vLastArray;
}
}
if(vInterval == null)
return null;
if(vInterval == "D")
return null;
if(vInterval == "W")
return null;
if(vInterval == "M")
return null;
if(vInterval == "T")
return null;
vBarTime = getValue("time");
if(vBarTime != null) {
var vDay = vBarTime.getDay();
if (vDay == 0) {
var vDate = vBarTime.getDate();
vDate -= 2;
vBarTime.setDate(vDate);
}
vAbsTime = getPreviousTradingDay(vBarTime, vSymbol);
if(vAbsTime == null) {
return;
}
vIndex = getFirstBarIndexOfDay(vAbsTime, vSymbol);
if(vIndex != null) {
vH = getValueAbsolute("High", vIndex, vSymbol);
vL = getValueAbsolute("Low", vIndex, vSymbol);
vO = getValueAbsolute("Open", vIndex+1, vSymbol);
if(vH != null && vL != null && vO != null) {
vLastPP = (vH + vL + (vO*2)) / 4;
vLastPPR1 = 2 * vLastPP - vL;
vLastPPS1 = 2 * vLastPP - vH;
vLastPPR2 = (vLastPP - vLastPPS1) + vLastPPR1;
vLastPPS2 = vLastPP - (vLastPPR1 - vLastPPS1);
vLastPPR3 = (vLastPP - vLastPPS2) + vLastPPR2;
vLastPPS3 = vLastPP - (vLastPPR2 - vLastPPS2);
vLastRawTime = vRawTime;
vLastArray = new Array(vLastPPR3,vLastPPR2, vLastPPR1, vLastPP, vLastPPS1, vLastPPS2,vLastPPS3);
return vLastArray;
}
}
}
return null;
}