В данной статье рассматриваются аспекты проектирования и разработки системы пользовательских событий графика в среде MQL5. Предлагается пример подхода для классификации событий. Приводится программный код событийного класса и класса-обработчика пользовательских событий.
顺便问一下,谁知道如何使当你点击按钮时,如果LKM被按下,它将被挤压,如果LKM被释放,它将被释放?
和什么会按下按钮来点击和释放,什么会释放按钮来点击和释放,胡说八道)
ZS: 当然,你可以在释放LKM后立即改变一个属性,但这是这样做的吗?)
顺便问一下,谁知道如何使当你点击按钮时,如果LKM被按下,它将被挤压,如果LKM被释放,它将被释放?
和什么会按下按钮来点击和释放,什么会释放按钮来点击和释放,胡说八道)
ZS: 当然,你可以在释放LKM后立即改变一个属性, 但这是这样做的吗?)
是的,如果你想用自己的方式来做,你必须自己控制对象的状态。)
一切都会好起来的,但当LKM按下时,按钮没有被按下,而只有在LKM释放时才被按下,胡说八道 )
ZS:想按下按钮吗? 让它去吧 )
但如果你不这样做,考虑到OnChartEvent在测试器中不起作用,那么一般来说,在测试器中没有办法用副本的副本不能工作。
一切都会好起来的,但当LKM按下时,按钮没有被按下,而只有在LKM释放时才被按下,胡说八道 )
ZS:想按下按钮吗? 让它去吧 )
但如果你不这样做,鉴于OnChartEvent在测试器中不起作用,那么一般来说,在测试器中没有办法用lops。
有了测试器,很多东西还不能工作。剩下的就是写在servicedesk中,然后跟踪更新。)
而在测试器之外,你必须为控件编写自己的处理程序,使其按照你想要的方式工作。
一切都会好起来的,但当LKM按下时,按钮没有被按下,而只有在LKM释放时才被按下,胡说八道 )
ZS:想按下按钮吗? 让它去吧 )
但如果你不这样做,鉴于OnChartEvent在测试器中不起作用,那么在测试器中没有办法用副本不起作用。
OnChartEvent() 处理典型事件和用户事件。就自定义事件而言,测试器中的这个处理程序是有效的!!。见我的文章《 MQL5中的处方--处理自定义图表事件》。那里有一个CustomEventProcessor 机器人。 它在测试器中进行交易。
测试员的麻烦 - 它的图形...我早些时候给服务台写过关于图形的信,到目前为止只有 承诺...
OnChartEvent() 处理典型的图表事件和自定义事件。就自定义事件而言,测试器中的这个处理程序是有效的!!。见我的文章《 MQL5中的处方--处理自定义图表事件》。那里有一个CustomEventProcessor 机器人。 它在测试器中进行交易。
测试器的问题是图形...我以前曾给服务台写过关于图形的信,到目前为止只有 承诺......。
情况是这样的:我在图表上创建了一个OBJ_TEXT对象。然后我从图表中手动删除这个OBJ_TEXT。然后我试图在图表上找到被删除的对象,得到一个错误(这是符合逻辑的:对象被删除了,所以找不到)。然后我尝试用ObjectMove来移动被删除的OBJ_TEXT对象的锚点,但没有得到任何错误。
问题:当试图移动一个被删除的OBJ_TEXT的锚点时,ObjectMove应该给出一个错误吗?
请知道的人提供建议:当试图在可视化显示器(测试器)中显示一个指标时,出现了4014错误,尽管在终端窗口运行相同的代码时没有出现这样的错误。
代码如下。
Indic_Handle[Indic_Total-1]=iMA(NULL,0,MA_Period,MA_Shift,MODE_LWMA,PRICE_CLOSE);
if(Indic_Handle[Indic_Total-1]==INVALID_HANDLE)
{Error_Message;return(false);}
if(F_If_Indic_Exist(Indic_Handle[Indic_Total-1])==false) // Проверяем есть ли уже индикатор с таким хендлом. Если нет - добавлем новый индикатор
if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)
{Error_Message;return(false);}
Error_Message "命令是由一个宏定义的。
#define Error_Message_Exp Alert(__FILE__+": "+__FUNCTION__+": Error at line "+(string)__LINE__+". Last Error code: "+(string)GetLastError())
当在终端执行时:代码如常工作,没有错误。该指标被绘制在图表上,"Indic_Handle[Indic_Total-1]"变量被分配了一个句柄值。
但当在测试器和/或可视化器中执行时。一个错误被打印到日志中。
2014.12.15 21:16:10 Core 1 2014.01.01 00:00:00 Alert: GA_Incl.mqh: F_Offspr_Init: Error at line 149. Last Error code: 4014
("149 "行- 是 "148 "行下的"{Error_Message;return(false);}":"if(ChartIndicatorAdd(0,0,Indic_Handle[Indic_Total-1])==false)"。
这个错误显然是在执行 "ChartIndicatorAdd "函数时发生的,该函数在测试者环境和终端环境中的执行方式不同。
错误代码的解码并不清楚。
不允许使用的功能
4014
系统函数不允许被调用
在论坛上,我发现另一个用户提到了在同样的情况下发生的这个错误,但他的问题仍然没有得到解答。(https://www.mql5.com/ru/forum/1111/page763#comment_208678)
我发现,如果我不顾错误继续在测试器中运行程序,所需的指标将被应用到图表中。但指标句柄与Indic_Handle[Indic_Total-1] 变量中的值不对应。(但指标本身是在调用ChartIndicatorAdd命令后,在一些ticks之后创建的)。
请帮助我
谢谢你。
对,它不打印。但它是有效的。尝试用图形追踪事件。