MACDColorHist.efs
File Name: MACDColorHist.efs
Description:
Colors MACD histogram green when rising, red when falling. All inputs to MACD are configurable including histogram color. The display of the MACD histogram, Signal, MACD and MACD drop-lines can be turned on/off individually. The color of the drop-lines will match the up/down colors of the histogram up/down color settings. When the MACD is positive, the drop-down lines will be the up color and down color when the MACD is negative.
Formula Parameters:
- Fast Length: Default is 12
- Slow Length: Default is 26
- Smoothing Length: Default is 9
- Price Source: Default is Close, [Open, High, Low, Close, HL/2, HLC/3, OHLC/4]
- MA Type: Default is SMA, [SMA, EMA]
- MACD Hist Up Color: Default is green
- MACD Hist Down Color: Default is red
- MACD Color: Default is red
- MACD Sig Color: Default is blue
- Display Histogram: Yes, [Yes, No]
- Display MACD: Yes, [Yes, No]
- Display Signal: Yes, [Yes, No]
- Display Drop Lines: Yes, [Yes, No]
Notes:
NA
Download File:
MACDColorHist.efs
EFS Code:
/**************************************************************************************************** Copyright © eSignal, a division of Interactive Data Corporation. 2003. All rights reserved. This sample eSignal Formula Script (EFS) may be modified and saved under a new filename; however, eSignal is no longer responsible for the functionality once modified. eSignal reserves the right to modify and overwrite this EFS file with each new release. *****************************************************************************************************/ /*** Updated 12/1/2003 *** *Added FunctionParameter objects for user defined inputs. *Added drop-down lines to the MACD where the color will match the up/down colors of the histogram up/down color settings. When MACD is positive, drop-down lines will be the up color and down color when the MACD is negative. *Added options to enable/disable MACD historgram, Signal, MACD and MACD drop-lines. ***************************/ function preMain() { setStudyTitle("Color MACD Histogram "); setCursorLabelName("MACD", 0); setCursorLabelName("MACD", 1); setCursorLabelName("MACD Sig", 2); setCursorLabelName("MACD Hist", 3); setDefaultBarFgColor(Color.blue, 0); setDefaultBarFgColor(Color.blue, 1); setDefaultBarFgColor(Color.red, 2); setDefaultBarFgColor(Color.magenta, 3); setDefaultBarThickness(4, 3); setPlotType(PLOTTYPE_LINE, 0); setPlotType(PLOTTYPE_HISTOGRAM, 1); setPlotType(PLOTTYPE_LINE, 2); setPlotType(PLOTTYPE_HISTOGRAM, 3); addBand(0, PS_SOLID, 1, Color.black, "zero"); var fp1 = new FunctionParameter("nFast", FunctionParameter.NUMBER); fp1.setName("Fast Length"); fp1.setLowerLimit(1); fp1.setDefault(12); var fp2 = new FunctionParameter("nSlow", FunctionParameter.NUMBER); fp2.setName("Slow Length"); fp2.setLowerLimit(1); fp2.setDefault(26); var fp3 = new FunctionParameter("nSmoothing", FunctionParameter.NUMBER); fp3.setName("Smoothing Length"); fp3.setLowerLimit(1); fp3.setDefault(9); var fp4 = new FunctionParameter("PriceSource", FunctionParameter.STRING); fp4.setName("Price Source"); fp4.addOption("Open"); fp4.addOption("High"); fp4.addOption("Low"); fp4.addOption("Close"); fp4.addOption("HL/2"); fp4.addOption("HLC/3"); fp4.addOption("OHLC/4"); fp4.setDefault("Close"); var fp5 = new FunctionParameter("nType", FunctionParameter.STRING); fp5.setName("MA Type"); fp5.addOption("SMA"); //true fp5.addOption("EMA"); //false fp5.setDefault("SMA"); var fp6 = new FunctionParameter("nColorUp", FunctionParameter.COLOR); fp6.setName("MACD Hist Up Color"); fp6.setDefault(Color.green); var fp7 = new FunctionParameter("nColorDn", FunctionParameter.COLOR); fp7.setName("MACD Hist Down Color"); fp7.setDefault(Color.red); var fp8 = new FunctionParameter("cMACD", FunctionParameter.COLOR); fp8.setName("MACD Color"); fp8.setDefault(Color.red); var fp9 = new FunctionParameter("cMACDsig", FunctionParameter.COLOR); fp9.setName("MACD Sig Color"); fp9.setDefault(Color.blue); var fp10 = new FunctionParameter("bHist", FunctionParameter.STRING); fp10.setName("Display Histogram"); fp10.addOption("Yes"); fp10.addOption("No"); fp10.setDefault("Yes"); var fp11 = new FunctionParameter("bMACD", FunctionParameter.STRING); fp11.setName("Display MACD"); fp11.addOption("Yes"); fp11.addOption("No"); fp11.setDefault("Yes"); var fp12 = new FunctionParameter("bSignal", FunctionParameter.STRING); fp12.setName("Display Signal"); fp12.addOption("Yes"); fp12.addOption("No"); fp12.setDefault("Yes"); var fp13 = new FunctionParameter("bDropLines", FunctionParameter.STRING); fp13.setName("Display Drop Lines"); fp13.addOption("Yes"); fp13.addOption("No"); fp13.setDefault("Yes"); } var study = null; var vColor = null; var vColorUp = null; var vColorDn = null; var vHist = null; var vHist1 = null; var bEdit = true; function main(nFast, nSlow, nSmoothing, PriceSource, nType, nColorUp, nColorDn, cMACD, cMACDsig, bHist, bMACD, bSignal, bDropLines) { if (study == null || bEdit == true) { if (nFast == null) nFast = 12; if (nSlow == null) nSlow = 26; if (nSmoothing == null) nSmoothing = 9; if (PriceSource == null) PriceSource = "Close"; if (nType == null) { nType = false; } else if (nType == "SMA") { nType = true; } else { nType = false; } if (nColorUp == null) { vColorUp = Color.green; } else { vColorUp = nColorUp; } if (nColorDn == null) { vColorDn = Color.red; } else { vColorDn = nColorDn; } study = new MACDStudy(nFast, nSlow, nSmoothing, PriceSource, nType); setDefaultBarFgColor(cMACD, 0); setDefaultBarFgColor(cMACD, 1); setDefaultBarFgColor(cMACDsig, 2); setDefaultBarFgColor(cMACDsig, 3); bEdit = false; } if (getBarState() == BARSTATE_NEWBAR && vHist != null) { vHist1 = vHist; } vHist = study.getValue(MACDStudy.HIST); if (vHist == null) return; var vMACD = study.getValue(MACDStudy.MACD); if (vMACD == null) return; var vSig = study.getValue(MACDStudy.SIGNAL); if (vSig == null) return; if (vHist1 != null && vHist >= vHist1) { vColor = vColorUp; } else if (vHist1 != null && vHist < vHist1) { vColor = vColorDn; } if (vMACD < 0) setBarFgColor(nColorDn, 1); if (vMACD >= 0) setBarFgColor(nColorUp, 1); if (vColor != null) { setBarFgColor(vColor, 3); } var vHdisplay = vHist.toFixed(2)*1; if (bHist == "No") vHdisplay = vHdisplay+""; var vMdisplay = vMACD.toFixed(2)*1; if (bMACD == "No") vMdisplay = vMdisplay+""; var vMdisplay1 = vMACD.toFixed(2)*1; if (bDropLines == "No") vMdisplay1 = vMdisplay1+""; var vSdisplay = vSig.toFixed(2)*1; if (bSignal == "No") vSdisplay = vSdisplay+""; return new Array(vMdisplay, vMdisplay1, vSdisplay, vHdisplay); }