初学者的问题 MQL4 MT4 MetaTrader 4 - 页 220

 
嘿,伙计们,帮帮我吧!我想不出有什么功能。专家顾问每天开一个头寸(00:00至23:59之间),即一天一个订单。任务是找到一系列的连续损失,并将其显示在日志中(使用Print()命令,打印一次)。系列中的元素数量由键盘输入(例如,如果你从键盘上输入5,而系列中有4个失利的日子,那么我们就忽略它-->等待5个或更多日子的出现)。如果亏损日是连续的,或者订单在一天内被关闭,则认为是一个系列(它们每天打开一次,而市场订单可以 "挂 "超过一天)。例如,在日志中应该有以下损失系列:01.05, 02.05, 03.05, 04.05, 05.05。重要条件:识别系列(并因此输出到日志),它大于或等于从键盘(extern)输入的值。
//
我个人有以下想法:
1.Fiya用他们的收盘值来填补亏损订单的数组 ( Mass[i] = OrderCloseTime();)。也就是说,数组只存储了亏损订单的收盘日期和时间
2.我们开始比较位置i和位置i-1(2个相邻的)的元素
2.1 我们通过将单元格数据转换为一年中的一天来进行比较 ( TimeDayOfYear(Mass[i]) 和TimeDayOfYear(Mass[i-1])
2.(假设第一个失败日=178,而前一个=176-->没有系列,因为它们不是连续的,分别是如果第一个=178,而第二个177-->我们有一个系列)
2.3 通过for循环,我们查看数组的所有单元格并比较它的相邻单元。如果在 数组相邻元素上有一系列的亏损-->让我们开始压缩,直到1.我们没有达到最低要求的亏损天数来考虑它是一个系列2.(如果第1点得到满足)在系列停止之前。
2.4 系列停止-->记住它结束的数组元素的索引,并记住系列中的元素数量(系列可以==或大于从键盘输入的值)
3.---- 这里开始实现的问题---
3.1 我们应该以某种方式 "回溯 "一系列失去的日子,知道每个元素的日期,将日期从数据时间转换为--->字符串,
3.11 填充字符串(我不知道,也许通过StringAdd()?),并输出到LOG-文件(不是一百万次,只是一次)

专家顾问的算法并不重要,重要的是用户的功能本身

看在上帝份上,帮助!)
Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
附加的文件:
 
你好。签署了信号。但几天后,从几百人的总增长比例变成只有58%。前几个月的百分比已经失去了蓝色,变成了灰色。为什么会发生这种情况?可能的原因是什么?
附加的文件:
 
Maestro8:
你好。签署了信号。但几天后,从几百人的总增长比例只有58%。前几个月的百分比已经失去了蓝色,变成了灰色。为什么会发生这种情况?可能的原因是什么?

你已经签署了另一个存款分割协议。你看到图表上第76个交易左边的垂直线了吗?这一行显示你连接到监控的时刻。在与监控连接之前,这个账户从其他几十个账户中 "撤回",这些账户没有这么漂亮的画面(它们被安全地耗尽)。具有美丽指标的存款与监控相连,并从喜欢美丽图片的新人那里收到钱。所以不要相信加入监测前获得的指标。

 

该类的一个实例的副本。

如果我做这个任务。

Cl1 = Cl2;

然后当我随后改变Cl1时,Cl2也随之改变。

所以,很明显,任务只是一个参考。

但我需要保存一个类的实例,它将存储在分配时赋予它的所有属性。

如何做到这一点?

 
Evgeny Potapov:

该类的一个实例的副本。

如果我做这个任务。

然后当我随后改变Cl1时,Cl2也随之改变。

所以,很明显,任务只是一个参考。

但我需要保留一个类的实例,它将存储在分配时给予它的所有属性。

如何做到这一点?

你可能会这样做。

CClass* cl1=new CClass;
CClass* cl2=cl1;

,而你需要这个。

CClass cl1;
CClass* _cl1=new CClass;
CClass cl2=cl1;
CClass _cl2=_cl1;
CClass* cl3=new CClass(cl1);
CClass* cl4=new CClass(_cl1);

你需要一个复制构造函数。

class CClass{
public:
   CClass(){}
   CClass(CClass &mOther){this=mOther;}
};
 
Vladimir Simakov:

你需要一个复印件制作者。

谢谢你!

我试试,但不清楚它是如何运作的。

如果它把复制的引用传给被复制的类,这有什么区别?

两人是否会再次提到对方?

 
Evgeny Potapov:

谢谢你!

我可以试一试,但不清楚它是如何运作的。

如果它把副本的引用传给被复制的类,这有什么区别?

他们两个人是否会再次提到对方?

不,他们不会的。这是一个新的对象。而在构造函数中,你只需填入字段。那里也有一些微妙的地方,所以要仔细琢磨)在本地帮助中没有关于它的内容(尽管我可能是错的),所以要阅读它在C++中是如何完成的,并根据本地实际情况进行修正。祝你好运)

 
Vladimir Simakov:

他们不会的。这是一个新的对象。而在构造函数中,你只需填写字段。那里也有一些微妙的地方,所以要仔细琢磨)在本地帮助中没有关于它的内容(尽管我可能是错的),所以要阅读c++是如何做到这一切的,并根据本地的实际情况进行调整。祝你好运)

是的,这就是它的作用。

谢谢你!

如果能从作者那里知道它是如何运作的,那就很有意思了。

{this=mOther;}

为什么会有一个按值转移,而人们期望的是一个引用被转移?

幸运的是,这样的复制构造是可能的!这就是所谓的 "复制"。

 

下午好!

你能告诉我,为什么在我的MT4中,我不能用鼠标在入仓点设置止损 和获利?

也许我需要调整一些东西,但我不明白是什么东西,请帮助我。

 
from_Reva:

下午好!

你能告诉我,为什么在我的MT4中,我不能用鼠标在入仓点设置止损 和获利?

也许我需要配置一些东西,但我不明白它是什么,请帮助我。

试着按住键盘上的 "Alt "键并拖动