新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 304

 
Alexey Viktorov:
阿尔乔姆-特里什金
谢谢你,请原谅我,我没有正确表述我的想法。
我想获得当年的开盘价,不是通过指定一个特定的日期,而是通过传递一个指数,就像终端有一个1年的条形图一样。上个月的指数为1,也使去年的指数为1.请帮助实现这一点?
 
mila.com:
谢谢你,请原谅我,我的思想表述不正确。
我想获得当年的开盘价,不是通过指定一个具体的日期,而是通过传递一个指数,就像终端有一个1年的条形图。上个月的指数为1,同样的方法使去年的指数为1.帮助实现这一点?

非常简单。

double f(int numYear)
 {
   MqlDateTime newYear = {0}; // Обнулить обязательно.
   newYear.year = numYear;
   double priceOpenYear[1];
   CopyOpen(_Symbol, PERIOD_MN1, StructToTime(newYear), 1, priceOpenYear);
   return(priceOpenYear[0]);
}

而且它不以任何方式取决于工作/非工作天。PERIOD_MN1总是每月的第一天,PERIOD_W1也总是星期天。

 

伙计们!

其中一个客户抱怨说,当价格急剧波动时,EA就会下降。这种情况在不同的经纪公司都发生过。

他们的代码中没有任何东西可以导致删除。我自己从来没有遇到过这个问题。

问题可能是什么?

 
Vladimir Tkach:

伙计们!

其中一个客户抱怨说,当价格急剧波动时,EA就会下降。这种情况在不同的经纪公司都发生过。

他们的代码中没有任何东西可以导致删除。我自己从未遇到过这个问题。

问题可能是什么?


你在日志中没有看到任何东西?甚至连卸货的问题都没有?

 
Aleksey Vyazmikin:

日志中没有什么直接的内容吗?连卸货的事都不知道?


2017.08.08 23:31:29.035 Expert DEBUT 3.0 GBPUSD,M1: 已删除

 
Vladimir Tkach:

2017.08.08 23:31:29.035 Expert DEBUT 3.0 GBPUSD,M1: 已删除


如果专家不使用模式--在其图表上重新打开自己,那么我就没有假设了......

 
Aleksey Vyazmikin:

如果专家不使用模式--在其图表本身上重新打开,那么我就没有假设......

弗拉基米尔-特卡奇

2017.08.08 23:31:29.035 Expert DEBUT 3.0 GBPUSD,M1: 已删除

有足够的可用内存吗?专家没有用任何东西堵塞内存?

 

晚上好。

请告诉我为什么OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)函数不能工作。

它返回一个错误:表达式无法被评估。票--价值已被填满。

我不能理解任何东西 ((((

谢谢你。

 
rabanik:

晚上好。

请告诉我为什么OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)函数不能工作。

它返回一个错误:表达式无法被评估。票--价值已被填满。

我不能理解任何东西 ((((

谢谢你。

当通过票据选择订单时,我们不需要指定池子 --MODE_TRADES在这里是多余的--当通过票据选择时,这个参数被忽略,订单会从两个列表中的一个中选择--从已关闭的列表或从市场头寸列表中选择--取决于该头寸 是否已经关闭

在根据票据成功选择订单后,为了了解订单是从两个列表中的哪一个中选择出来的,有必要检查平仓时间 - 如果它高于零,那么订单已经被关闭,并从历史订单列表中选择,否则 - 订单仍在市场中。

但是为了理解你的错误,你需要附上代码--给出更多的信息,因为在这一行,原则上没有错误(除了你没有检查函数的返回结果,你使用了一个修饰符,在这种情况下被忽略了,而且在闭合括号后没有";")。

 
Alexey Viktorov: 非常简单。

谢谢你,但对我来说,它的回报是零。可能的原因是什么?

Comment("OpenYear : ",DoubleToString(f(1))); 
原因: