How to draw a line from current day till end of tomorrow?

To add comments, please log in or register
leong
26
leong  

Hi guys... I don't really know how to do this. Not even sure if it is possible...

Problem description:
1)Draw a line from the start of today (day 0) till the end of tomorrow.

-The issue I have is that there is no way to draw a line into the future (or I just don't know how). I don't want to use a horizontal line or a rayed-trendline. I simply want to use a trendline that will draw from the current day up till the next day. Things like iTime only returns a value up to bar 0 which is the current bar.

Example:

ObjectCreate("line",OBJ_TREND,0,iTime(NULL,PERIOD_D1,0),1305.00,iTime(NULL,PERIOD_D1,tomorrow's_time),1305.00); 
ObjectSet("line",OBJPROP_RAY, False); 


2)When a new day is here (day_0 ), remove lines from yesterday (day 1).

-I don't want to have a million lines so to keep things clean, I want to delete the previous day's lines. The reason I'm asking is because I want to know if it is efficient remove the drawings and redraw them every time the script is executed (which I set to execute every hour). Or is there a more efficient way to do this.

My current code:

datetime oldbartime=Time[0]; 

int start() 

if (oldbartime != Time[0]) 
{
ObjectDelete("line"); 
ObjectCreate("line",OBJ_TREND,0,iTime(NULL,PERIOD_D1,0),1305.00,iTime(NULL,PERIOD_D1,tomorrow's_time),1305.00); 
ObjectSet("line",OBJPROP_RAY, False); 
}
qjol
3196
qjol  
thelws:


1)Draw a line from the start of today (day 0) till the end of tomorrow.

datetime tomorrows_time = iTime(NULL,PERIOD_D1,0) + 86399;
ObjectCreate("line",OBJ_TREND,0,iTime(NULL,PERIOD_D1,0),1305.00,tomorrows_time,1305.00);
thelws:
-I don't want to have a million lines so to keep things clean, I want to delete the previous day's lines. The reason I'm asking is because I want to know if it is efficient remove the drawings and redraw them every time the script is executed (which I set to execute every hour). Or is there a more efficient way to do this.

you can use

ObjectSet("line",OBJPROP_PRICE1, iTime(NULL,PERIOD_D1,0));    
ObjectSet("line",OBJPROP_PRICE2, tomorrows_time);    
leong
26
leong  

works great. thx qjol.


should add that it should be 172800 instead of 86399. :)

qjol
3196
qjol  
thelws:

should add that it should be 172800 instead of 86399. :)


-1 = 172799

I thought you need the end of the day

leong
26
leong  

Er sorry for bumping. Something came up...

I had an issue when it came to weekends. I'm not sure if this is working as intended, but the mt4 client counted the weekends as part of the calculation.

Problem description:

-How to draw a line to connect from Friday to Monday. If I drew a line till "iTime(NULL,PERIOD_D1,1) + 172799", the lines appear truncated because the weekends are longer than 172799 secs.



qjol
3196
qjol  

make an if statement

   datetime tomorrows_time = iTime(NULL,PERIOD_D1,0) + 172799;
   if (TimeDayOfWeek(iTime(NULL,PERIOD_D1,0)) == 5)
   tomorrows_time = iTime(NULL,PERIOD_D1,0) + 259199;

problem solved ;-)

leong
26
leong  

ahh. goodstuff :)

thx again qjol

Thierry Ramaniraka
542
Thierry Ramaniraka  
qjol:

you can use

Merci, parfait.

William Roeder
20214
William Roeder  
qjol: make an if statement problem solved ;-)

Solved until you encounter a market holiday

To add comments, please log in or register