mql5 input变量无法更新

 

各位好!

       本人最近最学习mql5编写EA代码,在测试过程中发现一个奇怪的问题:在利用input定义的外部参数,当在代码中更新input变量的值后,在进行调试或者回撤,发现代码中拿到input变量的值还是原来的值。

如下:

input string    开单参数            ="===========开单设置参数===========";
input double    MAX_LOTS            =10;        // 开单最大手数 
input double    SL_MAX_PERCENT      =5;         // 止损仓位比 
input int          SL_POINT               =500;       // 止损点数
input int          TP_POINT              =2000;      // 止盈点数
input int          Order_Magic          =6666;      // magic


       上面代码
SL_MAX_PERCENTSL_POINT,原来的值分别是4400,现在改成5500,但是测试过程中还是读到4400

       

       而且修改之后,我都吧ex5执行文件删掉,重新编译再测试,还是读到原来的值,请问各位这是什么问题?

 
SenMing:

各位好!

       本人最近最学习mql5编写EA代码,在测试过程中发现一个奇怪的问题:在利用input定义的外部参数,当在代码中更新input变量的值后,在进行调试或者回撤,发现代码中拿到input变量的值还是原来的值。

如下:


       上面代码
SL_MAX_PERCENTSL_POINT,原来的值分别是4400,现在改成5500,但是测试过程中还是读到4400

       

       而且修改之后,我都吧ex5执行文件删掉,重新编译再测试,还是读到原来的值,请问各位这是什么问题?

Mql5 的input变量不允许修改,新版编译都是报错的


重新定义

input double InpSL_MAX_PERCENT = 5;// 止损仓位比 

double SL_MAX_PERCENT  = InpSL_MAX_PERCENT;
 
Xiaoyu Huang #:

Mql5 的input变量不允许修改,新版编译都是报错的


重新定义

我没有在代码中修改input变量,我是在input变量初始化的时候换了一个值,如:

input double InpSL_MAX_PERCENT = 5;     // 止损仓位比 
// 把这里的5改成了10,即初始化值由5变成10, 得到:
input double InpSL_MAX_PERCENT = 10; 

这样也不行吗?

 
重新编译再测试,还是读到原来的值—— 单看这个,估计你的问题是测试模式下,当初原来的4和400仍在,修改后还是原来的4和400之类,这是系统保存了上一次你的测试参数,修改后你若要重新测试,得点下“重置”按钮
 
Lin Luo #:
重新编译再测试,还是读到原来的值—— 单看这个,估计你的问题是测试模式下,当初原来的4和400仍在,修改后还是原来的4和400之类,这是系统保存了上一次你的测试参数,修改后你若要重新测试,得点下“重置”按钮

对,就是这个原因,右键“默认”就可以了,或是将EA改一个名字,加上一个版本号以区分原来的也可以

 
系统会保留上次测试的参数,编译一下或者换个EA运行一次再取消然后再切换回来都行
原因: