任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 26

 
atztek:

指标缓冲区,因为在未来,该解决方案不仅用于直线,而且还用于移动平均线和其他线。


也许你可以具体说明你想最终得到什么
 
你好!如果你能告诉我如何测量趋势的斜率并显示斜率的值
 
我想测量中间的斜率,并显示像-35度的斜率
 
igor2013:
我想测量中间的斜率,并显示像-35度的斜率

图中-35°是什么?如果规模发生变化怎么办?
 
Vinin:

也许你应该说明你想要的结果是什么

在上面的例子中,使用指标缓冲 器沿历史的整个长度画线。
它应该只限于最后20小节。换句话说,当一个新的条形图出现时,线条会向右延伸,向左缩短,因此其长度总是等于20条。
 

我不完全明白我在代码中写了什么,但我一直在屏幕上看到相同的数字,尽管当我把光标移到那一行时,我看到度数在变化。

ObjectDelete("TremdLineAverage")。
ObjectCreate("TremdLineAverage",OBJ_TRENDBYANGLE,0,0,0,0,0); // ------------------------- 趋势线2坐标。
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- 宽度。
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Color
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1个时间坐标。
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1个时间坐标。
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 价格坐标
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 价格坐标
ObjectSet ("TremdLineAverage", OBJPROP_RAY, 15); Ugol=15;

 
向上是15,向下是-15。
 
ObjectDelete("TremdLineAverage")。
ObjectCreate("TremdLineAverage",OBJ_TRENDBYANGLE,0,0,0,0,0); // ------------------------- 趋势线2坐标。
ObjectSet ("TremdLineAverage", OBJPROP_WIDTH, HirinaUgolAverage); // ---------------------------------------- 宽度。
ObjectSet ("TremdLineAverage", OBJPROP_COLOR, colUgolAverage); // --------------------------------------------- Color
ObjectSet ("TremdLineAverage", OBJPROP_TIME1 ,Time[1]); // ------------------------------- 1个时间坐标。
ObjectSet ("TremdLineAverage", OBJPROP_TIME2 ,Time[0]); // ------------------------------- 1个时间坐标。
ObjectSet ("TremdLineAverage", OBJPROP_PRICE1,UgolAverage1_1); // ----------------------------- 1 价格坐标
ObjectSet ("TremdLineAverage", OBJPROP_PRICE2,UgolAverage1_0); // ----------------------------- 2 价格坐标
ObjectSet("TremdLineAverage", OBJPROP_ANGLE, 15); Ugol=15;
 
谢谢你。
 
igor2013:
谢谢你的反馈。

一个现成的功能,试试吧。

SetTLineByAngle()函数。

此函数通过当前图表中的斜率角度设置OBJ_TRENDBYANGLE 对象。
cl - TRENDBYANGLE对象的颜色。必要的参数。
nm - 对象名称。当传递默认值--""时,当前条形图的开放时间被用作名称。
t1 - 对象设置时间的第一个坐标。默认值 - 0 - 第十条的开放时间。
p1 - 设定价格的对象的第一个坐标。默认值 - 0 - 第十条的最小值。
t2 - 对象设置时间的第二个坐标。默认值--0--当前酒吧的开放时间。
p2 - 设定价格的对象的第二个坐标。这个参数是一种开关。它的非零值使这个函数等同于SetTLine(),也就是说,将使用时间/价格坐标对绘制一条趋势线,而趋势线的斜率角度值将被忽略。默认值 - 0 - 按斜率角度构建趋势线。
an - 斜坡角度,单位是度。默认值 - 0 - 水平线。
ry - BOW属性的标志。 默认值是False。
st - 线条风格。有效值是STYLE_SOLID(默认)、STYLE_DASH、STYLE_DOT、STYLE_DASHDOT。
wd - 线条宽度。默认值为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);
}