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

Adding Bar objects

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

    Adding Bar objects

    The help file https://ninjatrader.com/support/help.../nt7/?add3.htm has this example:

    Code:
    protected override void Initialize()
    {
        // Add a 5 minute Bars object - BarsInProgress index = 1 
        Add(PeriodType.Minute, 5);
     
        // Add a 100 tick Bars object for the ES 12-06 contract - BarsInProgress index = 2 
        Add("ES 12-06", PeriodType.Tick, 100); 
    }
    This obviously would work back when the "ES 12-06" contract was active, but is there anyway to simply refer to the lead contract automatically? Otherwise, the source code needs to be manually updated every few months

    #2
    Hello MM345,

    There is no documented way of adding a future and having it automatically select the currently traded expiry.

    You could use a string input to allow the user running the script to enter the symbol and expiry.

    I am currently inquiring with development to see if it is possible to get an instrument object and loop through the rollover dates in NinjaTrader 7.

    (This is possible in NinjaTrader 8 with GetInstrument())
    Chelsea B.NinjaTrader Customer Service

    Comment


      #3
      Hi MM345,

      The following code is not documented or supported, but may help you find what you are looking for.

      To find the current expiry for a future:

      Code:
      In #region Variables:
      private RollOver rollOver;
      
      In Initialize():
      Instrument anInstrument = Cbi.Instrument.GetObject("ES 03-15");
      Print(anInstrument.FullName);
      
      bool found = false;
      			
      for (int i = 1; i < anInstrument.MasterInstrument.RollOverCollection.Count; i++)
      {
      	if (found == false && anInstrument.MasterInstrument.RollOverCollection[i].ContractMonth > DateTime.Now)
      	{
      		rollOver = anInstrument.MasterInstrument.RollOverCollection[i];
      		found = true;
      	}
      }
      
      if (found == true)
      	Print(rollOver.ToString());
      
      Add(string.Format("ES {0}", rollOver));
      Chelsea B.NinjaTrader Customer Service

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Shansen, 08-30-2019, 10:18 PM
      24 responses
      941 views
      0 likes
      Last Post spwizard  
      Started by Max238, Today, 01:28 AM
      0 responses
      9 views
      0 likes
      Last Post Max238
      by Max238
       
      Started by rocketman7, Today, 01:00 AM
      0 responses
      4 views
      0 likes
      Last Post rocketman7  
      Started by wzgy0920, 04-20-2024, 06:09 PM
      2 responses
      28 views
      0 likes
      Last Post wzgy0920  
      Started by wzgy0920, 02-22-2024, 01:11 AM
      5 responses
      33 views
      0 likes
      Last Post wzgy0920  
      Working...
      X