Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 26

 
atztek:

Les tampons indicateurs, car à l'avenir la solution ne sera pas seulement utilisée pour les lignes droites, mais aussi pour les moyennes mobiles et autres lignes.


Vous pouvez peut-être spécifier ce que vous voulez obtenir.
 
Bonjour ! Si vous pouvez me montrer comment mesurer la pente de la tendance et afficher la valeur de la pente
 
Je veux mesurer la pente du milieu et afficher comme -35 degrés
 
igor2013:
Je veux mesurer la pente du milieu et afficher comme -35 degrés

Que représente -35° sur le graphique ? Et si l'échelle change ?
 
Vinin:

Vous devriez peut-être préciser ce que vous voulez obtenir.

Dans l'exemple ci-dessus, la ligne est dessinée en utilisant le tampon indicateur sur toute la longueur de l'historique.
Il devrait être limité aux 20 dernières mesures. C'est-à-dire que lorsqu'une nouvelle barre apparaît, la ligne est allongée vers la droite et raccourcie vers la gauche, de sorte que sa longueur soit toujours égale à 20 barres.
 

Je ne comprends pas bien ce que j'écris dans le code, mais je continue à voir le même chiffre à l'écran, alors que lorsque je déplace le curseur sur la ligne, je vois les degrés changer.

ObjectDelete("TremdLineAverage") ;
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0) ; // ------------------------- coordonnées de la ligne de tendance 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage) ; // ---------------------------------------- Largeur
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage) ; // --------------------------------------------- Couleur
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]) ; // ------------------------------- 1 coordonnée de temps
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]) ; // ------------------------------- 1 coordonnée temporelle
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1) ; // ----------------------------- 1 coordonnée de prix
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0) ; // ----------------------------- 2 coordonnées de prix
ObjectSet ("TremdLineAverage", OBJPROP_RAY, 15) ; Ugol=15 ;

 
Le haut est 15 et le bas est -15.
 
ObjectDelete("TremdLineAverage") ;
ObjectCreate("TremdLineAverage", OBJ_TRENDBYANGLE,0,0,0,0,0,0) ; // ------------------------- coordonnées de la ligne de tendance 2
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage) ; // ---------------------------------------- Largeur
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage) ; // --------------------------------------------- Couleur
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]) ; // ------------------------------- 1 coordonnée de temps
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]) ; // ------------------------------- 1 coordonnée temporelle
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1) ; // ----------------------------- 1 coordonnée de prix
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0) ; // ----------------------------- 2 coordonnées de prix
ObjectSet ("TremdLineAverage", OBJPROP_ANGLE, 15) ; Ugol=15 ;
 
Merci.
 
igor2013:
Merci pour vos commentaires.

Une fonction toute prête, essayez-la.

La fonction SetTLineByAngle().

Cette fonction définit l'objet OBJ_TRENDBYANGLE par l'angle de pente dans le graphique courant.
cl - Couleur de l'objet TRENDBYANGLE. Paramètre requis.
nm - Nom de l'objet. Lorsque la valeur par défaut est passée - "", l'heure d'ouverture de la barre actuelle est utilisée comme nom.
t1 - Première coordonnée du temps de réglage de l'objet. Valeur par défaut - 0 - temps d'ouverture de la dixième mesure.
p1 - Première coordonnée de l'objet fixant le prix. Valeur par défaut - 0 - minimum de la dixième barre.
t2 - Deuxième coordonnée du temps de réglage de l'objet. Valeur par défaut - 0 - temps d'ouverture de la barre actuelle.
p2 - Deuxième coordonnée du prix de l'objet. Ce paramètre est une sorte de commutateur. Sa valeur non nulle assimile cette fonction à SetTLine(), c'est-à-dire qu'une ligne de tendance sera dessinée en utilisant le couple de coordonnées temps/prix, tandis que la valeur de l'angle de pente de la ligne de tendance sera ignorée. Valeur par défaut - 0 - construction de la ligne de tendance par angle de pente.
an - Angle de pente en degrés. Valeur par défaut - 0 - Ligne horizontale.
ry - Indicateur de la propriété BOW. La valeur par défaut est False.
st - Style de ligne. Les valeurs valides sont STYLE_SOLID (par défaut), STYLE_DASH, STYLE_DOT, STYLE_DASHDOT.
wd - Largeur de la ligne. La valeur par défaut est 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);
}
Raison: