Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Elder's Impulse indicator

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

    Elder's Impulse indicator

    Hello, I have been working with metatrader but new using ninja trader, I have been using this indicator I found in another forum, I wish to know if there is anybody cappable to translate this mt4 indicator to NT, this indicator works with an EMA and MACD Histogram, when MACD Histogram slope is up (slope up means two bars, if the last bar is higher than the previous one; and slope down when the last bar is lower than the previous one, no matter if lines are above or down the zero line), and the EMA slope is positive, it bar will be blue; if EMA slope is negative and MACD histogram is down, it bar will be red, and in other case will be gray.
    changes in parameters like MACD and EMA can be done.

    I have attached an image of how does it look like.
    Thank you

    this is the needed indicator language:

    //+------------------------------------------------------------------+
    //| eSignal.mq4 |
    //| Copyright © 2007, Hartono Setiono |
    //| http://www.mitrakom.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2007, Hartono Setiono"
    #property link "http://www.mitrakom.com"
    #property indicator_separate_window
    #property indicator_buffers 3
    #property indicator_color1 Red
    #property indicator_width1 4
    #property indicator_color2 Blue
    #property indicator_width2 4
    #property indicator_color3 Lime
    #property indicator_width3 4
    //#property indicator_color4 Silver
    //#property indicator_width4 1
    //---- input parameters
    extern int TimeFrame=0;
    extern int EMA_Period=13;
    extern int MACD_FastPeriod=12;
    extern int MACD_SlowPeriod=26;
    extern int MACD_SignalPeriod=9;
    extern bool UseMT4MACD=false;
    extern int DisplayType=1;
    extern string N1="DisplayType Setting:";
    extern string N2="1:Bar/Histogram Only";
    extern string N3="2:Bar as MACD Histogram";
    extern string N4="3:Bar as OSMA Histogram";
    //---- buffers
    double ExtMapBuffer1[];
    double ExtMapBuffer2[];
    double ExtMapBuffer3[];
    double MACDLineBuffer[];
    double MACDSignalLineBuffer[];
    double MACDHistogramBuffer[];
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    string short_name;
    IndicatorBuffers(6);

    //---- indicators
    SetIndexStyle(0,DRAW_HISTOGRAM);
    //SetIndexArrow(0,110);
    SetIndexBuffer(0,ExtMapBuffer1);

    SetIndexStyle(1,DRAW_HISTOGRAM);
    //SetIndexArrow(1,110);
    SetIndexBuffer(1,ExtMapBuffer2);

    SetIndexStyle(2,DRAW_HISTOGRAM);
    //SetIndexArrow(2,110);
    SetIndexBuffer(2,ExtMapBuffer3);
    /*
    if(DisplayType==2)
    {
    SetIndexStyle(3,DRAW_LINE);
    SetIndexBuffer(3,MACDSignalLineBuffer);
    }
    */
    SetIndexEmptyValue(3,0.0);
    SetIndexBuffer(3,MACDSignalLineBuffer);
    SetIndexEmptyValue(4,0.0);
    SetIndexBuffer(4,MACDLineBuffer);
    SetIndexEmptyValue(5,0.0);
    SetIndexBuffer(5,MACDHistogramBuffer);

    switch(TimeFrame)
    {
    case 1 : short_name="Period_M1"; break;
    case 5 : short_name="Period_M5"; break;
    case 15 : short_name="Period_M15"; break;
    case 30 : short_name="Period_M30"; break;
    case 60 : short_name="Period_H1"; break;
    case 240 : short_name="Period_H4"; break;
    case 1440 : short_name="Period_D1"; break;
    case 10080 : short_name="Period_W1"; break;
    case 43200 : short_name="Period_MN1"; break;
    default : {short_name="Current Timeframe"; TimeFrame=0;}
    }
    short_name="Impulse Indicator("+short_name+", "+EMA_Period+":"+MACD_FastPeriod+","+MACD_SlowPeri od+","+MACD_SignalPeriod+")";
    IndicatorShortName(short_name);
    SetIndexLabel(1,NULL);
    SetIndexLabel(2,NULL);
    SetIndexLabel(3,NULL);
    //SetIndexLabel(4,NULL);
    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {
    //----

    //----
    return(0);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int start()
    {
    int i,limit,y=0,counted_bars=IndicatorCounted();
    double ema1, main1, signal1, ema0, main0, signal0, macd1, macd0, main;
    double alpha = 2.0 / (MACD_SignalPeriod + 1.0);
    double alpha_1 = 1.0 - alpha;
    double BarValue;

    limit=Bars-counted_bars;
    for(i=limit-1; i >= 0; i--)
    {
    y = iBarShift(NULL,TimeFrame,Time[i]);
    ema0=iMA(NULL,TimeFrame,EMA_Period,0,MODE_EMA,PRIC E_CLOSE,y);
    ema1=iMA(NULL,TimeFrame,EMA_Period,0,MODE_EMA,PRIC E_CLOSE,y+1);
    if(UseMT4MACD)
    {
    main0=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,0,y);
    main1=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,0,y+1);
    signal0=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,1,y);
    signal1=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,1,y+1);

    main=main0;
    macd0=main0-signal0;
    macd1=main1-signal1;
    } else
    {
    MACDLineBuffer[y] = iMA(NULL,TimeFrame,MACD_FastPeriod,0,MODE_EMA,PRIC E_CLOSE,y)-
    iMA(NULL,TimeFrame,MACD_SlowPeriod,0,MODE_EMA,PRIC E_CLOSE,y);
    MACDSignalLineBuffer[y]=(alpha*MACDLineBuffer[y]) + (alpha_1*MACDSignalLineBuffer[y+1]);
    MACDHistogramBuffer[y]=MACDLineBuffer[y]-MACDSignalLineBuffer[y];

    main=MACDLineBuffer[y];
    macd0=MACDHistogramBuffer[y];
    macd1=MACDHistogramBuffer[y+1];
    }

    switch(DisplayType)
    {
    case 1:BarValue=1; break;
    case 2:BarValue=main; break;
    case 3:BarValue=macd0; break;
    }

    if(ema0<ema1 && macd0<macd1) //both down
    {
    ExtMapBuffer1[i]=BarValue;
    ExtMapBuffer2[i]=0;
    ExtMapBuffer3[i]=0;
    } else
    if(ema0>ema1 && macd0>macd1) //both up
    {
    ExtMapBuffer1[i]=0;
    ExtMapBuffer2[i]=BarValue;
    ExtMapBuffer3[i]=0;
    } else //otherwise
    {
    ExtMapBuffer1[i]=0;
    ExtMapBuffer2[i]=0;
    ExtMapBuffer3[i]=BarValue;
    }
    }
    return(0);
    }
    //+------------------------------------------------------------------+
    Attached Files

    #2
    Welcome to our forums and thanks for sharing this source code - please have a look at this thread where the same indicator was developed (at least it should come close I believe) - http://www.ninjatrader-support2.com/...ead.php?t=6160
    BertrandNinjaTrader Customer Service

    Comment


      #3
      thank you

      thank you bertrand, is almost what I am looking for, I send a message to wessel, asking for help with this indicator, thank you very much

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by wzgy0920, 04-20-2024, 06:09 PM
      2 responses
      26 views
      0 likes
      Last Post wzgy0920  
      Started by wzgy0920, 02-22-2024, 01:11 AM
      5 responses
      32 views
      0 likes
      Last Post wzgy0920  
      Started by wzgy0920, Yesterday, 09:53 PM
      2 responses
      49 views
      0 likes
      Last Post wzgy0920  
      Started by Kensonprib, 04-28-2021, 10:11 AM
      5 responses
      192 views
      0 likes
      Last Post Hasadafa  
      Started by GussJ, 03-04-2020, 03:11 PM
      11 responses
      3,234 views
      0 likes
      Last Post xiinteractive  
      Working...
      X