//+------------------------------------------------------------------+ switch()//?????????????? почему в switch не передаёте параметр {case3:// Неверные параметры:
Work=false;return(0);}
// пытаемся менять значение TradeIsBusy с 0 на 1// если нам это удаётся, выходим из ф-ции, возвращая 1 - "успешное завершение"if(GlobalVariableSetOnCondition("TradeIsBusy",1.0,0.0))return(1);else// если нет, возможны 2 причины: TradeIsBusy = 1 (тогда надо ждать), либо // возникла ошибка (это мы и проверим){
_GetLastError =GetLastError();// если это всё таки ошибка, выводим информацию и пробуем ещё разif(_GetLastError !=0){Print("TradeIsBusy()-GlobalVariableSetOnCondition(\" TradeIsBusy\",1.0,0.0 )-Error #",
_GetLastError );continue;}}
GetLastError();//Сбрасываем состояние // пытаемся менять значение TradeIsBusy с 0 на 1// если нам это удаётся, выходим из ф-ции, возвращая 1 - "успешное завершение"if(GlobalVariableSetOnCondition("TradeIsBusy",1.0,0.0))return(1);else// если нет, возможны 2 причины: TradeIsBusy = 1 (тогда надо ждать), либо // возникла ошибка (это мы и проверим){
_GetLastError =GetLastError();// если это всё таки ошибка, выводим информацию и пробуем ещё разif(_GetLastError !=0){Print("TradeIsBusy()-GlobalVariableSetOnCondition(\" TradeIsBusy\",1.0,0.0 )-Error #",
_GetLastError );continue;}}
这就是为什么你会故意犯错。
而且是故意的,这很有趣...我很想看看这个错误,但我找不到。
我把一些函数作为测试脚本运行,看看是否有编译错误,在终端检查哪些函数是否工作。我今天采取了窗口中条形的预计算功能。
很自然地,*没有足够的条数*的信息就出来了,但是在一个新的勾选中,我知道这个信息会无限期地再次出现。
现在我添加了一个变量,并写了一个if 语句,同时在未来的错误处理程序Bloc_Error 块中,我放入了一个操作符开关 ,并得出了结果。
问题是我在switch 语句中做错了什么,为什么没有显示*专家不工作*的信息,以及为什么EA真的停止工作?????。大家好!
我不明白在EA运行时出现错误的原因。我正在一个终端上同时测试一个EA的11个货币对(模拟账户)。我在每小时开始时检查进入条件,即11个EA同时开始工作。IsTradeBusy()函数(从这里https://www.mql5.com/ru/articles/1412) 已被用于不干扰对方。最近,当专家顾问试图改变TradeIsBusy 全局变量的值而不是开仓时,一直在报告错误。这里是代码的一部分。
错误代码。
#4002 - "数组索引 - 超出范围"
#4105 - "没有选择订单"。
我不明白使用GlobalVariableSetOnCondition 命令时,什么条件可能导致这些错误?
Terminal Broco Trader 4.0 build 225.
终端会出现这样的故障吗?
>>谢谢你,我会的。
大家好!
我不明白在EA运行时出现错误的原因。我正在一个终端上同时测试一个EA的11个货币对(模拟账户)。我在每小时开始时检查进入条件,即11个EA同时开始工作。IsTradeBusy()函数(从这里https://www.mql5.com/ru/articles/1412) 已被用于不干扰对方。最近,当专家顾问试图改变TradeIsBusy 全局变量的值而不是开仓时,一直在报告错误。这里是代码的一部分。
错误代码。
#4002 - "数组索引 - 超出范围"
#4105 - "没有选择订单"。
我不明白使用GlobalVariableSetOnCondition 命令时,什么条件可能导致这些错误?
Terminal Broco Trader 4.0 build 225.
终端可能会出现这样的故障?
我不能对这段代码说什么。作为一个提示。重置函数开始时的最后一个错误的状态。它可能发生在其他地方。
如何在文本中进行换行?例如,我在一个图形上显示一些东西,在OBJ_LABEL 中,我想把文字写成几行。
如何在文本中进行换行?例如,我在图表上显示一些东西,在OBJ_LABEL中,我想把文字写成几行。
在多个标签中显示。
如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?
还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在代码中添加一些东西来正确完成它?
如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?
提醒,或者说。评论 -- 这很好。
还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在我的代码中添加一些额外的字。
用 while(!IsStopped() 替换 while(true)
如果行数是动态变化的呢?而且它可能相当大。也许可以用其他东西来代替标签?
不,除非评论不合适。写一个f函数,在那里将生成输出,并通过它写出你需要的东西。
还有一个问题:假设我有一个脚本,在一个无限的循环中做一些事情,延迟时间为一秒钟。当我试图删除它时--我选择了 "删除脚本",但它并没有从图表中删除,而是毫无延迟地开始冲撞。当我再按一次 "删除 "时,它就会删除该脚本。怎么了?也许我应该在我的代码中添加一些额外的字。
应该是这样的。