错误、漏洞、问题 - 页 720

 

大家好!

我遇到了这个错误(也可能是我误解了什么)。

当查看一个月的历史时,它显示了足够的数据,即赚取740,交换-250。

同时,当我查看整个期间,500个赚取的积分和交换的积分几乎是一样的。

这就是为什么我不明白,当整个时期的收入低于每月的总额时,怎么会这样。

如果你需要,我可以附上历史报告

 
tol64:

这就是为什么如果你在3手 的未平仓头寸和4个 现有的各3手买入 止损 单(限额为15手)的情况下,下达第5个 待定的 买入止损 单,你应该不会成功。

一般来说,是的--就帮助中所述的内容而言。

但在逻辑上--不一定。在交易所市场,堆栈中只有限价单,而止损单存储在经纪人的服务器上,有两个参数--激活价格(MT中的 "Price")和所下限价单的价格(交易愿意执行的最差价格)。这与MT5中的BuyStopLimit和SellStopLimit相似,只是Limit可以等于止损价或更高(对于BuyStopLimit)或更低(对于SellStopLimit)。在股票市场中,将Limit(买入)设置得更高会导致交易,而这在MT中是无法做到的。因此,在交易所市场,特别是不发达的市场(例如,乌克兰交易所),很多时候(特别是在16:30-16:35之间的季度指数期货到期日)停止没有时间工作,杯中充满了限制订单,在正常情况下,这将立即导致执行。

所以 - 在市场上的限制 - 买/卖的坚定承诺(如果资金突然变得稀缺,经纪人可以删除订单,但早于它将执行),而停止 - 简单的记录在服务器上的经纪人,所以在达到激活价格的时刻,经纪人可以估计自由资金和决定 - 暴露限制或不。这就是为什么我说,对于限制,你必须满足限制,但对于停止,在理论上,你不必满足。

 
Yedelkin:

到了DoubleToString?:)

啊,看看NormalizeDouble。

你必须记住,当使用Print()输出到期刊时,一个规范化的数字可能比你预期的包含更多的小数位

   double pi=M_PI;
   Print("pi=",DoubleToString(pi,16));
      
   double pi_3=NormalizeDouble(M_PI,3);
   Print("NormalizeDouble(pi,3) = ",DoubleToString(pi_3,16))
   ;
   double pi_8=NormalizeDouble(M_PI,8);
   Print("NormalizeDouble(pi,8) = ",DoubleToString(pi_8,16));
   
   double pi_0=NormalizeDouble(M_PI,0);
   Print("NormalizeDouble(pi,0) = ",DoubleToString(pi_0,16));
/*
   Результат:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999                          <-----------
   NormalizeDouble(pi,8)= 3.1415926499999998                          <-----------
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

没有什么令人困惑的吗?

 
victorg:

啊,看看NormalizeDouble。

有什么令人困惑的吗

没有,没有什么令人困惑的。在你的 例子

void OnStart()
  {
  double a=2000000.0/3.0;
  Print(DoubleToString(a,30));
  }
完全没有提到使用NormalizeDouble()函数和归一化的数字。相应地,我说的"你到 DoubleToString?:)",同时还引用了函数DoubleToString() 的内容,没有丝毫尴尬的意思。而且还没有人反驳这句话的相关性。
 
Yedelkin:

不,没有什么是令人困惑的。在你的 例子

从来没有人提到过使用NormalizeDouble()函数和规范化的数字。相应地,我说的"你到 DoubleToString?:)",同时还引用了函数DoubleToString() 的内容,没有丝毫尴尬的意思。而且还没有人反驳这句话的相关性。

实际上,我不是指你的评论,而是指NormalizeDouble()的停靠。

 
notused:

一般来说,是的--就帮助中所述的内容而言。

但在逻辑上--不一定。在交易所市场,堆栈中只有限价单,而止损单存储在经纪人的服务器上,有两个参数--激活价格(MT中的 "Price")和所下限价单的价格(交易愿意执行的最差价格)。这与MT5中的BuyStopLimit和SellStopLimit相似,只是Limit可以等于止损价或更高(对于BuyStopLimit)或更低(对于SellStopLimit)。在股票市场中,将Limit(买入)设置得更高会导致交易,而这在MT中是无法做到的。因此,在交易所市场,特别是不发达的市场(例如,乌克兰交易所),很多时候(特别是在16:30-16:35之间的季度指数期货到期日)停止没有时间工作,杯中充满了限价订单,在正常情况下,这将立即导致执行。

所以 - 在市场上的限制 - 买/卖的坚定承诺(如果资金突然变得稀缺,经纪人可以撤回订单,但早于它将执行),而停止 - 简单的记录在服务器上的经纪人,所以在达到激活价格的时刻,经纪人可以估计自由资金和决定 - 暴露限制或不。这就是为什么我说,对于限制,必须满足限制,而对于停止,在理论上,不一定要满足。

谢谢你的详细解释。

Valery,你是否尝试过在MT5的Strategy Tumbler中实现自动策略?大约一个月前我试过,但没有成功,论坛上没有人回答。我不明白这到底是一个错误还是我的误解。洒下一些光。:)

 

下午好!

请指教,我有一个iCustom指标 在一个普通的程序体中,它工作得很好,得到一个手柄,一切正常。

如果我把它放到EX5库中,我得到的是指标句柄=-1,主程序无法调用该指标。

"DZMACD EURGBP,M15的加载失败"
"无法加载自定义指标'DZMACD'[4002]"

同时,标准指标,如iMA或iMACD,在同一个ex5库中正常工作,它们得到了处理。

我不知道我做错了什么,还是这是个错误?

Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
Технические индикаторы / iCustom - Документация по MQL5
 
MqlDateTime 结构中

intday;// day

它是指每月的哪一天吗?
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
 
victorg:

实际上,我指的不是你的评论,而是NormalizeDouble()文档。

实际上,消息的措辞这样的

Victororg:

耶德尔金

你到了DoubleToString?:)

啊,看看NormalizeDouble。

有什么令人困惑的吗

也就是说,有一个直接引用 "我的评论 "的建议,"看看那里的其他东西 "和 "它是否令人困惑?"的问题。

如果你想以"......关于NormalizeDouble()的码头 "的形式只介绍新的研究结果--你会这样写,不引用不必要的信息。我想是的 :/

由于你的帖子使用了一个命名的引用,而且正是对我的复制品--我不得不澄清,NormalizeDouble()与我的复制品无关,也与你的原帖无关,我冒昧地对其进行了评论。

 
Fia:

下午好!

请指示,我的iCustom指标 在通常的程序主体中工作正常,它得到了处理,一切正常。

如果我把它放到EX5库中,我得到Handel= -1,主程序无法调用该指标。

"DZMACD EURGBP,M15的加载失败"
"无法加载自定义指标'DZMACD'[4002]"

同时,标准指标,如iMA或iMACD在同一个ex5库中工作良好,它们得到了处理。

我不明白我做错了什么,还是说这是一个错误?

库中的自定义指标设置是否正常?

err_wrong_internal_parameter

4002

内部客户终端函数调用中的错误参数