//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. 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);
}
指标缓冲区,因为在未来,该解决方案不仅用于直线,而且还用于移动平均线和其他线。
也许你可以具体说明你想最终得到什么
我想测量中间的斜率,并显示像-35度的斜率
图中-35°是什么?如果规模发生变化怎么办?
也许你应该说明你想要的结果是什么
在上面的例子中,使用指标缓冲 器沿历史的整个长度画线。
它应该只限于最后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;
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;
谢谢你的反馈。
一个现成的功能,试试吧。
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。