如果你所说的 MAFast[], MASlow[] ... 都是外部变量,这样写也无妨,传入参数不需要做额外处理。
子程序(函数)开头写的应该不对,那个"double &closes[i]"会编译出错吧。我估计本意应该是 "double close_at_i;",也就是传入某个柱的close吧。
它和函数内局部变量的"double closes[]"也会混淆,另外有些局部变量以及函数参数flag还没有使用,不确定是写多了还是逻辑不完整。
如果子程序是:
double findSL(string flag, double close_at_i) { ... }
主程序就是
...
double sl = findSL(some_flag, closes[i]);
...
如果 MAFast[], MASlow[] ... 这些不是外部变量,那就通过函数参数传入了。
比如子程序是:
double findSL(string flag, double & MAFast[], double & MASLow[], double & Opens[], double & Closes[], double close_at_i) { ... }
主程序就是
...
double sl = findSL(some_flag, MAFast[], MASlow[], Opens[], Closes[], closes[i]);
...
具体应该怎么写还是要看你的逻辑和变量命名之类的。
Jian Chen:
如果你所说的 MAFast[], MASlow[] ... 都是外部变量,这样写也无妨,传入参数不需要做额外处理。
子程序(函数)开头写的应该不对,那个"double &closes[i]"会编译出错吧。我估计本意应该是 "double close_at_i;",也就是传入某个柱的close吧。
它和函数内局部变量的"double closes[]"也会混淆,另外有些局部变量以及函数参数flag还没有使用,不确定是写多了还是逻辑不完整。
如果子程序是:
主程序就是
如果 MAFast[], MASlow[] ... 这些不是外部变量,那就通过函数参数传入了。
比如子程序是:
主程序就是
具体应该怎么写还是要看你的逻辑和变量命名之类的。
感谢版主。我先尝试一下。
有关closes[],我在主程序里面已经取了200个数值,我是想把这200个都带到子程序,通过子程序做一次分析/计算的。
大家好,我是MQL5的小白。
我打算把一些MAFast[],MASlow[],Open[],Closes[]这些数据传递到子程序里面去,想知道主程序的那个语句应该怎么写呢,还有子程序开头的地方是否有错误呢?谢谢了。
若大家有时间,也教教我这个子程序是否有优化的地方。