新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 625

 
Igor Makanu:

用这样的代码做实验,阅读EA日志中的信息(切换TF,输入变量,重新加载终端而不关闭EA...)。

第二个变体是在全局范围内描述一个带有静态修改器 的变量

首先,这是mql4。

第二,我需要在专家顾问的任何变量变化时运行OnInit()。

这就是我所要求的帮助!

是的,重启终端和改变文本有帮助,但当你改变变量时,OnInit()不工作,这就是为什么我得到所有问题!!!!。

 
Игорь:

首先,它是mql4.其次,我需要运行OnInit()来改变EA的变量。

其次,我需要它在专家顾问的变量发生变化时运行OnInit()。

这就是我所要求的帮助!

重启终端和改变文本有帮助,但当你改变变量时,OnInit()不工作,这就是为什么我得到所有问题!!!!。

我有以下解决方案。OnInit()在EA的第一次运行时复制变量。在MT4的Calc...()或其他什么,它检查变量是否与它们的副本相同。如果变量不一致,那么我们就强行运行OnInit(),如果有必要,我们会在这之前运行其他东西来更新EA。最后,返回。

 
Игорь:

首先,它是mql4.其次,我需要运行OnInit()来改变EA的变量。

其次,我需要它在专家顾问的变量发生变化时运行OnInit()。

这就是我所要求的帮助!

是的,重启终端和改变保险箱有帮助,但当你改变变量时,OnInit()不工作,这就是为什么我得到所有问题!!!!。

你看了我给你的代码吗? 那是MT4,一切都按你的要求进行。

阅读文件https://docs.mql4.com/ru/runtime/event_fire

我已经运行了我建议的代码,改变了两次外部变量var,这里是专家顾问日志。

0       15:36:39.736    Compiling 'test'
0       15:37:37.573    Expert test EURUSD,H1: loaded successfully
0       15:37:39.101    test EURUSD,H1 inputs: var1=1; 
0       15:37:39.130    test EURUSD,H1: Вызов OnInit(), var1=1
0       15:37:39.130    test EURUSD,H1: initialized
0       15:37:51.341    test EURUSD,H1: uninit reason 5
0       15:37:51.343    test EURUSD,H1: Вызов OnInit(), var1=34567
0       15:37:51.343    test EURUSD,H1: initialized
0       15:37:51.366    test EURUSD,H1 inputs: var1=34567; 
0       15:38:04.124    test EURUSD,H1: uninit reason 5
0       15:38:04.126    test EURUSD,H1: Вызов OnInit(), var1=-9999
0       15:38:04.126    test EURUSD,H1: initialized
0       15:38:04.149    test EURUSD,H1 inputs: var1=-9999; 

这里是 "错误所在 "的代码。

你可以从MQL程序的任何地方调用任何函数。 初始化专家顾问的功能是一个函数,你可以强制调用OnInit(),但通常你不需要它。

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu:

代码 中存在很多错误,在

最好对价格进行规范化处理,这样他们就会工作,然后服务器会发出 "错误的价格 "的错误,最好对StopLoss_SELL 进行规范化处理。

而最有可能的是,你需要检查StopLoss是否等于零,而比较实数是否相等是不可取的,你应该尝试比较实数是否>或<。

如果有很多错误,你是否介意把它们都指出来?

 
Igor Makanu:

你看了我给你的代码吗?它是MT4,一切都按你的要求进行。

然后阅读文件https://docs.mql4.com/ru/runtime/event_fire

我已经运行了我建议的代码,我改变了两次外部变量var,这里是专家顾问日志。

这里是 "错误所在 "的代码。

你可以从MQL程序的任何地方调用任何函数,初始化专家顾问的函数也是一个函数。 你可以强制调用OnInit(),但通常你不需要它 - 终端自己调用OnInit()

非常感谢你的错误代码,我发现!!!!!!!!!。祝好运 !!!!并感谢您的帮助 !!!!!!

 
请告知。如何使标准MA指标不是显示整个历史,而是显示指定数量的蜡烛?我想问你一个问题。
 
prom18:
请告知。如何使标准MA指标不是显示整个历史,而是显示指定数量的蜡烛?谢谢你。
写下你自己的MA指标,并设置历史的深度!
 

我如何手动设置报价来测试EA

一定有一个解决方案,但我找不到。

 
Galim_V:

暂停后用F12有什么问题?

我的意思是具体设定价格走势

 
Andrey Sokolov:

我如何手动设置报价来测试EA

当然有一个解决方案,但我找不到。

编写你自己的蜱虫,并把它们放在策略测试器中