Announcement

Collapse
No announcement yet.

Colored MACD no display?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Colored MACD no display?

    I found this MACDColoredHist.EFS indicator on the file share of Esignal. And its not displaying any data with Forex Symbols, but works fine for Futures... the Forex Charts only show but some lines at the top. Any ideas? Here is the EFS code, as well as the screen shot:

    /************************************************** **************************************************
    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);
    }
    Attached Files

  • #2
    Here is the ES Chart, as you can see its working.

    Anyone have any ideas, to correct this EFS to work for FOREX data??
    Attached Files

    Comment


    • #3
      Re: Colored MACD no display?

      cv989
      The reason why the plots are compressed when using some forex symbols is that the values of the histogram are limited to 2 decimals in lines 177, 179, 181 and 183 using the .toFixed() method (see the link to the corresponding article in the EFS KnowledgeBase for its usage)
      Alex


      Originally posted by cv989
      I found this MACDColoredHist.EFS indicator on the file share of Esignal. And its not displaying any data with Forex Symbols, but works fine for Futures... the Forex Charts only show but some lines at the top. Any ideas? Here is the EFS code, as well as the screen shot:

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

      Comment

      Working...
      X