Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Trying to get MACD Histogram to work but getting error

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

    Trying to get MACD Histogram to work but getting error

    I'm just trying to add a MACD Histogram to my strategy. I know I'm not doing it right, but this is just from the best of my memory of how it should be done.

    This is on a lower timeframe chart with 30 minute MACD added

    Strategy
    {
    private Series <double> signal;
    private Series <double> macdhistogram;


    else if (State == State.Configure)
    {
    AddDataSeries(Data.BarsPeriodType.Minute, 30);
    }

    protected override void OnBarUpdate()
    {

    if (CurrentBar < BarsRequiredToTrade)
    return;

    if (BarsInProgress == 1)
    {

    signal[0] = EMA(MACD(BarsArray[1], 12, 26, 9), 9)[0];
    macdhistogram[0] = (MACD(BarsArray[1], 12, 26, 9)[0] - signal[0]);

    Print(string.Format("{0};{1};{2};{3};{4};{5};{6}", Time[0], Open[0], High[0], Low[0], Close[0], Position.MarketPosition, macdhistogram[0]));

    //Longafter
    if (((macdhistogram[0] - macdhistogram[1]) > 0) && ((ToTime(Time[0]) > 010000 && ToTime(Time[0]) < 080000)) || ((ToTime(Time[0]) > 170000 && ToTime(Time[0]) < 230000)) && Position.MarketPosition != MarketPosition.Long)
    {
    EnterLong("Longafter");
    }

    --------------

    But I keep getting an error of Error on calling 'OnBarUpdate' method on bar 314: Object reference not set to an instance of an object.​

    #2
    Hello unpronounceable1700,

    In the scope of the class:

    Code:
    private EMA     myEMA;
    private MACD  myMACD;
    In OnStateChange():
    Code:
    else if (State == State.Configure)
    {
    AddDataSeries(Data.BarsPeriodType.Minute, 30);
    }​
    else if (State == State.DataLoaded)
    {
    myMACD  = MACD(BarsArray[1], 12, 26, 9);
    myEMA     = EMA(myMACD, 9);
    }
    In OnBarUpdate():
    Code:
    Print(string.Format("{0} | myMACD.Diff[0]: {1}, myEMA[0]: {1}", Time[0], myMACD.Diff[0], myEMA[0]));
    
    if (myMACD.Diff[0] - myMACD.Diff[1] > 0 && ((ToTime(Time[0]) > 010000 && ToTime(Time[0]) < 080000)) || ((ToTime(Time[0]) > 170000 && ToTime(Time[0]) < 230000)) && Position.MarketPosition != MarketPosition.Long)
    Chelsea B.NinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by NullPointStrategies, Today, 05:17 AM
    0 responses
    52 views
    0 likes
    Last Post NullPointStrategies  
    Started by argusthome, 03-08-2026, 10:06 AM
    0 responses
    130 views
    0 likes
    Last Post argusthome  
    Started by NabilKhattabi, 03-06-2026, 11:18 AM
    0 responses
    70 views
    0 likes
    Last Post NabilKhattabi  
    Started by Deep42, 03-06-2026, 12:28 AM
    0 responses
    44 views
    0 likes
    Last Post Deep42
    by Deep42
     
    Started by TheRealMorford, 03-05-2026, 06:15 PM
    0 responses
    49 views
    0 likes
    Last Post TheRealMorford  
    Working...
    X