Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Do I still need to use a 2nd (smaller) time seres in NT8?

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

    Do I still need to use a 2nd (smaller) time seres in NT8?

    I asked this in the forum but I think Ray thought it was back testing specific. As you probably know at this point I am using two time seres for my strategies. For example if I use a 1440-minute chart to run my strategy it also internally uses a 1-min series for historical executions. This way - if I need to relaunch an open strategy - I'm getting the same (or almost the same) entry and it can be synced.

    Based on the changes I'm seeing in the market analyzer I suspect that this may now not be necessary anymore. Can I simply run a strategy now on a longer term chart but still pick up past executions on a lower time frame basis? 5-min, 1-min, 1-tick - etc.

    This is a rather important issue for me - first off it would remove a LOT of complexity from my existing strategies. I have follow up questions if that is the case but let's cover the basic concept first.

    Many thanks in advance.

    #2
    There is a Historical Fill Processing option on the strategy which would have an option of "High". If you're using 1440 minute strategy, you could set the High fill processing to "1 minute" without having to code in your own data series.

    This option is available from the Chart/Strategies tab and Strategy Analyzer and will help calculate historical executions if you're starting the strategy live.
    MatthewNinjaTrader Product Management

    Comment


      #3
      Originally posted by NinjaTrader_Matthew View Post
      There is a Historical Fill Processing option on the strategy which would have an option of "High". If you're using 1440 minute strategy, you could set the High fill processing to "1 minute" without having to code in your own data series.

      This option is available from the Chart/Strategies tab and Strategy Analyzer and will help calculate historical executions if you're starting the strategy live.
      Wow, that would be absolutely brilliant! What does the 'high' setting mean if I can select 1-minute intervals?

      Of course this means I would have to rewrite my old strategies. Until I get around to that I take it I would continue running a 2nd series and simply leave that historical fill processing option off? Just making sure.

      But in any case - this is absolutely awesome :-)

      Comment


        #4
        "High" means a higher resolution than the primary.

        1440 Minute is a "lower" resolution than a 1 minute-> the bars update less frequently.

        You can absolutely continue to execute your strategies with the NT7 approach and you do not need to use our high resolution processing.

        I'd also like to mention that the standard fill processing has been improved to give theoretical intrabar processing, which is not as accurate, but should be better than NT7's approach.
        MatthewNinjaTrader Product Management

        Comment


          #5
          Fantabulous

          Originally posted by NinjaTrader_Matthew View Post
          "High" means a higher resolution than the primary.

          1440 Minute is a "lower" resolution than a 1 minute-> the bars update less frequently.

          You can absolutely continue to execute your strategies with the NT7 approach and you do not need to use our high resolution processing.

          I'd also like to mention that the standard fill processing has been improved to give theoretical intrabar processing, which is not as accurate, but should be better than NT7's approach.
          Understood, I'm probably just tripping over the lingo. Basically - and just to be crystal clear on this - with NT8 I can now pop open a 480 minute chart and have it execute my strategy on a 1-minute basis for historical orders? If my EURUSD long was taken at 9:34am this morning then it'll take a similar, if not the same, entry based on 1-minute chart touching my buy trigger.

          Live it obviously always does this. The historical entries were always the problem.

          Comment


            #6
            You are correct in your understanding - I hope it works for you and we're thrilled to provided it.

            If you want to take it even one step further, there is now even a concept of "Tick Replay" which gives you the exact sequence of market data events that went into building a bar, should you require that level of granularity. This is enabled under Tools-> Options-> Market Data "show tick reply".

            When this global feature is on, the strategy "data series" ui setup will have an option called "Tick Replay" to which will "replay" market data events while your strategy is loading historically (more resource intensive obviously).
            MatthewNinjaTrader Product Management

            Comment


              #7
              Originally posted by NinjaTrader_Matthew View Post
              You are correct in your understanding - I hope it works for you and we're thrilled to provided it.

              If you want to take it even one step further, there is now even a concept of "Tick Replay" which gives you the exact sequence of market data events that went into building a bar, should you require that level of granularity. This is enabled under Tools-> Options-> Market Data "show tick reply".

              When this global feature is on, the strategy "data series" ui setup will have an option called "Tick Replay" to which will "replay" market data events while your strategy is loading historically (more resource intensive obviously).
              You gave us too little in NT7 and we complained, so now you are giving us "everything but the kitchen sink". When shall we also have the kitchen sink?

              Comment


                #8
                Originally posted by NinjaTrader_Matthew View Post
                You are correct in your understanding - I hope it works for you and we're thrilled to provided it.

                If you want to take it even one step further, there is now even a concept of "Tick Replay" which gives you the exact sequence of market data events that went into building a bar, should you require that level of granularity. This is enabled under Tools-> Options-> Market Data "show tick reply".

                When this global feature is on, the strategy "data series" ui setup will have an option called "Tick Replay" to which will "replay" market data events while your strategy is loading historically (more resource intensive obviously).
                Wow, that is fascinating and I immediately have a follow up question (sorry!). I am not sure I require that level of granularity HOWEVER it may come very handy on *open campaigns*. Let's assume NT8 crashes - yes, I know that won't ever happen ;-) - and I have to relaunch my campaigns and sync them with my open positions. VERY useful on crashes, data feed corruptions, discretionary relaunches, etc.. But it may not be necessary to do it across the entire chart - can it be limited to let's say the past 10 bars only?

                With my 2nd series approach in NT7 I am doing this manually. I pass the 1-minute series processing unless a flag is set by my larger time series. So I can simply set it to start processing 1-minute data throughout the past 10 or 15 lower resolution bars, e.g. 1440m, 480m.

                So if I understand it correctly I have two options:

                1) I can set my strategy to TICK replay - which will replay exactly what happened in live mode.
                2) I can set it to a higher frequency - e.g. 1-minute bars, which is an approximation but may give me sufficient context based on my requirements.

                I hope this makes sense. I would definitely use this feature if it can be curtailed to recent executions.
                Last edited by molecool; 05-08-2015, 12:20 PM.

                Comment


                  #9
                  Originally posted by koganam View Post
                  You gave us too little in NT7 and we complained, so now you are giving us "everything but the kitchen sink". When shall we also have the kitchen sink?
                  I dunno but this brilliant - IF I understand it correctly. This completely changes the way I write my strategies and cuts out a ton of complexity moving forward. Of course it also creates a dependency on this feature working properly. I've had a ton of problems picking up older campaigns as some of my strategies run for weeks. Something always happens - especially data feed outages. So being able to assure that my ongoing campaigns are being picked up and synced properly is a huge step forward. I'll be testing this new feature extensively.

                  Comment


                    #10
                    Originally posted by molecool View Post
                    Wow, that is fascinating and I immediately have a follow up question (sorry!). I am not sure I require that level of granularity HOWEVER it may come very handy on *open campaigns*. Let's assume NT8 crashes - yes, I know that won't ever happen ;-) - and I have to relaunch my campaigns and sync them with my open positions. VERY useful on crashes, data feed corruptions, discretionary relaunches, etc.. But it may not be necessary to do it across the entire chart - can it be limited to let's say the past 10 bars only?

                    With my 2nd series approach in NT7 I am doing this manually. I pass the 1-minute series processing unless a flag is set by my larger time series. So I can simply set it to start processing 1-minute data throughout the past 10 or 15 lower resolution bars, e.g. 1440m, 480m.

                    So if I understand it correctly I have two options:

                    1) I can set my strategy to TICK replay - which will replay exactly what happened in live mode.
                    2) I can set it to a higher frequency - e.g. 1-minute bars, which is an approximation but may give me sufficient context based on my requirements.

                    I hope this makes sense. I would definitely use this feature if it can be curtailed to recent executions.
                    Correct on both points! I'd like to point out that you have access to more high granularity than "minute"-> you can select "second" or event "tick" if you're working with minute bars as primary.

                    In addition, to help you with syncing your strategies after a restart, we have IsAdoptAccountPositionAware strategies concept, which will sync your "strategy" position to your real-world account position...meaning if you start your strategy and its Position is calculated flat, but your Account is long, your strategy will start "long".

                    There is also a PositionAccount position object you can compare to the "strategy" Position.

                    Replaying executions may not even be required if you do not need execution data, but rather you're just looking to find your Strategy Position vs PositionAccount position...
                    MatthewNinjaTrader Product Management

                    Comment


                      #11
                      Wow, that's a lot to digest - various avenues to knock this problem over the head once and for all. Please see below:

                      Originally posted by NinjaTrader_Matthew View Post
                      Correct on both points! I'd like to point out that you have access to more high granularity than "minute"-> you can select "second" or event "tick" if you're working with minute bars as primary.
                      So you're saying that you basically can simulate 'TICK replay' via the ' higher frequency execution' option by setting it to TICK? I'm just want to make sure I understand this correctly. If so what was the motivation to implement TICK replay? It can be achieved and obviously matched by activating a more granular frequency execution on the chart after all.


                      Originally posted by NinjaTrader_Matthew View Post
                      In addition, to help you with syncing your strategies after a restart, we have IsAdoptAccountPositionAware strategies concept, which will sync your "strategy" position to your real-world account position...meaning if you start your strategy and its Position is calculated flat, but your Account is long, your strategy will start "long".
                      It still will consider unit size and limit price as its criteria when matching up orders, right?


                      Originally posted by NinjaTrader_Matthew View Post
                      There is also a PositionAccount position object you can compare to the "strategy" Position.
                      Yeah, that is pretty cool - that's a new object, right? Because right now I'm persisting my trades to a file so I can pick them up properly again. My specific problem is that my position sizes are never the same as account principal is being considered as a parameter when calculating position sizes. What happens three days later, when picking up an old execution, is that the unit size never matched up. So I wrote some code that picks that out of a file and then tries to sync it.

                      Basically what I could do now instead then is to simply see if there is an open position with the same limit entry price - I hope that is part of that object. Because then I could just pick it out of there and use the units I get from my PositionAccount object.


                      Originally posted by NinjaTrader_Matthew View Post
                      Replaying executions may not even be required if you do not need execution data, but rather you're just looking to find your Strategy Position vs PositionAccount position...
                      Well, I need to continue my campaign - pick up my stops and triggers. So yes, I think I need that entry execution in order to produce all those (I think).

                      Comment


                        #12
                        Originally posted by molecool View Post
                        So you're saying that you basically can simulate 'TICK replay' via the ' higher frequency execution' option by setting it to TICK? I'm just want to make sure I understand this correctly. If so what was the motivation to implement TICK replay? It can be achieved and obviously matched by activating a more granular frequency execution on the chart after all.
                        Quite simply, adding "Tick" would give you last price events only - Tick Replay gives you bid/ask/last.

                        Originally posted by molecool View Post
                        It still will consider unit size and limit price as its criteria when matching up orders, right?
                        It should - let us know if you run into any issues and we'll for sure have that looked into

                        Originally posted by molecool View Post

                        Yeah, that is pretty cool - that's a new object, right? Because right now I'm persisting my trades to a file so I can pick them up properly again. My specific problem is that my position sizes are never the same as account principal is being considered as a parameter when calculating position sizes. What happens three days later, when picking up an old execution, is that the unit size never matched up. So I wrote some code that picks that out of a file and then tries to sync it.

                        Basically what I could do now instead then is to simply see if there is an open position with the same limit entry price - I hope that is part of that object. Because then I could just pick it out of there and use the units I get from my PositionAccount object.
                        Correct, new object that you can access.

                        Originally posted by molecool View Post

                        Well, I need to continue my campaign - pick up my stops and triggers. So yes, I think I need that entry execution in order to produce all those (I think).
                        Gotcha, well in that case - I think the High resolution should serve your purposes.
                        MatthewNinjaTrader Product Management

                        Comment


                          #13
                          If I may...

                          If I may - I have a follow up questions regarding this. Given those two general approaches - be this the TICK replay or by adding higher frequency execution - how do I differentiate which frequency is calling my OnBarUpdate() method?

                          In NT7 I simply do this - e.g. given a 480 minute chart with an added 1 minute series for historical execution:

                          Code:
                          if (BarsInProgress == 0) {
                             // take care of all 480 minute stuff - like candle patterns and such
                             // setting flags, roll over stuff, etc.
                          }
                          
                          
                          if (BarsInProgress == 1) {
                            // take care of entry logic, manual trailing stops, profit verifications, etc.
                          }
                          Does this still apply in NT8? Without adding a second series - when does my OnBarUpdate separate between 1-minute interval, or the 480?

                          Comment


                            #14
                            This may have been overlooked in the flood of new reports posted to the beta corner. Any input would be welcome, thanks in advance.

                            Comment


                              #15
                              From my reading, this should be the same as before with NT 7. Primary bar series 0 will have priority in calling the OnBarUpdate() when you have multiple BarObjects. So every 480 minutes you'll have two calls, one for the 480 min (Primary) and one for the 1 min (secondary)

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by timmbbo, Today, 08:59 AM
                              1 response
                              2 views
                              0 likes
                              Last Post NinjaTrader_ChelseaB  
                              Started by KennyK, 05-29-2017, 02:02 AM
                              2 responses
                              1,279 views
                              0 likes
                              Last Post marcus2300  
                              Started by fernandobr, Today, 09:11 AM
                              0 responses
                              0 views
                              0 likes
                              Last Post fernandobr  
                              Started by itrader46, Today, 09:04 AM
                              1 response
                              3 views
                              0 likes
                              Last Post NinjaTrader_Clayton  
                              Started by bmartz, 03-12-2024, 06:12 AM
                              5 responses
                              33 views
                              0 likes
                              Last Post NinjaTrader_Zachary  
                              Working...
                              X