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 SalmaTrader, 07-07-2026, 10:26 PM
      0 responses
      35 views
      0 likes
      Last Post SalmaTrader  
      Started by CarlTrading, 07-05-2026, 01:16 PM
      0 responses
      20 views
      0 likes
      Last Post CarlTrading  
      Started by CaptainJack, 06-17-2026, 10:32 AM
      0 responses
      13 views
      0 likes
      Last Post CaptainJack  
      Started by kinfxhk, 06-17-2026, 04:15 AM
      0 responses
      19 views
      0 likes
      Last Post kinfxhk
      by kinfxhk
       
      Started by kinfxhk, 06-17-2026, 04:06 AM
      0 responses
      21 views
      0 likes
      Last Post kinfxhk
      by kinfxhk
       
      Working...
      X