错误、漏洞、问题 - 页 2908

 

如果有一个更合适的代码库问题的主题,请把问题移到那里。这些 "bug "太长了,可能MQ没有仔细阅读。

这样的问题。我想为MQL Wizard发布一个模块,以生成通用信号,即由用户自定义,并使用任意指标,而不是标准库中 的有限集合。我附上了使用新模块生成的专家顾问,作为mq5代码。但当然,该模块中没有硬编码的信号,因为该模块的全部意义在于定制。因此,专家顾问既没有交易,也没有得到自动验证。

解决问题的方案有哪些?

 
Stanislav Korotky:

如果有一个更合适的代码库问题的主题,请把问题移到那里。这些 "bug "太长了,可能MQ没有仔细阅读。

这样的问题。我想为MQL Wizard发布一个模块,以生成通用信号,即由用户自定义,并使用任意指标,而不是标准库中 的有限集合。我附上了使用新模块生成的专家顾问,作为mq5代码。但当然,该模块中没有硬编码的信号,因为该模块的全部意义在于定制。因此,专家顾问既没有交易,也没有得到自动验证。

解决问题的方案有哪些?

我已经绕过了EA按时间开单,在mt4的OnInit中开了一个带有SL和TP的订单。我在半年前通过了验证。

我还设置了条件:如果它在测试器中,我们就开一个订单,如果没有,我们就错过它。验证是在测试器中进行的。

 
Stanislav Korotky:

如果有一个更合适的代码库问题的主题,请把问题移到那里。这些 "bug "太长了,可能MQ没有仔细阅读。

这样的问题。我想为MQL Wizard发布一个模块,以生成通用信号,即由用户自定义,并使用任意指标,而不是标准库中 的有限集合。我附上了使用新模块生成的专家顾问,作为mq5代码。但当然,该模块中没有硬编码的信号,因为该模块的全部意义在于定制。因此,专家顾问既没有交易,也没有得到自动验证。

解决问题的方案有哪些?

本以为可以用#property tester_set指令做一个触发器包装,但事实证明,它在默认情况下不会自动设置这些参数,而只是在测试器上添加一个菜单项供手动选择。

 
Stanislav Korotky:

本以为可以用#property tester_set指令制作一个启动器包装器,但结果发现它默认不会自动设置这些参数,而只是在测试器上添加一个菜单项供手动选择。

我还尝试了#property tester_file指令 "DefaultSettings.tpl"。指定的文件被复制到根文件夹中的代理,但不会自动应用(至少在专家顾问设置方面)。

 
Aleksei Ostroborodov:
产品评级、投票数和评论不显示在市场上,尽管它们在描述中存在https://www.mql5.com/en/market/
谢谢你对具体案例的解答。
但其他产品呢?我和其他四个EA有同样的情况。我应该每次都发一个链接吗?
 

EA优化 过程中,测试人员每运行一次就切换到 "设置 "选项卡,没有办法控制代理状态,只是跑到另一个选项卡。我今天注意到了,目前建于2697年。

将数量不均的任务分配给本地代理,没有一个得到执行



有什么想法吗?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
如何通过CopyTicks获得给定时间之前的tick?
 
fxsaber:
如何通过CopyTicks获取给定时间之前的tick?

那么,如果窗口中的最大条数是无限的。

它可能是类似的东西。

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

检查,但不是有偏见的。

如果绕过条形图(iBarShift),那么如果时间落在周末,找到最接近的刻度线可能要付出相当大的代价。


 
Nikolai Semko:

如果你不使用条形图(iBarShift),如果时间是在周末,要找到最近的刻度线,成本可能会相当高。

是的,右边的刻度是基本的,左边的刻度是可怕的。

 
fxsaber:

是的,右边的勾是初级的,左边的勾是可怕的。

是的。
缺少的是,在函数中

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

count参数为int,该函数将支持负数值,即倒退。