Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组MQL4中初始化、读取和写入变量名存储_Mql4 - Fatal编程技术网

如何在数组MQL4中初始化、读取和写入变量名存储

如何在数组MQL4中初始化、读取和写入变量名存储,mql4,Mql4,我还是不擅长编码,请给我建议如何初始化、读取、写入数组MQL4中的变量名存储。 目标是,我想尝试在单个窗口中创建EA多对,并在整个循环过程中保持ALL-STATUS,如下面的代码所示: 如何简化: 如果(对[cmp]=“欧元/美元”) { VAR1=STR01欧元兑美元; VAR2=国际欧元兑美元; VAR3=日期01欧元/美元; VAR4=欧元兑美元; ..... ..... VARN=xxx01欧元/美元; } 如果(symbolx==“欧元/美元”) { STR01EUROUSD=VA

我还是不擅长编码,请给我建议如何初始化、读取、写入数组MQL4中的变量名存储。 目标是,我想尝试在单个窗口中创建EA多对,并在整个循环过程中保持ALL-STATUS,如下面的代码所示:

如何简化:


如果(对[cmp]=“欧元/美元”)
{ 
VAR1=STR01欧元兑美元;
VAR2=国际欧元兑美元;
VAR3=日期01欧元/美元;
VAR4=欧元兑美元;
.....
.....
VARN=xxx01欧元/美元;
}
如果(symbolx==“欧元/美元”)
{
STR01EUROUSD=VAR1;
INT01EUROUSD=VAR2;
日期01欧元兑美元=VAR3;
DOU01EUROUSD=VAR4;
.....
.....
XXX01欧元兑美元=VARN
}
在数组操作中。因为如果有额外的状态代码,则需要时间和增加行数

示例代码:


//多对
字符串对[]=
{
“欧元兑美元”,
“英镑美元”,
“澳元/美元”,
“USDCAD”,
“CHFJPY”,
.........
.........
“XAUUSD”
};
//变量名对
字符串str01EURUSD=“购买”;
..
..
字符串str01XAUUSD=“购买”;
int INT01EURUUSD=0;
..
..
int int01XAUUSD=0;
日期时间日期01欧元/美元;
..
..
datetime date01XAUUSD;
双倍欧元兑美元=0;
..
..
双dou01XAUUSD=0;
int start()
对于(int-cmp=0;cmp
使用继承
CObject.mqh
的类,并将它们全部放入
CArrayObj.mqh
列表中。通过填充类实例的字段进行初始化(如
pairs[cmp]==“EURUSD”){VAR1=str01EURUSD;…}
,然后将类添加到
OnInit()
中的列表中,然后使用该列表在
OnTick()中循环参数

下面是示例代码


#包括
类别:公共对象
{
字符串m_符号;
datetime m_date01;
双m_double01;
bool checkData()
{
//不知道您在此可能需要什么,如果需要继续,请返回true;
//或者将签名更改为int,返回-1(卖出)、0(通过)或1(买入)
返回false;
}
公众:
CPARAM(常量字符串smb、常量日期时间dt01、常量双精度d01):m_符号(smb)、m_日期01(dt01)、m_双精度01(d01){
~CParams(){}
void onTick()
{
如果(!checkData())
返回;
//开另一个交易?
}
};
CArrayObj*params;
int OnInit()
{
params=新的CArrayObj();
新增参数(新CPARMS(“欧元兑美元”,日期01欧元兑美元,日期01欧元兑美元));
//添加更多CPARAM实例
返回(初始化成功);
}
void OnDeinit(const int原因)
{
删除(参数);
}
void OnTick()
{
对于(int i=params.Total()-1;i>=0;i--)
{
CParams*param=在(i)处的参数;
参数onTick();
}
}

有任何示例的链接吗?好的,我在前面的示例中添加了一些代码,向您展示了它是如何工作的。添加更多的类字段、字符串、对象或原语不是问题。不要忘记在OnDeinit()中杀死它们。