• 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

  • Spiderbird
    replied
    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!

    Leave a comment:


  • 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

Latest Posts

Collapse

Topics Statistics Last Post
Started by dltharpe, Today, 09:17 AM
0 responses
7 views
0 likes
Last Post dltharpe  
Started by HiddenPhilosopher, Today, 06:45 AM
0 responses
7 views
0 likes
Last Post HiddenPhilosopher  
Started by PG7940, Today, 04:26 AM
0 responses
11 views
0 likes
Last Post PG7940
by PG7940
 
Started by marcus2300, Today, 02:25 AM
0 responses
2 views
0 likes
Last Post marcus2300  
Started by drpapp, 01-24-2019, 06:57 AM
5 responses
70 views
0 likes
Last Post pjsmith
by pjsmith
 
Working...
X