给MT4指标和ea加账户限制的方法
假设你想要限制某个指标只在特定的账户上运行,下面是一个简单的示例代码:// 设置允许的账户号(可以根据实际情况修改)
#define ALLOWED_ACCOUNT 12345678
// 在指标初始化时进行检查
int OnInit()
{
// 获取当前交易账户的号码
int accountNumber = AccountInfoInteger(ACCOUNT_LOGIN);
// 检查当前账户是否符合要求
if(accountNumber != ALLOWED_ACCOUNT)
{
Print("该账户不允许使用此指标。");
// 禁用指标
return INIT_FAILED;
}
// 如果账户合法,继续执行初始化
return INIT_SUCCEEDED;
}
假如你希望限制指标只在模拟账户中运行,你可以这样做:
// 在初始化时检查账户类型
int OnInit()
{
int accountType = AccountInfoInteger(ACCOUNT_TYPE);
// 如果是模拟账户,则继续运行,否则停止
if(accountType != ACCOUNT_DEMO)
{
Print("此指标仅限于模拟账户使用。");
return INIT_FAILED;
}
return INIT_SUCCEEDED;
}
来几段ea限制时间开单的代码呢 // 定义到期时间 (例如:2024年12月31日)
datetime expiry_time = D'2024.12.31 23:59:59';
// 指标初始化函数
int OnInit()
{
// 获取当前时间
datetime current_time = TimeCurrent();
// 如果当前时间超过了到期时间
if (current_time > expiry_time) {
// 输出提示消息
Print("该指标已过期,无法使用!");
// 在图表上显示过期消息
ObjectCreate(0, "ExpiryText", OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, "ExpiryText", OBJPROP_XSIZE, 300);
ObjectSetInteger(0, "ExpiryText", OBJPROP_YSIZE, 30);
ObjectSetInteger(0, "ExpiryText", OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, "ExpiryText", OBJPROP_YDISTANCE, 10);
ObjectSetString(0, "ExpiryText", OBJPROP_BGCOLOR, clrRed);
ObjectSetString(0, "ExpiryText", OBJPROP_COLOR, clrWhite);
ObjectSetString(0, "ExpiryText", OBJPROP_TEXT, "指标已过期,无法使用!");
// 禁用指标
return(INIT_FAILED);
}
// 如果未过期,继续初始化
return(INIT_SUCCEEDED);
}
// 指标计算函数
void OnTick()
{
// 获取当前时间
datetime current_time = TimeCurrent();
// 如果当前时间超过到期时间
if (current_time > expiry_time) {
// 输出提示消息
Print("该指标已过期,无法使用!");
// 显示图表上的过期提示
ObjectSetString(0, "ExpiryText", OBJPROP_TEXT, "指标已过期,无法使用!");
} else {
// 执行正常的指标计算逻辑
// 例如,计算移动平均线等
}
}
嗯,感谢大佬 {:1_194:} {:1_189:}
页:
[1]