File Name: Albano_Pivots.efs
Description:
Modified pivot study with multiple options for the center pivot.
Formula Parameters:
Color: red
Pivot Type: 0 [0, 1, 2, 3, 4]
where:
0 = prev High + prev Low + prev Close / 3
1 = prev High + prev Low + Open / 3
2 = prev High + prev Low + Open + Open / 4
3 = prev High + prev Low + prev Close + Open / 4
4 = prev High + prev Low + prev Close + prev Open / 4
Notes:
NA
Download File:
Albano_Pivots.efs
EFS Code:
Description:
Modified pivot study with multiple options for the center pivot.
Formula Parameters:
Color: red
Pivot Type: 0 [0, 1, 2, 3, 4]
where:
0 = prev High + prev Low + prev Close / 3
1 = prev High + prev Low + Open / 3
2 = prev High + prev Low + Open + Open / 4
3 = prev High + prev Low + prev Close + Open / 4
4 = prev High + prev Low + prev Close + prev Open / 4
Notes:
NA
Download File:
Albano_Pivots.efs
EFS Code:
PHP Code:
/*********************************
Provided By:
eSignal (Copyright © eSignal), a division of Interactive Data
Corporation. 2007. All rights reserved. This sample eSignal
Formula Script (EFS) is for educational purposes only and may be
modified and saved under a new file name. eSignal is not responsible
for the functionality once modified. eSignal reserves the right
to modify and overwrite this EFS file with each new release.
Description: Albano Pivots
RE: [url]http://forum.esignalcentral.com/showthread.php?s=&threadid=24146[/url]
**********************************/
function preMain() {
setPriceStudy(true);
setStudyTitle("Albano Pivot Points");
setCursorLabelName("R3", 0);
setCursorLabelName("R3/R2", 1);
setCursorLabelName("R2", 2);
setCursorLabelName("R2/R1", 3);
setCursorLabelName("R1", 4);
setCursorLabelName("CPR1", 5);
setCursorLabelName("CP", 6);
setCursorLabelName("CPS1", 7);
setCursorLabelName("S1", 8);
setCursorLabelName("S1/S2", 9);
setCursorLabelName("S2", 10);
setCursorLabelName("S2/S3", 11);
setCursorLabelName("S3", 12);
for (var i = 0; i < 13; i++) {
setPlotType(PLOTTYPE_FLATLINES, i);
}
// R3
setDefaultBarStyle(PS_SOLID, 0);
// R3/R2
setDefaultBarStyle(PS_DASH, 1);
// R2
setDefaultBarStyle(PS_SOLID, 2);
// R2/R1
setDefaultBarStyle(PS_DOT, 3);
// R1
setDefaultBarStyle(PS_SOLID, 4);
// CPR1
setDefaultBarStyle(PS_DOT, 5);
// CP
setDefaultBarStyle(PS_SOLID, 6);
// CPS1
setDefaultBarStyle(PS_DOT, 7);
// S1
setDefaultBarStyle(PS_SOLID, 8);
// S1/S2
setDefaultBarStyle(PS_DOT, 9);
// S2
setDefaultBarStyle(PS_SOLID, 10);
// S2/S3
setDefaultBarStyle(PS_DOT, 11);
// S3
setDefaultBarStyle(PS_SOLID, 12);
var fp1 = new FunctionParameter("cColor", FunctionParameter.COLOR);
fp1.setName("Color");
fp1.setDefault(Color.red);
var fp2 = new FunctionParameter("nType", FunctionParameter.NUMBER);
fp2.setName("Pivot Type");
fp2.addOption(0);
fp2.addOption(1);
fp2.addOption(2);
fp2.addOption(3);
fp2.addOption(4);
fp2.setDefault(0);
}
var bInit = false;
var xO = null;
var xH = null;
var xL = null;
var xC = null;
function main(cColor, nType) {
if(isMonthly() || isWeekly()) return;
if(bInit == false){
xO = open(inv("D"));
xH = high(inv("D"));
xL = low(inv("D"));
xC = close(inv("D"));
for (var i=0; i < 13; i++) {
setDefaultBarFgColor(cColor, i);
}
bInit = true;
}
var nCP = null;
var nR1 = null;
var nS1 = null;
var nR2 = null;
var nS2 = null;
var nR3 = null;
var nS3 = null;
var nR3R2 = null;
var nR2R1 = null;
var nCPR1 = null;
var nCPS1 = null;
var nS1S2 = null;
var nS2S3 = null;
var nOpen0 = xO.getValue(0);
var nOpen = xO.getValue(-1);
var nHigh = xH.getValue(-1);
var nLow = xL.getValue(-1);
var nClose = xC.getValue(-1);
if(nOpen == null || nHigh == null || nLow == null || nClose == null) return;
var nRange = (nHigh - nLow);
switch (nType) {
case 1:
nCP = (nHigh + nLow + nOpen0) / 3;
break;
case 2:
nCP = (nHigh + nLow + nOpen0 + nOpen0) / 4;
break;
case 3:
nCP = (nHigh + nLow + nClose + nOpen0) / 4;
break;
case 4:
nCP = (nHigh + nLow + nClose + nOpen) / 4;
break;
default:
nCP = (nHigh + nLow + nClose) / 3;
break;
}
nR1 = nCP + (nRange/2);
nS1 = nCP - (nRange/2);
nR2 = nCP + nRange;
nS2 = nCP - nRange;
nR3 = nR2 + nRange;
nS3 = nS2 - nRange;
nR3R2 = (nR3 + nR2) / 2;
nR2R1 = (nR2 + nR1) / 2;
nCPR1 = (nCP + nR1) / 2;
nCPS1 = (nCP + nS1) / 2;
nS1S2 = (nS1 + nS2) / 2;
nS2S3 = (nS2 + nS3) / 2;
if (getCurrentBarIndex() >= -1) {
drawTextRelative(1, nR3, "R3", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "R3");
drawTextRelative(1, nR3R2, "R3R2", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "R3R2");
drawTextRelative(1, nR2, "R2", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "R2");
drawTextRelative(1, nR2R1, "R2R1", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "R2R1");
drawTextRelative(1, nR1, "R1", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "R1");
drawTextRelative(1, nCPR1, "CPR1", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "CPR1");
drawTextRelative(1, nCP, "CP", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "CP");
drawTextRelative(1, nCPS1, "CPS1", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "CPS1");
drawTextRelative(1, nS1, "S1", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "S1");
drawTextRelative(1, nS1S2, "S1S2", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "S1S2");
drawTextRelative(1, nS2, "S2", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "S2");
drawTextRelative(1, nS2S3, "S2S3", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "S2S3");
drawTextRelative(1, nS3, "S3", cColor, Color.white, Text.LEFT|Text.BOLD|Text.VCENTER, null, 12, "S3");
}
return new Array(nR3, nR3R2, nR2, nR2R1, nR1, nCPR1, nCP, nCPS1, nS1, nS1S2, nS2, nS2S3, nS3);
}