Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

marketDataUpdate.Price of second instrument

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

    marketDataUpdate.Price of second instrument

    I have written a code that display the last price traded in the chart and it works ok.

    But what I want is to display the last price of another instrument without including in the data series of the chart.When I call for the second data serie in the indicator there is an error in marketDataUpdate.Price[1]...



    //else if (State == State.Configure)
    //{
    // AddDataSeries("ES 12-20", Data.BarsPeriodType.Tick, 1, Data.MarketDataType.Last);
    //}
    }

    protected override void OnBarUpdate(){}

    protected override void OnMarketData(Data.MarketDataEventArgs marketDataUpdate)
    {

    if (BarsInProgress != 0)
    return;

    if (CurrentBars[0] < 1
    || CurrentBars[1] < 0)
    return;


    if (marketDataUpdate.MarketDataType == MarketDataType.Last)

    Draw.TextFixed(this, "", "" + marketDataUpdate.Price[1],TextPosition.TopRight, Brushes.White, new Gui.Tools.SimpleFont("Arial", 12), Brushes.Transparent, Brushes.Transparent, 100);
    }

    Would it be possible in another way?

    Thanks a lot

    #2
    Hello Impessa,

    Thanks for your question.

    You can use BarsInProgress checks to differentiate the added data series from from the primary data series. The Data Series must be added with AddDataSeries in order to receive realtime OnMarketData updates for a secondary instrument.

    Code:
    protected override void OnStateChange()
    {
        if (State == State.SetDefaults)
        {
            Name = "MyCustomIndicator6";
            Calculate = Calculate.OnBarClose;
        }
        else if (State == State.Configure)
        {
            AddDataSeries("ES 12-20", Data.BarsPeriodType.Minute, 1, Data.MarketDataType.Last);
        }
    }
    
    protected override void OnMarketData(MarketDataEventArgs marketDataUpdate)
    {
        if (BarsInProgress == 0)
        {
            Print("BIP0: " + Instrument.FullName);
        }
        if (BarsInProgress == 1)
        {
        Print("BIP1: " + Instrument.FullName);
        }
    }
    BarsInProgress - https://ninjatrader.com/support/help...inprogress.htm

    We look forward to assisting.

    Comment


      #3
      Thanks a lot, Jim

      It works fine!

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by charlesugo_1, 05-26-2026, 05:03 PM
      0 responses
      68 views
      0 likes
      Last Post charlesugo_1  
      Started by DannyP96, 05-18-2026, 02:38 PM
      1 response
      151 views
      0 likes
      Last Post NinjaTrader_ChelseaB  
      Started by CarlTrading, 05-11-2026, 05:56 AM
      0 responses
      162 views
      0 likes
      Last Post CarlTrading  
      Started by CarlTrading, 05-10-2026, 08:12 PM
      0 responses
      100 views
      0 likes
      Last Post CarlTrading  
      Started by Hwop38, 05-04-2026, 07:02 PM
      0 responses
      288 views
      0 likes
      Last Post Hwop38
      by Hwop38
       
      Working...
      X