Announcement

Collapse
No announcement yet.

MACDx-over.efs

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

  • MACDx-over.efs

    File Name: MACDx-over.efs

    Description:
    This is an MACD crossover formula, which draws yellow arrows at the crossover points.

    Formula Parameters:
    nFastLength: Default is 12.
    nSlowLength: Default is 26.
    nSmoothing: Default is 9.
    nPriceSource: Default is Close (valid inputs: Open, High, Low, Close, HL/2, HLC/3 and OHLC/4).
    nSimpleMA_TorF: Default is False (True = Simple Moving Average, False = Exponential Moving Average).


    Notes:
    If used on an intra-day interval, the arrows will be drawn or removed intra-bar as the conditions change.

    Download File:
    MACDx-over.efs




    EFS Code:
    PHP Code:
    /*********************************
    Provided By : eSignal. (c) Copyright 2003
    *********************************/


    function preMain() {
        
    setStudyTitle("MACD X-Over ");
        
    setDefaultBarFgColor(Color.magenta0); // hist
        
    setDefaultBarFgColor(Color.red1); // signal
        
    setDefaultBarFgColor(Color.blue2); // macd
        
        
    setPlotType(PLOTTYPE_HISTOGRAM0);
        
        
    setCursorLabelName("Hist"0);
        
    setCursorLabelName("Signal"1);
        
    setCursorLabelName("MACD"2);
    }

    var 
    study null;
    var 
    vMACD null;
    var 
    vMACD1 null;
    var 
    vSignal null;
    var 
    vSignal1 null;
    var 
    vAlert false;
    var 
    AlertCntr 0;

    function 
    main(nFastLengthnSlowLengthnSmoothingnPriceSourcenSimpleMA_TorF) {
        var 
    nState getBarState();

        if (
    study == null) {
            if (
    nFastLength == null)
                
    nFastLength 12;
            if (
    nSlowLength == null)
                
    nSlowLength 26;
            if (
    nSmoothing == null)
                
    nSmoothing 9;
            if (
    nPriceSource == null) {
                
    nPriceSource "Close";
            } else if(
    nPriceSource == "C" || nPriceSource == "O" || nPriceSource == "H" || nPriceSource == "L") {
                
    nPriceSource nPriceSource;
            } else if(
    nPriceSource == "Close" || nPriceSource == "Open" || nPriceSource == "High" || nPriceSource == "Low") {
                
    nPriceSource nPriceSource;
            } else if(
    nPriceSource == "HL/2" || nPriceSource == "HLC/3" || nPriceSource == "OHLC/4") {
                
    nPriceSource nPriceSource;
            } else {
                
    nPriceSource "Close";
            }
            if (
    nSimpleMA_TorF == null) {
                
    nSimpleMA_TorF false;
            } else if (
    nSimpleMA_TorF == "T" || nSimpleMA_TorF == "t" || nSimpleMA_TorF == "true" || nSimpleMA_TorF == "True") {
                
    nSimpleMA_TorF true;
            } else if (
    nSimpleMA_TorF == "F" || nSimpleMA_TorF == "f" || nSimpleMA_TorF == "false" || nSimpleMA_TorF == "False") {
                
    nSimpleMA_TorF false;
            } else {
                
    nSimpleMA_TorF false;
            }
            
    study = new MACDStudy(nFastLengthnSlowLengthnSmoothingnPriceSource, eval(nSimpleMA_TorF));
        }
        
        if (
    nState == BARSTATE_NEWBAR) {
            if (
    vMACD != null)
                
    vMACD1 vMACD;
            if (
    vSignal != null)
                
    vSignal1 vSignal;
            
    vAlert false;
        }
        
    vMACD study.getValue(MACDStudy.MACD);
        if (
    vMACD == null)
            return;
        
    vSignal study.getValue(MACDStudy.SIGNAL);
        if (
    vSignal == null)
            return;
        var 
    vHist study.getValue(MACDStudy.HIST);
        if (
    vHist == null)
            return;
        
        if (
    vAlert == false) {
            if (
    vMACD1 vSignal1 && vMACD >= vSignal) {  // crossing up
                
    vAlert true;
                
    AlertCntr += 1;
                
    drawShapeRelative(0vSignalShape.UPARROWnullColor.yellowShape.TOP Shape.ONTOP"Alert" AlertCntr);
            }
            if (
    vMACD1 vSignal1 && vMACD <= vSignal) {  // crossing down
                
    vAlert true;
                
    AlertCntr += 1;
                
    drawShapeRelative(0vSignalShape.DOWNARROWnullColor.yellowShape.BOTTOM Shape.ONTOP"Alert" AlertCntr);
            }
        } else {
            if ((
    vMACD1 vSignal1 && vMACD vSignal) || (vMACD1 vSignal1 && vMACD vSignal)) {
                
    vAlert false;
                
    removeShape("Alert" AlertCntr);
            }
        }
        
        return new Array(
    vHistvSignalvMACD);

    Jason K.
    Project Manager
    eSignal - an Interactive Data company

    EFS KnowledgeBase
    JavaScript for EFS Video Series
    EFS Beginner Tutorial Series
    EFS Glossary
    Custom EFS Development Policy

    New User Orientation
Working...
X