Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

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:
      [FONT=Courier New]public static DateTime FromTime(int time)
      {
      [/FONT][FONT=Courier New]    DateTime outTime = new DateTime (
                  DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day
                  );
          outTime.Hour   = [/FONT][FONT=Courier New][FONT=Courier New](time % 1000000) / 10000;
      [/FONT]    outTime.Minute = [/FONT][FONT=Courier New][FONT=Courier New](time % 10000)   / 100;
      [/FONT]    outTime.second = [/FONT][FONT=Courier New][FONT=Courier New](time % 100)     / 1;
          return outTime;
      [/FONT]}[/FONT]
      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:
            [FONT=Courier New]public static DateTime FromTime(int time)
            {
            [/FONT][FONT=Courier New]    DateTime outTime = new DateTime (
                        DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day
                        );
                outTime.Hour   = [/FONT][FONT=Courier New][FONT=Courier New](time % 1000000) / 10000;
            [/FONT]    outTime.Minute = [/FONT][FONT=Courier New][FONT=Courier New](time % 10000)   / 100;
            [/FONT]    outTime.[COLOR=Red][I][B]s[/B][/I][/COLOR]econd = [/FONT][FONT=Courier New][FONT=Courier New](time % 100)     / 1;
                return outTime;
            [/FONT]}[/FONT]
            That lowercase 's' should probably be uppercase.

            Comment


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

              Code:
              [FONT=Courier New]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
                          );
              }[/FONT]
              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 cre8able, Today, 03:20 PM
                0 responses
                5 views
                0 likes
                Last Post cre8able  
                Started by Fran888, 02-16-2024, 10:48 AM
                3 responses
                47 views
                0 likes
                Last Post Sam2515
                by Sam2515
                 
                Started by martin70, 03-24-2023, 04:58 AM
                15 responses
                114 views
                0 likes
                Last Post NinjaTrader_Jesse  
                Started by The_Sec, Today, 02:29 PM
                1 response
                7 views
                0 likes
                Last Post NinjaTrader_Jesse  
                Started by jeronymite, 04-12-2024, 04:26 PM
                2 responses
                31 views
                0 likes
                Last Post NinjaTrader_BrandonH  
                Working...
                X