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 stafe, Today, 12:34 PM
      2 responses
      20 views
      0 likes
      Last Post stafe
      by stafe
       
      Started by asmmbillah, Today, 11:18 AM
      1 response
      17 views
      0 likes
      Last Post NinjaTrader_ChrisL  
      Started by nickse2003, Today, 09:56 AM
      1 response
      27 views
      0 likes
      Last Post NinjaTrader_ChristopherJ  
      Started by ATMtrader0001, Today, 10:08 AM
      5 responses
      37 views
      0 likes
      Last Post ATMtrader0001  
      Started by WHICKED, Today, 09:47 AM
      1 response
      26 views
      0 likes
      Last Post NinjaTrader_Spencer  
      Working...
      X