/************************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 additionvar 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;} |