// ЗАДАЕМ ДВЕ ТОЧКИ ПРИВЯЗКИ ДЛЯ ГЛАВНОЙ ЛИНИИ: ТОЧКА1(ВРЕМЯ,ЦЕНА) и ТОЧКА2(ВРЕМЯ,ЦЕНА)// ЭТА ЛИНИИ ГЛАВНАЯdatetime Line1_Врем0=Time[0], Line1_Врем1=Time[10];
double Line1_Цена0=High[10], Line1_Цена1=Low[10];
ObjectCreate("Line1",OBJ_TRENDBYANGLE,0,Line1_Врем0,Line1_Цена0,Line1_Врем1,Line1_Цена1);
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[15],Low[15],0,0);
ObjectSetInteger(0,"Line2",OBJPROP_STYLE,STYLE_SOLID);
ObjectSetInteger(0,"Line2",OBJPROP_COLOR,Lime);
ObjectSetInteger(0,"Line2",OBJPROP_WIDTH,2);
// ПРИСВАИВАЕМ ЛИНИИ Line2 ТАКОЙ ЖЕ САМЫЙ УГОЛ КАК В ЛИНИИ Line1 ЧТО БЫ ЛИНИИ БЫЛИ ПАРАЛЛЕЛЬНЫЕ ObjectSetDouble(0,"Line2",OBJPROP_ANGLE,ObjectGetDouble(0,"Line1",OBJPROP_ANGLE));
// РИСУЕМ ПЕРПЕНДИКУЛЯРНУЮ ЛИНИЮ К Line1 и Line2ObjectCreate("Value",OBJ_TRENDBYANGLE,0,Time[0],Low[15],0,0);
ObjectSetInteger(0,"Value",OBJPROP_RAY,false);
ObjectSetInteger(0,"Value",OBJPROP_COLOR,Gold);
ObjectSetInteger(0,"Value",OBJPROP_WIDTH,3);
ObjectSetDouble(0,"Value",OBJPROP_ANGLE,90+ObjectGetDouble(0,"Line1",OBJPROP_ANGLE));
// ЗАДАЧА: ПОЛУЧИТЬ РАЗМЕР ЖЕЛТОЙ ЛИНИИ МЕЖДУ Line1 и Line2. ОПТИМАЛЬНЫМ И УНИВЕРСАЛЬНЫМ ПАРАМЕТРОМ РАЗМЕРА НАВЕРНОЕ БУДУТ - ПИКСЕЛИ.
任何你喜欢的方式。
正如你所看到的,这并不复杂。你只需要想一想。
有了这样一个详细的答案,我想TC就可以自己写代码了。
这里的许多人已经忘记了学校的问题,因为他们在学校无法掌握其意义。
输出是。
接下来,通过ObjectGetValueByShift("Line1",a++)和ObjectGetValueByShift("Value",a++)以及ObjectGetValueByShift("Line2",a++)搜索交叉点
我读得对吗?为了解决这个问题,你必须。
1.画一条垂直于给定平行线的直线
2. 确定垂直线与给定直线的交点
3. 计算交点之间的距离
在图片上很清楚。
(不同的线和它们之间的距离)
.............................................................................
.............................................................................
.............................................................................
.............................................................................
没有说服力。
没有说服力。
打开你的教科书,你会被说服的
是
不幸的是,我不是一个数学家(蓝角=90-线角
将角度转换为弧度
红色对角线=绿色斜边*正弦(蓝色角度)。
我们已经通过垂直交叉两条线找到了斜边。
如果直线的角度是90或0,那么就以不同的方式考虑距离,也就是通过水平或垂直地穿越平行线。
在谷歌上搜索一下如何?
蓝角=90-线角
将角度转换为弧度
红色对角线=绿色斜边*正弦(蓝色角度)。
我们已经通过垂直交叉两条线找到了斜边。
如果直线的角度是90或0,那么就用另一种方式计算距离,即通过水平或垂直方向的平行线交叉。
嗯...
由于某些原因,它不能工作
这似乎很简单......。但它并没有得到你想要的结果
是的,一切都很简单,除了你的任务是无法解决的....。))
首先,忘记ObjectGetDouble(0,"Line1",OBJPROP_ANGLE) 函数。 它将永远返回0,因为它不能应用于趋势线。特别是对于 "角度 "趋势线,它不依赖于图表比例,但也不依赖于柱状价格,这是需要的。也就是说,当改变比例时,它的角度不会改变,但线条本身会远离条形。
但这还不是最大的问题...整个问题是,你想找到2条平行趋势线之间的垂直线的大小,试着在图表上画出这样的垂直线...然后改变图形的比例......垂直变得不垂直......。))))所以问题恰恰在于你认为的垂直(取决于比例和你的看法)和数学上的垂直。
价格比例图上的垂直线是一种视觉错觉。
利用几何学,这个问题以其纯粹的形式被一次性解决了...但是计算的数学结果永远不会与图表上看到的一致......。而你需要的正是匹配,所以这个问题是无法解决的。只需简化你的要求,不要寻找垂直线,只需寻找同一时间点的2条线的距离...
我无话可说。
我知道所有的字母,但我读不懂这个词
来吧,来吧,不要放弃,研究MQL,这只是一个时间问题。