Download MetaTrader 5
To add comments, please log in or register
Are you a good trader? Become a signals provider and make even more money!
sunshineh
1076
sunshineh 2016.03.22 09:05 
I am trying to calculate the actual value of my trendline that way:
x1 = (datetime)ObjectGet(AlertElement, OBJPROP_TIME1); 
y1 = (double)ObjectGet(AlertElement, OBJPROP_PRICE1);
x2 = (datetime)ObjectGet(AlertElement, OBJPROP_TIME2); 
y2 = (double)ObjectGet(AlertElement, OBJPROP_PRICE2); 

stg1 = (y2-y1)/(x2-x1);
yab1 = y1 - (x1*stg1); 
ActualLineValue = (Time[0]*stg1+yab1) ; 

Sometimes this is working fine, but in other times the value pretty far away. Do you have a solution?
Keith Watford
Moderator
9541
Keith Watford 2016.03.22 09:16  

Use iBarShift for the time points, then you can calculate the rise/fall for x bars

Then you can use this value to calculate the rise/fall over y bars

whroeder1
14233
whroeder1 2016.03.22 13:30  
sunshineh: I am trying to calculate the actual value of my trendline that way:
ObjectGetValueByShift - Object Functions - MQL4 Reference
ObjectGetValueByTime - Object Functions - MQL4 Reference
sunshineh
1076
sunshineh 2016.03.22 21:55  

@WHRoeder, lot's of thanks!

Where these functions available also in former times?

 -That's Great!! 

Carl Schreiber
6392
Carl Schreiber 2016.03.22 22:11  
sunshineh:
I am trying to calculate the actual value of my trendline that way:
x1 = (datetime)ObjectGet(AlertElement, OBJPROP_TIME1); 
y1 = (double)ObjectGet(AlertElement, OBJPROP_PRICE1);
x2 = (datetime)ObjectGet(AlertElement, OBJPROP_TIME2); 
y2 = (double)ObjectGet(AlertElement, OBJPROP_PRICE2); 

stg1 = (y2-y1)/(x2-x1);
yab1 = y1 - (x1*stg1); 
ActualLineValue = (Time[0]*stg1+yab1) ; 

Sometimes this is working fine, but in other times the value pretty far away. Do you have a solution?

Maybe the reason for your problem is datetime? It gives you seconds but on the chart you see some kind or enumeration of bars.

E.g. the two points of a straight line were [0,100] and [5,200]. x (=0 & 5) were bar numbers so stg1 = (200-100)/(5-0) = 20.

But in case this were h1-bars you get for (x2-x1) = 5 (bars) * 60 (min) * 60 (sec) = 18'000 and stg1 = 0,00555555555555555555555555555556.

You can try  tdiff = (x2-x1)/(Period()*60) => 18'000/(60*60) = 5?

/
To add comments, please log in or register