• 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

rectangle end time

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

    rectangle end time

    I want to draw a rectangle from 3am to 4am.

    I am currently using the following to draw a rectangle from 3am to 20 bars forward.

    if (ToTime(Time[0]) == 30000)
    {
    DrawRectangle("tag1"+CurrentBar, 0 ,Open[0], -20, Close[0], Color.PaleGreen);
    }



    I have tried this but nothing shows up on the chart...
    if (ToTime(Time[0]) == 30000)
    {
    DrawRectangle("tag1"+CurrentBar,true, 30000 ,Open[0], 40000, Close[0], Color.PaleGreen,Color.Red,5);
    }

    #2
    Originally posted by brucelevy View Post
    DrawRectangle("tag1"+CurrentBar,true, 30000 ,Open[0], 40000, Close[0], Color.PaleGreen,Color.Red,5);
    Because 30000 and 40000 are not DateTimes.

    Comment


      #3
      To clarify, if you would like to convert a ToTime() compatible time into a DateTime object, you can use this static method

      Code:
      public static DateTime FromTime(int time)
      {
          DateTime outTime = new DateTime (
                  DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day
                  );
          outTime.Hour   = (time % 1000000) / 10000;
          outTime.Minute = (time % 10000)   / 100;
          outTime.second = (time % 100)     / 1;
          return outTime;
      }
      Jessica P.NinjaTrader Customer Service

      Comment


        #4
        error says indexer date time hour minute second cannot be assigned - read only

        Comment


          #5
          Originally posted by brucelevy View Post
          error says indexer date time hour minute second cannot be assigned - read only
          We can't see your screen.

          Simple answer: your code has an error, aka, you're doing something wrong.

          Want more help? Throw us a bone and post something more helpful.

          Please show us your code and/or post a screenshot of your error.
          Last edited by bltdavid; 09-23-2016, 08:46 AM.

          Comment


            #6
            Originally posted by NinjaTrader_JessicaP View Post
            Code:
            public static DateTime FromTime(int time)
            {
                DateTime outTime = new DateTime (
                        DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day
                        );
                outTime.Hour   = (time % 1000000) / 10000;
                outTime.Minute = (time % 10000)   / 100;
                outTime.second = (time % 100)     / 1;
                return outTime;
            }
            That lowercase 's' should probably be uppercase.

            Comment


              #7
              I apologize, there was a bug in the sample I provided. This should work.

              Code:
              public static DateTime FromTime(int time)
              {
                 return new DateTime (
                          DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,
                          (time % 1000000) / 10000, (time % 10000) / 100, (time % 100) / 1
                          );
              }
              I am going to leave the earlier, incorrect code up as it makes the meaning of the last 3 arguments clear.
              Jessica P.NinjaTrader Customer Service

              Comment


                #8
                I was able to use the following to get rectangle start and end times. Thanks.

                //set the start and end time variables for the current day
                DateTime startTime = new DateTime(Time[0].Year, Time[0].Month, Time[0].Day, 6, 45, 00);
                DateTime endTime = new DateTime(Time[0].Year, Time[0].Month, Time[0].Day, 6, 55, 00);

                //get the bar number for those time variables
                int startBar = GetBar(startTime);
                int endBar = GetBar(endTime);

                if (Time[0] >= startTime && Time[0] <= endTime)
                {
                DrawRectangle("tag", true, startBar, Low[LowestBar(Low, 10)], endBar, High[HighestBar(High, 10)], Color.Cyan, Color.Cyan, 1);
                }

                Comment

                Latest Posts

                Collapse

                Topics Statistics Last Post
                Started by bomanpbm, Today, 09:27 PM
                0 responses
                1 view
                0 likes
                Last Post bomanpbm  
                Started by tgn55, Today, 08:47 AM
                0 responses
                8 views
                0 likes
                Last Post tgn55
                by tgn55
                 
                Started by ballboy11, 05-04-2019, 10:26 AM
                6 responses
                58 views
                0 likes
                Last Post Kermit
                by Kermit
                 
                Started by mrlucky1x, Yesterday, 10:01 PM
                0 responses
                15 views
                0 likes
                Last Post mrlucky1x  
                Started by roger556, Yesterday, 09:22 PM
                0 responses
                8 views
                0 likes
                Last Post roger556  
                Working...
                X