Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д. Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
Функция использует синхронный вызов – это означает, что функция дожидается выполнения всех команд, которые были помещены в очередь графика перед её вызовом, и поэтому данная функция может быть затратной по времени. Нужно иметь это обстоятельство в виду...
谢谢你的建议,我知道这些功能。
你知道为什么这么多人,包括你在内,回复那些对mql了如指掌的人吗?而他们却无视有识之士的建议?如果你没有,请查看这个提示。
关于交易、自动交易系统和策略测试的论坛。
初学者对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论
Artyom Trishkin, 2020.06.29 00:03
你好。首先在OnChartEvent()中监控图形的状态https://www.mql5.com/ru/docs/event_handlers/onchartevent
有几个事件是你需要的:
CHARTEVENT_OBJECT_CREATE 创建图形对象
CHARTEVENT_OBJECT_CHANGE 通过属性对话框改变图形对象的属性
CHARTEVENT_OBJECT_DELETE 删除图形对象
https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
在添加/修改/删除图形对象时,记录OnChartEvent()处理器的所有参数并查看其值。这将为你提供去哪里的方向。
谢谢你的提示,我知道这些功能。
但是,如果我们不预先知道一个对象的名称,我们怎么能用它们来自动找到图表上的一个对象并读取其参数呢?
当用鼠标在图表上画一个对象时,系统会给出它的名字。
当然,从对象的属性表中手动输入对象的所有必要数据并不困难,但为什么要实现自动化?
但如何以编程方式给EA一个对象的名称,然后可以使用你提到的所有功能,我仍然不清楚......
如上所述,与图表事件一起工作。
你好。首先在OnChartEvent()中跟踪图表的状态
https://www.mql5.com/ru/docs/event_handlers/onchartevent
有几个你需要的事件: CHARTEVENT_OBJECT_CREATE 创建一个图形对象 CHARTEVENT_OBJECT_CHANGE 通过属性对话框改变一个图形对象的属性 CHARTEVENT_OBJECT_DELETE 删除一个图形对象
https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents
当你添加/修改/删除图形对象时,记录OnChartEvent()的所有参数并查看其值。这将为你提供去哪里的方向。
非常感谢你,我已经采纳了你的建议。
你可以找到并记录给定类型的对象,其坐标如下。
你可以将任何数据保存到一个文件中。并在专家顾问中制作一个加载器,将添加适当的对象,然后将文件中的数据加载到其中。但你至少要为你的具体任务勾勒出一个源代码,并在这里发布。
如上所述,与图表事件一起工作。
迈克尔,你和@Artyom Trishkin的 帮助非常有帮助!
现在我们需要弄清楚如何找到价格图表和找到的对象之间的交叉点,在这种情况下,趋势线。
该算法如下:
1.使用趋势线的读数坐标,我们计算出所选TF每1条的趋势增加系数。
2.计算趋势线在当前柱子上的价格坐标,并监测在选定的TF期间该点在图表上的交叉事实。
3.如果有,我们就着手处理这一事件,例如,开立一个订单。如果不是,则对下一个小节重复这一程序。
但也许MT4(5),由于这个系统的特殊性,有一个更简单的解决方案?
你知道为什么这么多人,包括你,对那些了解mql的人像斧头一样的回应吗?而且他们无视那些知道的人的建议。在你的情况下,它是这个建议。
亲爱的阿列克谢,你对我对MQL的了解完全正确。然而,你说我不注意内部人士的建议是错误的,因为我第一次接触的是@Artyom Trishkin,我相信他是杰出的MQL专业人士之一,你对他很了解。
他的建议使我立即明白了如何解决我的问题,并为我的进一步行动开了眼界。而@Mihail Matkovskij 让我的生活变得更加轻松!
迈克尔,你和@Artyom Trishkin的 帮助非常有帮助!
现在我们需要弄清楚如何找到价格图表和找到的对象之间的交叉点,在这种情况下,趋势线。
该算法如下:
1.使用趋势线的读数坐标,我们计算出所选TF每1条的趋势增加系数。
2.计算趋势线在当前柱子上的价格坐标,并监测在选定的TF期间该点在图表上的交叉事实。
3.如果有,我们就着手处理这一事件,例如,开立一个订单。如果不是,则对下一个小节重复这一程序。
但也许MT4(5),由于这个系统的特殊性,有一个更简单的解决方案?
正如我上面所说的,勾画一个源代码,以便有东西可以开始。此外,你已经有一些关于如何在图表上获得对象数据的知识。没有人愿意从头开始为你做一切。通过这种方式,可以补充专家工作的不足......
迈克尔,你和@Artyom Trishkin的 帮助非常有帮助!
现在我们需要弄清楚如何找到价格图表和找到的对象之间的交叉点,在这种情况下,趋势线。
该算法如下:
1.使用趋势线的读数坐标,我们计算出所选TF每1条的趋势增加系数。
2.计算趋势线在当前柱子上的价格坐标,并监测在选定的TF期间该点在图表上的交叉事实。
3.如果有,我们就着手处理这一事件,例如,开立一个订单。如果不是,则对下一个小节重复这一程序。
也许在MT4(5)中的解决方案,由于该系统的特殊功能,要简单得多?
不太清楚你想找到什么。你想通过某个条形图上的价格找到穿越趋势线的点?为此,有一些函数用于获取条形图上的线的值。但我会使用直线方程。
关于交易、自动交易系统和交易策略测试的论坛
初学者的常见问题 MQL5 MT5 MetaTrader 5
Artyom Trishkin, 2020.05.02 12:27
使用直线方程。
指定左边的点的条数和价格,指定右边的点的条数和价格(在这些点上画一条虚拟线),并指定你要寻找的条数。
该函数将返回你所寻找的酒吧的价格。
.....有一些函数用于获取条形图上的线值。但我会使用直线方程。
Artyom,请在这里提供更多细节。
要么是我以前不是很注意,要么是文件被调整了......我不知道。
但我一直认为ObjectGetDouble返回的是某一栏的行价(我指的是准确的价格)。在这里,我决定做一个小脚本来检查它,我看到了什么?
1.在参数中没有条形号码,应该在其上读取数值。
2.财产标识符。
OBJPROP_PRICE
价格协调
修改器=锚点的数量
它只是一个锚点!
是的,基本上,如果我在代码中画出这条线,我就已经有了这些点!为什么我需要了解他们?事实上,这有什么意义呢?
我怎样才能在其他地方获得这条线路的价格价值?
事实证明,这是
榰_modifier
[in] 指定属性的修改器。对于第一个选项,修改器的默认值是0。大多数属性不需要修改器。表示斐波那契工具 和安德鲁斯的Pitchfork图形对象中的一个水平数。级别的编号从零开始。
这难道一点意义都没有吗?它是在寻找任何风扇线的连接点吗?那是胡说八道。请原谅。
Artyom,你能在这里说得更详细一点吗?
要么是我以前不是很注意,要么是文件被调整了......。我不知道。
但我一直认为ObjectGetDouble返回的是某一特定条形上的行价(我是说价格)。在这里,我决定做一个小脚本来检查它,我看到了什么?
1.在参数中没有条形号码,应该在其上读取数值。
2.财产标识符。
OBJPROP_PRICE
价格协调
修改器=锚点的数量
它只是一个锚点!
是的,基本上,如果我在代码中画出这条线,我就已经有了这些点!为什么我需要了解他们?事实上,这有什么意义呢?
我怎样才能在其他地方获得这条线路的价格价值?
事实证明,这是
榰_modifier
[in] 指定属性的修改器。对于第一个选项,修改器的默认值是0。大多数属性不需要修改器。表示斐波那契工具 和安德鲁斯的Pitchfork图形对象中的一个水平数。级别的编号从零开始。
这难道一点意义都没有吗?它是在寻找任何风扇线的连接点吗?那是胡说八道。请原谅我。
我没怎么接触过这种物体。根据指定的条形时间,这个函数将返回什么趋势?我没有时间去检查它。即使是在一个小剧本中完成...
通过时间获取价值(ObjectGetValueByTime)。