初学者的问题 MQL5 MT5 MetaTrader 5 - 页 510

 

让我们做好准备。

enum ENUM_case
  {
   M=1,// Больше A
   L=2,// Меньше A
   ML=3,//Больше А и меньше Б
   LM=4 //Меньше А или больше Б
  };

struct param
  {
   int               cas; //Case
   double            a; // A
   double            b; //B  
  };
param params[];
double data[3]; //Массив для записи текущих параметров

定义变量

sinput string atata0; //Параметры пробитие 
sinput string atata1; //Объем
input ENUM_case bc1=1; //Логика
input double ba1=1;//A
input double bb1=1;//B
sinput string atata2; //Сделки
input ENUM_case bc2=1;//Логика
input double ba2=1;//A
input double bb2=1;//B
sinput string atata3; //Заявки
input ENUM_case bc3=1;//Логика
input double ba3=1;//A
input double bb3=1;//B

OnInit中的愚蠢行为看起来是这样的。

   ArrayResize(params,3);
   params[0].cas=bc1;
   params[0].a=ba1;
   params[0].b=bb1;
   params[1].cas=bc2;
...

我不明白为什么我们不能立即将输入变量 写入数组或用变量初始化数组 :(

在EA内部的某个地方,我们填入数据数组并运行检查函数。

bool Conditions()
{
int num=ArraySize(params);
for (int i=0;i<num;i++)
{
switch(params[i].cas) 
{
case 1 : if (!(data[i]>=params[i].a)){return(false);break;}
case 2 : if (!(data[i]<=params[i].a)){return(false);break;}
case 3 : if (!(data[i]>=params[i].a && data[i]<=params[i].b)){return(false);break;}
case 4 : if (!(data[i]<=params[i].a || data[i]>=params[i].b)){return(false);break;}
}
}
return(true);
}

到目前为止还不错。有什么更好的选择吗?

 

你好!

我不能从市场上购买我喜欢的软件(MT4)。

我似乎已经做了所有正确的事情。

首先为我的MQL5.community账户提供资金(通过WM)。

然后在MT4注册了一个账户。


但当我按下 "购买 "或 "租赁"(1年,我想)。

-我不从资助账户 中提款。

并提出再次从WM中抽取,替代填充WM的形式

(并据此提出指定和Webmoney的密码)。


这对我来说似乎有点奇怪。

-那我为什么要把我的MQL5.community账户存入呢?


如果你知道什么,可能是我不了解的东西?


预先感谢


============

谢谢你,我没有等来答案,自己想出来了。没关系的

 
Антон:

让我们做好准备。

定义变量

OnInit中的愚蠢行为看起来是这样的。

我不明白为什么我们不能立即将输入变量 写入数组或用变量初始化数组 :(

在EA内部的某个地方,我们填入数据数组并运行检查函数。

到目前为止还不错。有什么更好的选择吗?

乍一看,一切似乎都很好。你有什么问题?

我不明白为什么不能把输入变量直接写入数组或用变量初始化数组 :(
数组只能用常量初始化,因为初始化代码是在编译时创建的,此时变量的值是未知的。

另一个纯粹是关于设计的批评。你有ENUM_case,仍然使用数字值。

 
Alexey Volchanskiy:

乍看之下,一切都很好。有什么不喜欢的呢?

我不明白为什么不能把输入变量直接写入数组或用变量初始化数组 :(
数组只能用常量初始化,因为初始化代码是在编译时创建的,此时变量的值是未知的。

纯粹在设计上有更多的争论。你有ENUM_case,仍然使用数字值。

一旦确定了,我就会细化它。谢谢!
今天早上发生了一点争吵,认为这样的事情可能有一些棘手的操作员。

 
vaso55555:

日安!

我不能从市场上购买我最喜欢的应用程序(MT4)。

似乎做什么都是对的。

我资助了我的第一个MQL5.community账户(通过WM)。

然后我在MT4注册了一个账户。


但当我按下 "购买 "或 "租用"(我想要的1年)的时候

-我不从资助账户中提款。

并提出再次退出WM,取代填补WM的形式

(并相应地提示我也要输入我的Webmoney密码)......


对我来说,这似乎有点奇怪...

-然后我为什么要把我的MQL5.community账户存入?


如果有人知道,可能有什么是我不明白的......。


预先感谢

你应该从内部账户中提取,至少我一直都有,当信号订阅时,但市场上的信号本质上的支付是相同的。内部账户上是否有足够的资金用于在市场上支付?
 
Антон:

一旦确定了,我就会完善它。谢谢你!
今天早上发生了一点争吵,认为这样的事情可能有一些棘手的操作员。

我总是说,不要在开发过程中优化一个程序,不要在上面浪费时间。首先写出一个清晰、易懂、有利可图的 算法,然后在必要时优化瓶颈
 
Vladimir Zubov:
应该从内部账户中提取,至少我订阅信号时是这样的,但市场和信号在支付方面是一样的。我的内部账户上有足够的钱在市场上支付?
我已经整理好了,谢谢你。
 

你好,是否有办法确定测试仪的运行模式与价格的关系。

- 按开盘价 计算。
- ohlc
- 所有的虱子?


 
elibrarius:

你好,是否有办法确定测试仪的运行模式与价格的关系。

- 按开盘价 计算。
- ohlc
- 所有的虱子?


有适当的下拉窗口与模式。
 
Alexey Volchanskiy:
有相应的下拉窗口与模式。

我可以设置模式,但专家顾问在测试时需要知道它在哪种模式下(按价格)运行。

我只想到了1种变体。

如果一个条形图中只有一个刻度,那么它将以价格打开
如果在0、20、40、59秒有4个刻度 - OHLC
否则--所有的虱子。

但我担心可能会有变种,会与别人的情况相吻合,以确定类型
也许有一个更容易的选择?