我如何学习创建图形对象?MQL4。

 

我想学习如何创建图形对象 已经很久了,但许多行的代码让人困惑。

如果在专家顾问中调用指标的一切都很清楚:调用句柄,将数值复制到缓冲区,那么简而言之,构建对象的算法是什么?

我将从最简单的一个开始--画趋势线。下面是一个例子https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_trend

只是,如何让这条线出现而不消失?

我想知道如何读取EA中这一行的当前位置,对象中没有缓冲区?

我想在MQL4中创建它,它与MQL5有什么不同吗?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
OBJ_TREND 为例,将其作为单独的函数复制到你的EA中。你说的 "让它不消失 "是什么意思?获取对象的时间和价格值:ObjectGetTimeByValueObjectGetValueByTime
OBJ_TREND - Документация на MQL4
  • docs.mql4.com
OBJ_TREND - Документация на MQL4
 
barabashkakvn:
OBJ_TREND 为例,将其作为单独的函数复制到你的EA中。你说的 "让它不消失 "是什么意思?获取对象的时间和价格值:ObjectGetTimeByValueObjectGetValueByTime
当我调用该脚本时,该行在视觉上出现(动作发生在视频中),然后又消失了。
 
forexman77:
当我调用该脚本时,这条线路在视觉上出现(如视频中),然后又消失了。
改变脚本代码。移除删除的对象。你在使用帮助中的整个脚本吗?
 
barabashkakvn:
改变脚本代码。移除删除的对象。你在使用帮助中的整个脚本吗?
是的,我现在就去试试。
 
barabashkakvn:
改变脚本代码。移除删除的对象。你在使用帮助中的整个脚本吗?
这条线依然存在。没关系的。我现在就去看看。
 
如果你对代码有任何疑问,请张贴代码并询问。
 
barabashkakvn:
如果你对代码有任何疑问,请张贴代码并询问。

目前还不清楚这些数字的含义,以及它们的设定是什么?如果随着时间的推移,我可以认为它是条形指数,那么如何理解InpPrice,它是int类型的

input int             InpDate1=35;         // Дата 1-ой точки в %
input int             InpPrice1=60;        // Цена 1-ой точки в %
input int             InpDate2=65;         // Дата 2-ой точки в %
input int             InpPrice2=40;        // Цена 2-ой точки в %
 
forexman77:

不清楚这些数字意味着什么,它们问的是什么?

解读 上面有一个小的解释

#property description "Скрипт строит графический объект \"Трендовая линия\"."
#property description "Координаты точек привязки задаются в процентах от"
#property description "размеров окна графика."

而从这里开始,这个数据将被用来确定绘图点。

void OnStart()
  {
.
.
.
//--- определим точки для рисования линии
   int d1=InpDate1*(bars-1)/100;
   int d2=InpDate2*(bars-1)/100;
   int p1=InpPrice1*(accuracy-1)/100;
   int p2=InpPrice2*(accuracy-1)/100;
//--- создадим линию тренда
.
.
.
 
barabashkakvn:

解读 上面有一个小的解释

并从这里开始,这个数据将被用来定义绘图点。

"OBJ_TREND"的例子中,我认为有很多不必要的数据。由于我对这一地区不是很了解,我恐怕会迷失很长一段时间。

据我所知,代码是搜索出来的,但我已经知道了两个点,条形索引(我的算法)。

唯一的问题是如何用一条线连接这两点,并将其向右延续到某一事件。

 
forexman77:

这个例子中似乎有很多冗余。由于我对这个地区不是很了解,我恐怕要在这里徘徊很长时间。

据我所知,代码是在搜索,但我已经知道了两个点,索引条(我的算法)。

唯一的问题是如何用一条线连接这两点,并将其向右延续到某一事件。

如果你知道你的点的时间和日期,你只需要调用bool TrendCreate()