Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

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 burtoninlondon, Today, 12:38 AM
      0 responses
      5 views
      0 likes
      Last Post burtoninlondon  
      Started by AaronKoRn, Yesterday, 09:49 PM
      0 responses
      13 views
      0 likes
      Last Post AaronKoRn  
      Started by carnitron, Yesterday, 08:42 PM
      0 responses
      11 views
      0 likes
      Last Post carnitron  
      Started by strategist007, Yesterday, 07:51 PM
      0 responses
      13 views
      0 likes
      Last Post strategist007  
      Started by StockTrader88, 03-06-2021, 08:58 AM
      44 responses
      3,982 views
      3 likes
      Last Post jhudas88  
      Working...
      X