Berechnen Sie den Abstand zwischen zwei parallelen Linien einschließlich ! - Seite 3

 
Sergey Kolemanov:

Du zählst den Abstand zwischen High und Low, und er hat Linien

Du sprichst von parallelen Linien. Und bei parallelen Linien ist der vertikale Abstand auf jedem Balken immer gleich groß. In seinem Beispiel ist der Abstand zwischen den Linien(High[10]-Low[10]). Sie brauchen dafür überhaupt keine Zeit zu berechnen.

Sie können es überprüfen und es wird immer das gleiche Ergebnis haben.

Eine allgemeinere Formel finden Sie hier

Da der Nenner jedoch selbst im Minutenchart sehr nahe bei 1 liegt, kann er vereinfacht werden zu:

double R=(Price2-Price1);

Es wurde bereits von @Renat Akhtyamov in diesem Beitrag gesagt

 
Sergey Kolemanov:
Je nach Winkel ist die Entfernung unterschiedlich... Worin besteht also der Unterschied zwischen den beiden Linien? )
 
Itum:
Je nach Winkel ist die Entfernung unterschiedlich... Worin besteht also der Unterschied zwischen den beiden Linien? )
Je nach Winkel ändern sich alle Abstände um ein Vielfaches, da es sich um ein rechtwinkliges Dreieck handelt. Es ist also eigentlich egal, wo man misst. Messen Sie die Ihrer Meinung nach einfachste Entfernung.
 
Renat Akhtyamov:
Je nach Winkel ändern sich alle Abstände um ein Vielfaches, da es sich um ein rechtwinkliges Dreieck handelt. Es spielt also überhaupt keine Rolle, wo Sie messen. Messen Sie die Ihrer Meinung nach einfachste Entfernung.

Bitte zeigen Sie mir ein Beispiel.

 ObjectCreate("Line1",OBJ_TRENDBYANGLE,0,Time[0],High[10],Time[10],Low[10]);
   ObjectSetInteger(0,"Line1",OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,"Line1",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Line1",OBJPROP_WIDTH,2);
   
   ObjectCreate("Line2",OBJ_TRENDBYANGLE,0,Time[10],High[100],Time[20],Low[10]);
   ObjectSetInteger(0,"Line2",OBJPROP_STYLE,STYLE_SOLID);
   ObjectSetInteger(0,"Line2",OBJPROP_COLOR,Lime);
   ObjectSetInteger(0,"Line2",OBJPROP_WIDTH,2);

   ObjectSetDouble(0,"Line1",OBJPROP_ANGLE,260); // 85 
   ObjectSetDouble(0,"Line2",OBJPROP_ANGLE,260); // 85
/*   
   ObjectCreate("Value",OBJ_TREND,0,Time[0],High[10],Time[10],High[10]);
   ObjectSetInteger(0,"Value",OBJPROP_RAY,false);
   ObjectSetInteger(0,"Value",OBJPROP_COLOR,Gold);
   ObjectSetInteger(0,"Value",OBJPROP_WIDTH,3);
   */

// Предлагали сделать так и не помогает !

   double V = (ObjectGetDouble(0, "Line1", OBJPROP_PRICE, 0)-ObjectGetDouble(0, "Line2", OBJPROP_PRICE, 0))/((datetime)ObjectGetInteger(0, "Line1", OBJPROP_TIME, 0)-(datetime)ObjectGetInteger(0, "Line2", OBJPROP_TIME, 0));
   double R = (ObjectGetDouble(0, "Line1", OBJPROP_PRICE, 0)-ObjectGetDouble(0, "Line2", OBJPROP_PRICE, 0))/sqrt(1+V*V) ; 
   
   
   Comment("Разница: R=",R, " | ");

// Предлагали сделать и так и также не помогает !
   
   datetime t1 = (datetime)ObjectGetInteger(0, "Line1", OBJPROP_TIME, 0);
   datetime t2 = (datetime)ObjectGetInteger(0, "Line2", OBJPROP_TIME, 0);
   double p1 = 0;
   double p2 = 0;
   
   if(t1 > t2)
   {
      p1 = ObjectGetValueByTime(0, "Line1", t2);
      p2 = ObjectGetDouble(0, "Line2", OBJPROP_PRICE, 0);
   }
   if(t1 < t2)
   {
      p1 = ObjectGetDouble(0, "Line1", OBJPROP_PRICE, 0);
      p2 = ObjectGetValueByTime(0, "Line2", t1);;
   }
   if(t1 == t2)
   {
      p1 = ObjectGetDouble(0, "Line1", OBJPROP_PRICE, 0);
      p2 = ObjectGetDouble(0, "Line2", OBJPROP_PRICE, 0);
   }
   
   Comment("Разница: " + DoubleToString(MathAbs(p1 - p2) / _Point, 0));
 
Itum:
Je nach Winkel und wird der Abstand ändern ... Was ist der Unterschied zwischen den Zeilen? )

Sie müssen den Abstand zwischen zwei parallelen Linien finden, und es ist egal, wie groß er ist, solange sich der Wert nicht ändert, wenn Sie den Maßstab ändern?

Habe ich es richtig verstanden? Wenn ja, geben Sie mir bitte den Code, der den Wert überprüft und bei Ihnen nicht funktioniert, denn bei mir funktioniert er und der Wert ändert sich nicht.

 
Itum:

Bitte zeigen Sie mir ein Beispiel.

double Расстояние=ObjectGetValueByShift("Line1",0)-ObjectGetValueByShift("Line2",0);
Das heißt, wenn Zeile1 oben und Zeile2 unten ist
 
Renat Akhtyamov:
Das heißt, wenn Zeile1 oben und Zeile2 unten ist
ja
 
Itum:
ja

Versuchen Sie es mit meiner Zeile anstelle der darunter stehenden, wenn Ihnen das passt

// Предлагали сделать так и не помогает !

Dies ist die Länge der blauen Linie:


 

Renat Akhtyamov:

double Расстояние=ObjectGetValueByShift("Line1",0)-ObjectGetValueByShift("Line2",0);

Hmmm... Wissen Sie, das hilft auch nicht) ... Sie haben versucht, meinen Code von oben auszuführen... Das ist nicht das Ergebnis, das Sie wollen.

Vielleicht erkläre ich es nicht richtig.

 
Renat Akhtyamov:

Versuchen Sie meine Zeile anstelle der darunter stehenden, wenn es Ihnen passt

Dies ist die Länge der blauen Linie:


Das ist richtig ... Ich brauche die Länge. die rote Linie. Stellen Sie sich vor, diese beiden parallelen Linien wären vertikal, was würde die blaue Linie zeigen? (in verschiedenen Winkeln, unterschiedliche Länge)

Wenn du zwei parallele Linien im Abstand von 10 cm auf ein weißes Blatt zeichnest(Abb.7), kannst du dieses Blatt in jedem beliebigen Winkel verdrehen, und es bleiben immer noch die gleichen 10 cm(Abb.6).


Grund der Beschwerde: