MQL5中的初学者问题。专业人士不会路过。 - 页 2

 
Figar0:

在H4上,"所有刻度线 "模型的刻度线只比 "公开价格 "模型多14倍。 要么是我疯了,要么是两者之一...所以,"公开价格 "模式根本不存在?

请看"MetaTrader 5中的测试基础知识"。

仅公开价格

在 "仅开盘价 "的测试模式中,点子的生成是由 "1分钟OHLC "模式的相同算法进行的。唯一的区别是,在这种模式下,OnTick()函数只在测试期间的公开价格上运行。

例如,在 "仅开放价格 "模式下对欧元兑美元H1的专家顾问进行测试。这意味着点数的总量(检查点)将与 "1分钟OHLC "模式相同,但OnTick()处理程序仅 在开盘 小时 被调用 。在其他(从专家顾问那里 "隐藏 "的)刻度上,进行正确测试所需的检查。

  • 计算保证金要求。
  • 触发止损和止盈。
  • 触发未决订单。
  • 移除时间过期的未决订单。

如果没有未结头寸或挂单,就没有必要在这些检查隐藏的刻度线,而且速度的提高可以是显著的。这种模式 "仅开盘价 "适合于测试只在开盘时进行交易的策略,不使用挂单,也不使用止损单和止盈单。对于这类策略,所有必要的测试精度都得以保留。

 
Rosh:

请看这篇文章MetaTrader 5的基本测试

很清楚为什么,不清楚怎么做?正如我马上说的--悲哀)我的例子中的MT5测试器比MT4测试器慢70倍。在我的MT4中,这里的一天将是10周?很酷,我决定加速)很好,我从小事做起,没有把所有的好东西转换成MT5进行测试)

请原谅我的讽刺,我明白MT5测试器比MT4有很多优势,但这是被速度所抵消的。

也许我们应该引入一个类似于MT4的 "开盘价 "的模式?让它不准确,让它用红色粗体字,并有很多警告,但让它比在MT4中更直接。例如,MT5中测试序列生成的准确性,对于专家顾问在没有TP和SL的情况下操作条形开口是绝对不必要的。

 
Figar0:

很清楚为什么,不清楚怎么做?就像我马上说的--悲哀)我的例子中的MT5测试仪比MT4测试仪慢70倍。在我的MT4中,这里的一天将是10周?很酷,我决定加速)很好,我从小事做起,没有把所有的好东西转换成MT5进行测试)

请原谅我的讽刺,我明白MT5测试器比MT4有很多优势,但这是被速度所抵消的。

也许我们应该引入一个类似于MT4的"开盘价"的模式?让它不准确,让它用红色粗体字,并有很多警告,但让它比在MT4中更直接。例如,MT5中测试序列生成的准确性,对于专家顾问在没有TP和SL的情况下操作条形开口是绝对不必要的。

如果你想要快速的开盘价,只需在代码中写一个过滤器,这样它就不会在没有新条形的条件下进行计算,生成ticks本身需要最少的时间,具体来说,任何TF上的3年历史(开盘价)需要7-15秒。
 
Urain:
如果你想快速地按开盘价 计算,只需在代码中写一个过滤器,这样在一个新的条形图出现之前就不会有任何条件的计算,刻度线的生成本身需要最少的时间,特别是任何TF的3年历史(按开盘价)需要7-15秒。
什么样的过滤器?)我在Ontick()的开头有一个新条形的检查。但是,即使有这个过滤器,我在MT5中对可比的EA的优化也比MT4慢70!!倍,这不是一个笑料......也许我在这段代码中弄错了(新的条形检查),请看前面的代码页。 或者也许只是我的问题?也许我应该试着重新安装mt5,比如说?
 
Figar0:
什么样的过滤器?)我的Ontick()以检查一个新柱子开始。但是,即使有了这个过滤器,MT5中可比的EA的优化也比MT4慢70!!!倍,这一点也不好笑......也许我在这段代码中弄错了(检查新条),请看前面的代码页。 或者也许只是我的问题?也许我应该试着重新安装mt5,比如说?

在每个tick上创建一个变量,在每个tick上创建一个动态数组,调用复制函数,两个检查。

为什么如此复杂?

你声明一个全局变量 来存储前一个请求中的条数,并检查条数是否有变化,就这样。

int prevbars;

int OnInit()
  {
   prevbars=-100;// любое число которое не может вернуть Bars()  
   // ...
   return(0);
  }

void OnTick()
  {
   if(prevbars!=Bars(_Symbol,_Period))
     {
      prevbars=Bars(_Symbol,_Period);
      // ...
     }
  }

如果你需要更多的验证,那么把这个验证放在保护区内。

 
Urain:

在每个tick上创建一个变量,在每个tick上创建一个动态数组,调用复制函数,两个检查。

为什么如此复杂?

全局范围内 声明一个变量,存储上一次请求的条数,并检查条数是否有变化,仅此而已。

如果你想检查数据是否被加载,那么把这个检查放在保护区内。

谢谢你。但你真的认为这能从根本上改变现状吗?)检查了一下,是几分钱,也许只是在误差范围内......这都是关于MT4 2K和MT 1200K中 "按开盘价 "模型产生的点数的巨大差异,没有多核和云计算会有帮助。 甚至不知道这个模型是否有 "权利 "被称为按开盘价,从比例来看,它像是 "14个点数中的一个 "模型。我不知道MT4的 "开盘价 "模式有什么罪过,我不明白。肯定是有需求的,为什么不保留它的MT4形式呢?

我不知道为什么,对谁来说,这种测试的冗余是如此明显。我们是否需要使用测试器来从历史中提取利润?我认为主要的一点是,测试者的准确性不能转移到真正的账户。

顺便问一下,谁知道把我最喜欢的复选框 "跳过无用的结果 "藏在哪里?我找不到它....它也失宠了吗?)

 
Figar0:

它肯定是有需求的

...现在和将来都是如此。

让我们等待历史文件,至少是分钟文件,被破解。

 
TheXpert:

...使用并将继续使用。

让我们等待历史文件,至少是分钟文件,被破解。

是的,我明白,我们会想办法解决的,我只是想避免出现这种情况...。 开发者似乎愿意做一个可用的和功能性的=>平台,受到交易者的欢迎=>平台,受到经纪公司的欢迎。但有时我认为他们只是没有从另一个角度看问题)。首先,断然否定了设置价差的能力(结果是,没有TakeMySpread你就不能在周末使用4),现在又推出了创新的云计算,代理商加快了工作速度,结果是慢了70倍......我不明白。
 
开发者需要增加另一个选择的选项。也就是说,老的"开盘价"选项。这对许多想法来说是足够的。我在MT4的所有模式下都取得了相同的结果。如果在旧的变体中测试,该云就会变成超级云))。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
joo:

我将添加同样的 "按开盘价"模式,但有一个选项可以选择一个子时间框架。假设你选择了测试时间框架H1,这意味着你可以选择M1、M2、M5、M10的价格运动模式 .....М30.那么在 "速度和准确度 "之间进行选择将非常灵活(如果他们不是点球手,大多数人将更喜欢 "速度")。

这是个很好的补充!同时,在测试器中的范围内的酒吧...但这是另一个故事。))。