Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Holiday Schedules - Update/Merge Plan

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

    Holiday Schedules - Update/Merge Plan

    I am excited to see that you have added Holidays to the platform that can be accessed via NinjaScript, however, the existing data does not seem to be current. For CME US Index Futures only last year's holidays are listed.

    What is the plan for maintaining these holidays? Will NT automatically update them for their users, or do we have to manually enter the data? If NT will provide updates, how will conflicts with manually entered data be handled?

    #2
    Note: Trade Holidays are automatically updated from the NinjaTrader data server, to report an issue with a trade holiday or a missing holiday please contact platformsupport[AT]ninjatrader[DOT]com.

    Well I just found something in the docs that says NT will maintain, and users are to notify you of missing data. So when can I see an update?
    Last edited by NinjaTrader_James; 06-10-2015, 01:15 PM.

    Comment


      #3
      I want to exclude any trading day that is any type of holiday from my strategy. Do you have any sample code for how to do this? I noticed several fields with useful names under PartialHoliday.Constraint, but these don't seem to be documented and I am not sure how to interpret time fields that are coded as ints.

      Thanks,
      Chris

      Comment


        #4
        Originally posted by ganamide View Post
        I want to exclude any trading day that is any type of holiday from my strategy. Do you have any sample code for how to do this? I noticed several fields with useful names under PartialHoliday.Constraint, but these don't seem to be documented and I am not sure how to interpret time fields that are coded as ints.

        Thanks,
        Chris
        I just found the documentation. The Constraint is a Session type and it's usage is defined here: http://www.ninjatrader.com/support/h...oniterator.htm

        Still would be nice to have sample code if you guys have it laying around.

        Comment


          #5
          It would be really great if you guys could provide functions that take a DateTime parameter and return bool for IsHoliday and IsPartialHoliday. I've poked around with my debugger and your Holidays and PartialHolidays structures are not easy to use.

          Comment


            #6
            Thank you ganamide for that helpful suggestion. It definitely makes sense to have a boolean that can be quickly checked. I will pass that along to our team for consideration.

            In terms of sample code for using SessionIterator, we do not have anything prepared quite yet, other than the snippet on the page that you linked, but we may flesh this out further in the future.

            Just a quick tip -- did you know that you can edit previous posts on the forum? When you are logged in, you will see an Edit button at the bottom-right corner of your post that will allow you to make additions or changes.
            Dave I.NinjaTrader Product Management

            Comment


              #7
              Originally posted by NinjaTrader_Dave View Post
              Thank you ganamide for that helpful suggestion. It definitely makes sense to have a boolean that can be quickly checked. I will pass that along to our team for consideration.
              +1 on that bool.. Would definitely make it a hole lot easier than how I'm currently doing it..

              You can iterate thru the Holidays for a particular instrument like this..

              Code:
               [COLOR=#0000ff]if[/COLOR]([COLOR=#080808]CurrentBar[/COLOR] == [COLOR=#ff8c00]0[/COLOR])
               {
               [COLOR=#0000ff]     foreach[/COLOR]([COLOR=#0000ff]var[/COLOR] [COLOR=#080808]dt[/COLOR] [COLOR=#0000ff]in[/COLOR] [COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]Holidays[/COLOR])
                    {
               [COLOR=#080808]          Print[/COLOR]( [COLOR=#080808]dt[/COLOR].[COLOR=#080808]Key[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" "[/COLOR] + [COLOR=#080808]dt[/COLOR].[COLOR=#080808]Value[/COLOR].[COLOR=#080808]ToString[/COLOR]() );
                    }
               }
              or using linq create a combined Partial/Holiday var and check for holiday bool..


              Code:
               [COLOR=#0000ff]if[/COLOR]([COLOR=#080808][COLOR=#080808]Bars[/COLOR][COLOR=#000000].[/COLOR][COLOR=#080808]IsFirstBarOfSession[/COLOR][COLOR=#000000] && [/COLOR][COLOR=#080808]IsFirstTickOfBar[/COLOR][/COLOR])
               {
              [COLOR=#0000ff][COLOR=#0000ff]     var[/COLOR] [COLOR=#080808]mHoliday[/COLOR] = ([COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]Holidays[/COLOR].[COLOR=#080808]Select[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Key[/COLOR]).[COLOR=#080808]Union[/COLOR]([COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]PartialHolidays[/COLOR].[COLOR=#080808]Select[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Key[/COLOR])).[COLOR=#080808]OrderBy[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Date[/COLOR]));
               [COLOR=#0000ff]     bool[/COLOR] [COLOR=#080808]IsHoliday[/COLOR] = [COLOR=#080808]mHoliday[/COLOR].[COLOR=#080808]Contains[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR]) ? [COLOR=#0000ff]true[/COLOR] : [COLOR=#0000ff]false[/COLOR];
               [COLOR=#0000ff]     if[/COLOR]([COLOR=#080808]IsHoliday[/COLOR]) [COLOR=#080808]Print[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" Confirmed Holiday"[/COLOR]);   
               [COLOR=#0000ff]     else[/COLOR] [COLOR=#080808]Print[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" Is Not Holiday"[/COLOR]); 
               [/COLOR]}
              Not sure you'd want to create a new var at the start of every session from an effiency standpoint, but keeping the code short and sweet, this should get you started..


              -=Edge=-
              NinjaTrader Ecosystem Vendor - High Tech Trading Analysis

              Comment


                #8
                Originally posted by -=Edge=- View Post
                +1 on that bool.. Would definitely make it a hole lot easier than how I'm currently doing it..

                You can iterate thru the Holidays for a particular instrument like this..

                Code:
                 [COLOR=#0000ff]if[/COLOR]([COLOR=#080808]CurrentBar[/COLOR] == [COLOR=#ff8c00]0[/COLOR])
                 {
                 [COLOR=#0000ff]     foreach[/COLOR]([COLOR=#0000ff]var[/COLOR] [COLOR=#080808]dt[/COLOR] [COLOR=#0000ff]in[/COLOR] [COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]Holidays[/COLOR])
                      {
                 [COLOR=#080808]          Print[/COLOR]( [COLOR=#080808]dt[/COLOR].[COLOR=#080808]Key[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" "[/COLOR] + [COLOR=#080808]dt[/COLOR].[COLOR=#080808]Value[/COLOR].[COLOR=#080808]ToString[/COLOR]() );
                      }
                 }
                or using linq create a combined Partial/Holiday var and check for holiday bool..


                Code:
                 [COLOR=#0000ff]if[/COLOR]([COLOR=#080808][COLOR=#080808]Bars[/COLOR][COLOR=#000000].[/COLOR][COLOR=#080808]IsFirstBarOfSession[/COLOR][COLOR=#000000] && [/COLOR][COLOR=#080808]IsFirstTickOfBar[/COLOR][/COLOR])
                 {
                [COLOR=#0000ff][COLOR=#0000ff]     var[/COLOR] [COLOR=#080808]mHoliday[/COLOR] = ([COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]Holidays[/COLOR].[COLOR=#080808]Select[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Key[/COLOR]).[COLOR=#080808]Union[/COLOR]([COLOR=#080808]Instrument[/COLOR].[COLOR=#080808]MasterInstrument[/COLOR].[COLOR=#080808]TradingHours[/COLOR].[COLOR=#080808]PartialHolidays[/COLOR].[COLOR=#080808]Select[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Key[/COLOR])).[COLOR=#080808]OrderBy[/COLOR]([COLOR=#080808]a[/COLOR] => [COLOR=#080808]a[/COLOR].[COLOR=#080808]Date[/COLOR]));
                 [COLOR=#0000ff]     bool[/COLOR] [COLOR=#080808]IsHoliday[/COLOR] = [COLOR=#080808]mHoliday[/COLOR].[COLOR=#080808]Contains[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR]) ? [COLOR=#0000ff]true[/COLOR] : [COLOR=#0000ff]false[/COLOR];
                 [COLOR=#0000ff]     if[/COLOR]([COLOR=#080808]IsHoliday[/COLOR]) [COLOR=#080808]Print[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" Confirmed Holiday"[/COLOR]);   
                 [COLOR=#0000ff]     else[/COLOR] [COLOR=#080808]Print[/COLOR]([COLOR=#080808]Time[/COLOR][[COLOR=#ff8c00]0[/COLOR]].[COLOR=#080808]AddDays[/COLOR]([COLOR=#ff8c00]1[/COLOR]).[COLOR=#080808]Date[/COLOR].[COLOR=#080808]ToString[/COLOR]() + [COLOR=#b22222]" Is Not Holiday"[/COLOR]); 
                 [/COLOR]}
                Not sure you'd want to create a new var at the start of every session from an effiency standpoint, but keeping the code short and sweet, this should get you started..


                Thanks Edge! I was trying to wrap my head around comparing holidays with a date that is not the same date as the start of the session. Your DateTime.AddDays(1) makes it easy! This was just the code snippet I was looking for!

                Are you porting your Draw Bar tool to NT8? Will it be a free upgrade for people who bought your NT7 version? Looking forward to all the improvements we can make with NT8.

                Comment


                  #9
                  Originally posted by ganamide View Post
                  Thanks Edge! Are you porting your Draw Bar tool to NT8? Will it be a free upgrade for people who bought your NT7 version? Looking forward to all the improvements we can make with NT8.
                  Absolutely.. not sure I would want to trade without it anymore.. That ones going to be a rather large undertaking though.. as of my 29th upgrade for that one, there is now over a couple thousand lines of code just in the toolstrips and events alone, and then even more so in the plot override.. All of which is going to have to be completely re-written, well maybe not completely, but it's definitely going to take a considerable amount of time and effort.. So doubtful that will be free..

                  I've played a bit in VS with the conversion process, although haven't even started towards that one under NT yet.. There is still no viable or at least acceptable way imo of adding a dock/stack/wrap panel into NT yet.. Not real happy with wpf buttons and context menu's either, as they are adding several restraints to the way winforms did things.. I'll have to find some work around solutions for several things when it comes to that.. Although have a lot of new idea's and features that can now be added with the openness of NT's base.. So hopefully it's only to get better.. But only time will tell...


                  -=Edge=-
                  NinjaTrader Ecosystem Vendor - High Tech Trading Analysis

                  Comment


                    #10
                    Any progress on creating an IsHoliday() and IsPartialHoliday() function in NT8?

                    Comment


                      #11
                      We are still tracking this one to see if more feedback or requests come in.
                      Dave I.NinjaTrader Product Management

                      Comment

                      Latest Posts

                      Collapse

                      Topics Statistics Last Post
                      Started by jaybedreamin, Today, 05:56 PM
                      0 responses
                      2 views
                      0 likes
                      Last Post jaybedreamin  
                      Started by DJ888, 04-16-2024, 06:09 PM
                      6 responses
                      18 views
                      0 likes
                      Last Post DJ888
                      by DJ888
                       
                      Started by Jon17, Today, 04:33 PM
                      0 responses
                      1 view
                      0 likes
                      Last Post Jon17
                      by Jon17
                       
                      Started by Javierw.ok, Today, 04:12 PM
                      0 responses
                      6 views
                      0 likes
                      Last Post Javierw.ok  
                      Started by timmbbo, Today, 08:59 AM
                      2 responses
                      10 views
                      0 likes
                      Last Post bltdavid  
                      Working...
                      X