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.
    JimNinjaTrader Customer Service

    Comment


      #3
      Thanks a lot, Jim

      It works fine!

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Grantx, 01-25-2017, 07:15 AM
      4 responses
      880 views
      0 likes
      Last Post Adfra
      by Adfra
       
      Started by mv075sn, Today, 03:42 PM
      2 responses
      15 views
      0 likes
      Last Post mv075sn
      by mv075sn
       
      Started by vantojo, Today, 03:06 PM
      4 responses
      14 views
      0 likes
      Last Post vantojo
      by vantojo
       
      Started by Amore44, Today, 01:34 PM
      1 response
      11 views
      0 likes
      Last Post NinjaTrader_ChelseaB  
      Started by Anthony_0709, Today, 01:48 PM
      1 response
      18 views
      0 likes
      Last Post NinjaTrader_BrandonH  
      Working...
      X