错误、漏洞、问题 - 页 1520

 
Slawa:

目前还没有其他办法。

我们已经讨论过引入一个新的退出命令,可以立即终止程序,但这里还有一些未解决的问题

这真是太糟糕了。是的,像C++中的exit()会很好。现在,将嵌套函数的响应拉到调用者的函数中是相当有问题的。而且没有通用的图书馆。
 
Alexey Kozitsyn:
这真是太糟糕了。是的,像C++中的exit()会很好。现在,将嵌套函数的响应拉到调用函数中是相当有问题的。而且没有通用的图书馆。
另一种方法是创建一个函数,分别删除程序的所有对象,当满足从终端删除程序的条件时,调用该函数,然后调用ExpertRemove(),在这种情况下,一切应该更快地完成...虽然不确定 :)
 
coderex:
另外,你可以创建一个单独的函数来删除程序的所有对象,并在满足从终端删除程序的条件时调用它,然后再调用ExpertRemove(),在这种情况下,它的终止速度应该更快虽然不确定 :)

正如我以前写过的,而且以前在本网站的一篇文章中也建议过,在一个深度嵌套的函数中出现错误时,你可以在数组外 调用除以0或退出。但这并不美好。

是的,而且不仅仅是在OOP中(就我的理解,你是指它)。很简单--如果一个错误不能被修复,程序将被终止。

 
Slawa:
停止,但不是立即停止
我不明白,ExpertRemove() 在指标中使用是否正确?
 
Alexey Kozitsyn:
我不明白,在指标中使用ExpertRemove()工作是否正确?

我认为有一个指标的功能,或者说它已经没有意义了。

ChartIndicatorDelete();
 
Alexey Kozitsyn:
我不明白,在指标中使用ExpertRemove()工作是否正确?

不,ExpertRemove() 在指标中是重叠的。

"停止,但不是立即停止 "是关于ExpertRemove的一般说法。该功能不会中断程序操作。

 
Slawa:

不,ExpertRemove()在指标中是重叠的。

"停止,但不是立即停止 "是关于ExpertRemove的一般说法。这个功能不会中断程序的运行。

一般来说,是否有计划解决exit()的问题?还是用户通过拐杖解决?)
 
Slawa:
请举例说明。给出指标的源代码以说明问题
将该文本插入在编辑器中创建的默认指标的OnCalculate中。把它放在任何图表上。你将在图表窗口的左上角看到该指标的操作。从指标列表中选择 "删除 "后,它不会停止工作,你会在左上角 看到它。即使在窗口关闭后,它也会继续。打开一个新窗口后,将在新窗口中继续进行。这个窗口的符号不一定与你一开始的那个相同 :)
只有当终端关闭时,指示器的工作才会停止。而且我不知道它是否停止--我只是不得不通过任务管理器手动删除终端来重新启动它......

同时,IsStopped函数的帮助说,如果有一个终止mql-program的命令,程序操作在3秒后停止。

   int i=0;
   while(true){
      Comment(i++);
      Sleep(100);
   }

而如果while(true)被替换为 while(!IsStopped()),那么当从图表中删除时,指标会成功完成。

 

内部编译器错误的一个有趣原因(指标中使用的函数)。

void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ )
{
int ierr, wrtint;
// ----
如果 ( interv_ > 0 ) // 工作模式
{
如果 ( MQLInfoInteger ( MQL_TESTER ) == 0 ){ wrtint = interv_; }//没有任何意义
否则{ wrtint = interv_ * tmult_; }//无所谓
//
if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // 如果这一行被注释掉,错误就会消失。
{
// 一些代码来保存数据 ...没有意义 - 已测试
//
ltime_= ctime_; // 在一般情况下也不重要。
}// if ( ctime_ - ltime_ ) >= ( wrtint * 60 )
}// if ( interv_ > 0 )
// ----
返回。

}// void SaveData

( 对不起,我没有故意使用SRC按钮,因为我不能用它来选择文本的必要部分 )

治疗方法很明显,但你应该同意--这是一个相当有趣的故障。:)))

 

有一家经纪公司的营业额为100万,佣金为16x2元。 他们显然在服务器设置中设置了16元的佣金。现在在他们的服务器上进行测试时,每笔交易都要扣除16x2的佣金,无论其手数多少,也就是说,只有10手才能进行充分的测试。

是他们缺乏设置服务器的技能,还是MT5的真正限制?我到底可以建议他们在服务器上做什么,以便在测试器中正确处理佣金?