the_intersections_of_two_lines

Author: 2021, Nabi Karamalizadeh, JahanWeb co.
0 Views
0 Downloads
0 Favorites
the_intersections_of_two_lines
//+------------------------------------------------------------------+
//|                               the_intersections_of_two_lines.mq4 |
//|                           2021, Nabi Karamalizadeh, JahanWeb co. |
//|                                          http://www.jahanweb.com |
//+------------------------------------------------------------------+
#property copyright "2021, Nabi Karamalizadeh, JahanWeb co."
#property link      "@JahanChart http://www.jahanweb.com"
#property description "The intersections of two lines"
#property version   "1.00"
#property strict

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   // Linear Equation:
   //
   // y = m x + b
   //
   //             y1 - y2
   // y - y1 = ( --------- ) ( x - x1 )
   //             x1 - x2
   //
   // y = mA (x - xA1) + yA1
   // y = mB (x - xB1) + yB1
   //
   
   // Lines object name
   string lineNameA = "LineA";
   string lineNameB = "LineB";
   
   // Line 1, Point 1
   double xA1 = ObjectGet(lineNameA, OBJPROP_TIME1);
   double yA1 = ObjectGet(lineNameA, OBJPROP_PRICE1);

   // Line 1, Point 2
   double xA2 = ObjectGet(lineNameA, OBJPROP_TIME2);
   double yA2 = ObjectGet(lineNameA, OBJPROP_PRICE2);

   // Line 2, Point 1
   double xB1 = ObjectGet(lineNameB, OBJPROP_TIME1);
   double yB1 = ObjectGet(lineNameB, OBJPROP_PRICE1);

   // Line 2, Point 2
   double xB2 = ObjectGet(lineNameB, OBJPROP_TIME2);
   double yB2 = ObjectGet(lineNameB, OBJPROP_PRICE2);

   // Line slope
   double mA = (yA1 - yA2) / (xA1 - xA2);
   double mB = (yB1 - yB2) / (xB1 - xB2);

   // Calculate intersection points
   double x = (-mB*xB1 + yB1 + mA*xA1 - yA1) / (mA - mB);
   double y = mA * (x - xA1) + yA1;

   // Show results
   Print("Intersections Points: X=", (datetime)x, " , Y=", (double)y);

  }
//+------------------------------------------------------------------+

Comments