Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 26

 
atztek:

Indikatorpuffer, da die Lösung in Zukunft nicht nur für gerade Linien, sondern auch für gleitende Durchschnitte und andere Arten von Linien verwendet werden soll.


Vielleicht können Sie angeben, was Sie am Ende haben möchten
 
Hallo! Wenn Sie mir zeigen können, wie ich die Steigung des Trends messen und den Wert der Steigung anzeigen kann
 
Ich möchte die Neigung der Mitte messen und etwa -35 Grad anzeigen.
 
igor2013:
Ich möchte die Neigung der Mitte messen und etwa -35 Grad anzeigen.

Was ist -35° in der Grafik? Was ist, wenn sich der Maßstab ändert?
 
Vinin:

Vielleicht sollten Sie angeben, was Sie am Ende haben wollen

Im obigen Beispiel wird die Linie mit Hilfe des Indikatorpuffers über die gesamte Länge des Verlaufs gezeichnet.
Sie sollte nur auf die letzten 20 Takte beschränkt sein. D.h., wenn ein neuer Balken erscheint, wird die Linie nach rechts verlängert und nach links verkürzt, so dass ihre Länge immer 20 Balken beträgt.
 

Ich verstehe nicht ganz, was ich in den Code schreibe, aber ich sehe immer dieselbe Zahl auf dem Bildschirm, obwohl sich die Gradzahl ändert, wenn ich den Cursor auf die Zeile bewege.

ObjectDelete("TremdLineAverage");
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0,0); // ------------------------- Koordinaten der Trendlinie 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- Breite
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Farbe
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1 Zeitkoordinate
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1 Zeitkoordinate
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 Preiskoordinate
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 Preiskoordinate
ObjectSet ("TremdLineAverage", OBJPROP_RAY, 15); Ugol=15;

 
Oben ist 15 und unten ist -15.
 
ObjectDelete("TremdLineAverage");
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0,0); // ------------------------- Koordinaten der Trendlinie 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- Breite
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Farbe
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1 Zeitkoordinate
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1 Zeitkoordinate
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 Preiskoordinate
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 Preiskoordinate
ObjectSet ("TremdLineAverage", OBJPROP_ANGLE, 15); Ugol=15;
 
Ich danke Ihnen.
 
igor2013:
Wir danken Ihnen für Ihr Feedback.

Eine vorgefertigte Funktion, probieren Sie sie aus.

Die Funktion SetTLineByAngle().

Diese Funktion setzt das Objekt OBJ_TRENDBYANGLE um den Neigungswinkel im aktuellen Diagramm.
cl - Farbe des TRENDBYANGLE-Objekts. Erforderlicher Parameter.
nm - Objektname. Wenn der Standardwert - "" - übergeben wird, wird die Eröffnungszeit des aktuellen Balkens als Name verwendet.
t1 - Erste Koordinate der Objektsetzungszeit. Standardwert - 0 - Öffnungszeit des zehnten Taktes.
p1 - Erste Koordinate des Objekts, das den Preis festlegt. Standardwert - 0 - Minimum des zehnten Balkens.
t2 - Zweite Koordinate der Objektsetzungszeit. Standardwert - 0 - Öffnungszeit des aktuellen Taktes.
p2 - Zweite Koordinate des Objekts, das den Preis festlegt. Dieser Parameter ist eine Art Schalter. Sein Wert ungleich Null setzt diese Funktion mit SetTLine() gleich, d. h. es wird eine Trendlinie unter Verwendung des Koordinatenpaars Zeit/Kurs gezeichnet, während der Wert des Neigungswinkels der Trendlinie ignoriert wird. Standardwert - 0 - Trendlinienkonstruktion nach Steigungswinkel.
an - Neigungswinkel in Grad. Standardwert - 0 - Horizontale Linie.
ry - Kennzeichen der BOW-Eigenschaft; der Standardwert ist False.
st - Linienstil. Gültige Werte sind STYLE_SOLID (Standard), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT.
wd - Linienbreite. Der Standardwert ist 1.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.10.2007                                                     |
//|  Описание : Установка объекта OBJ_TRENDBYANGLE трендовая линия по углу     |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    cl - цвет линии                                                         |
//|    nm - наименование               (  ""  - время открытия текущего бара)  |
//|    t1 - время открытия бара        (  0   - Time[10]                       |
//|    p1 - ценовой уровень            (  0   - Low[10])                       |
//|    t2 - время открытия бара        (  0   - время открытия текущего бара)  |
//|    p2 - ценовой уровень            (  0   - по углу)                       |
//|    an - угол                       (  0   - по умолчанию)                  |
//|    ry - луч                        (False - не луч)                        |
//|    st - стиль линии                (  0   - простая линия)                 |
//|    wd - ширина линии               (  1   - по умолчанию)                  |
//+----------------------------------------------------------------------------+
void SetTLineByAngle(color cl, string nm="",
              datetime t1=0, double p1=0, datetime t2=0, double p2=0,
              double an=0, bool ry=False, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[10];
  if (p1<=0) p1=Low[10];
  if (t2<=0) t2=Time[0];
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_TRENDBYANGLE, 0, 0,0);
  ObjectSet(nm, OBJPROP_TIME1 , t1);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_TIME2 , t2);
  if (p2>0) ObjectSet(nm, OBJPROP_PRICE2, p2);
  else ObjectSet(nm, OBJPROP_ANGLE, an);
  ObjectSet(nm, OBJPROP_COLOR, cl);
  ObjectSet(nm, OBJPROP_RAY  , ry);
  ObjectSet(nm, OBJPROP_STYLE, st);
  ObjectSet(nm, OBJPROP_WIDTH, wd);
}
Grund der Beschwerde: