• If this is your first visit, you will have to register before you can post. To view messages, please scroll below and select the forum that you would like to visits. Questions? Be sure to check out the Forum FAQ.

Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Comparing two times with ToTime(Time[0]) while avoiding overruns

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

    Comparing two times with ToTime(Time[0]) while avoiding overruns

    Hi all,

    I think I know the answer to this question in advance, but I'm going to ask it anyway.

    I've been using ToTime to do a lot of time comparisons in my strategy. A well known use of it is by restricting the time a script executes a bit of code, based on the time of day. Here's what I use:

    Code:
    //  Run the script if the time is between 7:15 AM and 2:57 PM
    			if (ToTime(Time[0]) >= 71500 && ToTime(Time[0]) <= 145700)
    The problem I'm having now is comparing two time values at each bar update. The first time is a variable I set when any trade occurs. The second variable is the time of the bar update. I keep track of the difference between these two for reporting purposes and to measure how long I've been in a trade.

    The snag occurs when I make a trade at 8:56 AM, and the bar update time value is 9:01. The math goes like this:

    At the 8:58 AM mark:
    85800 - 85600 = 200 (which is what I'm looking for)

    At the 9:01 AM mark:
    90100 - 85600 = 4500 (which is the overrun gap I run into using ToTime

    ------------------

    My instinct is telling me that I have to convert all of my double variables holding times to DateTime variables, and using TimeSpan to figure out the difference.

    Would this be correct, or is there a workaround within Time or ToTime that I can leverage? Mind you, the trade time is set with ToTime(Time[0]) at the time of the trade, and the same method is used to compare that time with OnBarUpdate in a COBC = false environment.

    Thanks in advance for any answers or advice!

    Yours,
    Spider

    #2
    Got it!

    Nevermind!

    I figured it out on my own. The following code compares two time structures using TotalMinutes. Just had to scour StackOverflow for about 30 minutes and found a solution.

    Code:
    #region Variables
            
    		DateTime FirstTime = new DateTime();
    		DateTime SecondTime = new DateTime();
    		double Diff;
    		
            #endregion
    
     protected override void OnBarUpdate()
            {
    			if (ToTime(Time[0]) == 83500)	{FirstTime = Time[0];}
    			SecondTime = Time[0];
    			Diff = (SecondTime - FirstTime).TotalMinutes;
    			Print("Diff is " + Diff);	
    			
            }
    Hope that helps someone else in the same predicament!

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by Goolden, Today, 09:51 AM
    1 response
    9 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by ArmKnuckle, Today, 01:25 AM
    1 response
    25 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by 7robert, Today, 08:26 AM
    1 response
    4 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by 7robert, Today, 08:08 AM
    1 response
    6 views
    0 likes
    Last Post NinjaTrader_Jim  
    Started by ttodua, Today, 08:09 AM
    1 response
    9 views
    0 likes
    Last Post NinjaTrader_Jim  
    Working...
    X