Download MetaTrader 5

Angled Trendlines

To add comments, please log in or register
Daniel
18
Daniel  

Hi Eveyone

I would like to know if anyone knows how to code an angled trendline.

I am wanting to draw an angled trendline from point a to point b then point c etc,

After I have coded the angled trendlines then I would like to store the angles from each trendline and put them in an array for later us.

If anyone has any pointers that would be great

thanks

dd

Ray
2649
Ray  

Certainly.

Angle and slope are synonymous.

Draw a line with a slope of 0.618 for example:

int start(){
 string name = "a";
 double theSlope= 0.618;
 int startBar = 39;
 int runBars = 7; 
 double price = Close[startBar];
 double angle;
 if(ObjectFind(name) != -1) ObjectDelete(name);
 ObjectCreate(name, OBJ_TREND, 0, Time[startBar], price, Time[startBar-runBars], price + (runBars * theSlope * Point));
 angle = MathArctan(theSlope)/ 3.1415965 * 180;
 Comment("The angle of line "+name+" is "+DoubleToStr(angle, 2)+" degrees");
 return(0);
}

By rearranging things a bit, you can find the angle of an arbitrary line, or draw a line at an arbitrary angle.

The angle will be "visually" correct only on a squared chart (in chart properties scale fix 1:1).

Daniel
18
Daniel  

Hi PHY

Thanks for your input, had me a lot

dd

Iggy
478
Iggy  
There is an object in MT called trendline by angle, if it is any use to you.
Ray
2649
Ray  

Trendline by angle is usable on a squared chart only. It is a "visual" angle tied to the monitor, not the chart.

A 45 degree Trendline by Angle is a visual 45 degree line on your display. zoom in zoom out or squeeze the
vertical price scale, the line stays put at a 45 degree visual angle.

Therefore, it has no relation to time or price, unless you happen to know the ratio of pips to time you have on
the chart.

The only "known" setup is 1:1, and that is useless for higher timeframes.

For trading purposes, an angle needs to be defined in terms of price and time, thus sticking it to the chart. In
that scenario, a 45 degree line is a slope of 1 unit of price change in 1 uint of time change, with units defined
by your imagination or application.

Louis Stoltz
636
Louis Stoltz  
phy:

Certainly.

Angle and slope are synonymous.

Draw a line with a slope of 0.618 for example:

int start(){
 string name = "a";
 double theSlope= 0.618;
 int startBar = 39;
 int runBars = 7; 
 double price = Close[startBar];
 double angle;
 if(ObjectFind(name) != -1) ObjectDelete(name);
 ObjectCreate(name, OBJ_TREND, 0, Time[startBar], price, Time[startBar-runBars], price + (runBars * theSlope * Point));
 angle = MathArctan(theSlope)/ 3.1415965 * 180;
 Comment("The angle of line "+name+" is "+DoubleToStr(angle, 2)+" degrees");
 return(0);
}

By rearranging things a bit, you can find the angle of an arbitrary line, or draw a line at an arbitrary angle.

The angle will be "visually" correct only on a squared chart (in chart properties scale fix 1:1).


Hi

Howdo you get the slope of the line. It says here 0.618 but how do you get that slope off OBJ_TREND?
Ray
2649
Ray  
Louis Stoltz
636
Louis Stoltz  
I was hoping for a quicker solution. Does this mean I have to draw a x and y line on the middle of my trendline and then figure out the xy of it?
Ray
2649
Ray  

The geometry examples use X and Y often for the coordinate system.

Q. What is the coordinate system on a chart?

A. Time and Price -- X and Y

Ponder some more...

Louis Stoltz
636
Louis Stoltz  
I did try this before:
double theSlope = (price2 - price1)/(Time[0]-Time[n]);
Comment(theSlope);
Not sure howto put it. Im getting 0 output.
Ray
2649
Ray  

Use bar count, not clock time

12
To add comments, please log in or register