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 CarlTrading, 03-31-2026, 09:41 PM
      1 response
      81 views
      1 like
      Last Post NinjaTrader_ChelseaB  
      Started by CarlTrading, 04-01-2026, 02:41 AM
      0 responses
      42 views
      0 likes
      Last Post CarlTrading  
      Started by CaptainJack, 03-31-2026, 11:44 PM
      0 responses
      64 views
      2 likes
      Last Post CaptainJack  
      Started by CarlTrading, 03-30-2026, 11:51 AM
      0 responses
      66 views
      0 likes
      Last Post CarlTrading  
      Started by CarlTrading, 03-30-2026, 11:48 AM
      0 responses
      54 views
      0 likes
      Last Post CarlTrading  
      Working...
      X