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

 
barudkinarseniy:
我没有看到任何问题,我的专家顾问只是以这样的方式工作,在关闭一个盈利或亏损的交易后,它立即打开订单,打印机中的票据号码非常大,所以我认为它不必手动重新加载,也许它可以自动完成。我也应该感谢你的这项功能))。
如果你看一下一年中的1000个订单,这不算什么,只要看看真实账户 上的股票就知道了。例如,我有最后的10179697。一般来说,门票是int类型的,因此最大值为2 147 483 647。
 
Alexey Volchanskiy:
一年中的1000个订单不算什么,看看真实账户 上的票。例如,我有,最后10179697。一般来说,门票是int类型的,因此最大值为2 147 483 647。
而如果达到了最高值,会是什么情况?
 
在MQL5中,票据是ulong类型 的,你将会喘不过气来超过
 
barudkinarseniy:
如果它达到了最大值,又会发生什么?
订单和交易的数字是由经纪人分配的,而不是由您的EA分配的,EA将确保它们不超过最大值。) 这不是你的头疼问题。
 
谢谢你提供的有用信息)))有什么办法可以用AccountFreeMarginCheck来检查限价单?
 

我从库中取出了标准的德马克专家顾问,它似乎可以工作。我开始完善它。

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

我给这个指标增加了计算和额外的输出数据,其结果如下

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

它开始滞后,即我得到无效数据的错误。

问题是,如果我创建了同一个指标8次并从中得到了正确的数组,还是我错了?还是我错了,一个指标只创建一次?
如果我是对的,我怎样才能创建一次并从中获得所需的数据?

 

同事们好!

请告知在MT5中进行对冲平仓的交易请求的结构

谢谢你。

 
Nikita Solodko:

同事们好!

请告知在MT5中进行对冲平仓的交易请求的结构

谢谢你。

你可以使用方法
bool  PositionClose( 
   const ulong   ticket,                  // тикет позиции 
   ulong         deviation=ULONG_MAX      // отклонение 
   )
来自CTrade类的标准库
 
Sergey Gritsay:
你可以使用CTrade类的标准库中的方法
谢谢你,当然,但我不使用贸易类,我更喜欢使用OrderSend()函数。在可以进行套期保值之前,一切都很好,但现在在交易请求的结构 中出现了"头寸 " 元素,正如帮助中所说的,在修改和关闭头寸时表示一个特定的头寸,只是没有说如何关闭这个头寸(操作类型或如此)
 
Milleras1981:

我从库中提取了标准的EA用于标记,它似乎可以工作。我开始完善它。

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

我给这个指标增加了计算和额外的输出数据,其结果如下

double DU = iCustom(NULL, 0, "itdlines", Level, 0, 0);

double DD = iCustom(NULL, 0, "itdlines", Level, 1, 0);

double DU1 = iCustom(NULL, 0, "itdlines", Level, 0, 1);

double DD1 = iCustom(NULL, 0, "itdlines", Level, 1, 1);

double LUN = iCustom(NULL, 0, "itdlines", Level, 2, 0);

double LDN = iCustom(NULL, 0, "itdlines", Level, 3, 0);

double KUN = iCustom(NULL, 0, "itdlines", Level, 4, 0);

double KDN = iCustom(NULL, 0, "itdlines", Level, 5, 0);

它开始滞后,即我得到无效数据的错误。

问题是,如果我创建了同一个指标8次并从中得到了正确的数组,还是我错了?还是我错了,一个指标只创建一次?
如果我是对的,我怎样才能创建一次并从中获得所需的数据?

在你改进之前,专家顾问收到了4个值:从最后一个和倒数第二条的零指标缓冲区,以及从第一个指标缓冲区,而你正试图从6个指标缓冲区接收信息......你确定你的指示器里有它们吗?你想达到什么目的?