错误、漏洞、问题 - 页 2586

 
Slava:

首先阅读文章https://www.mql5.com/ru/articles/239

阅读它。但是我没有看到任何答案,为什么CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);在测试器中读取30k条而不是100k条。 同时,在终端中,它能正确地读取一切。
 
elibrarius:
阅读。然而,我还没有得到答案,为什么CopyTime 的测试人员计算的是30条,而不是100kbars。同时在终端中,它能正确地读取一切。

测试者在第一次访问该工具时,会从客户终端(不是从交易服务器!)自动下载所使用工具的历史记录。

测试代理只下载缺失的历史记录,并留有很小的余地,以便在测试开始时提供必要的历史数据来计算指标。对于D1及以下的时间段,从交易服务器下载的最小历史量是一年。因此,如果你在2010.11.01-2010.12.01这个区间开始测试(在一个月的区间内测试),周期为M15(每个柱子为15分钟),终端将要求提供2010年全年的历史数据。对于每周的时间框架,我们将要求100条的历史,这大约是两年的时间(一年有52周)。 对于月度时间框架的测试,代理将要求8年的历史(12个月*8年=96个月)。


摘要

在测试设置中设置每月的时间框架

 
Slava:

测试员在第一次访问该符号时,会自动从客户终端(不是从交易服务器!)下载所使用符号的历史记录。

测试代理只下载缺失的历史记录,并留有很小的余地,以便在测试时提供必要的历史数据来计算指标。对于D1及以下的时间段,从交易服务器下载的最小历史量是一年。因此,如果你在2010.11.01-2010.12.01这个区间开始测试(在一个月的区间内测试),周期为M15(每个柱子为15分钟),终端将要求提供2010年全年的历史数据。对于每周的时间框架,我们将要求100条的历史,这大约是两年的时间(一年有52周)。 对于月度时间框架的测试,代理将要求8年的历史(12个月*8年=96个月)。


摘要

在测试设置中设置每月的时间框架

这很清楚--它节省了资源。

如果我想在M15上进行测试,但需要几年的数据(来训练一个神经网络),怎么办?我们是否应该在自己的文件中储存这些条子?

 
Roman:

Renate的 例子文章 中所示,使用了memcpy。
使用其他复制功能也会导致同样的问题。
在这篇文章 中描述了使用这些函数的行为,在这篇文章 中还描述了
所有可能的复制功能都已尝试。

你对共享多个线程的数据了解多少?

 
Ilyas:

你对多线程数据共享了解多少?

代码中使用了 lock_guard
但如果把它注释掉,就不会有任何变化

recursive_mutex mtx;
const wchar_t* data;
bool success ;
                
while (condition)
{
        
   if (DataAvailable())
   {
      lock_guard<recursive_mutex> locker(mtx);
      success = ReadData();
   }
        
   if (success)
   {
      lock_guard<recursive_mutex> locker(mtx);
      data = getData();
                
      memcpy(out, data, wcslen(data) * (sizeof(char)*3));
   }
        
   Sleep(1);
}
还是开始漏水,但可以理解的是,由于错误的尺寸of
附加的文件:
222.PNG  13 kb
 
elibrarius:

我明白了--节约资源。

但如果你需要在M15上进行测试,但又需要几年的数据(来训练神经网络),怎么办?你需要在你的文件中储存这些条子吗?

我们只需要等待。

input int InpBars = 100000;

void OnTick()
{  int bars = Bars(_Symbol, _Period);
   if(bars < InpBars) return;

}
 
elibrarius:

我明白了--节约资源。

但如果我需要在M15上进行测试,但我需要几年的数据(用于训练神经网络),该怎么办?我们是否应该在自己的文件中储存这些条子?

问题是什么?你可以从任何时间范围内获取数据。
 
Slava:
有什么问题呢?你可以从任何时间范围内获取数据。

如果我在M15上运行测试,因为测试器中的交易将在M15上进行,我将无法从历史中计算出100000条。但我们需要测试M15的交易情况。

如果我在Мonthew上运行,让它有8年的历史,我将无法每月交易一次以上。

 
elibrarius:

如果我在M15上运行测试,因为测试器中的交易将在M15上进行,我将无法从历史上计算出100,000条。而且我需要在M15上测试交易。

如果我在Мonthew上运行,让它有8年的历史,那么我将无法每月交易超过一次

为什么不呢?

 
Alexey Viktorov:

为什么?

开盘价 正在接受测试。蜱虫将每月来一次。
如果你在所有真实的刻度上运行,你可以用强大的重新设计和复杂的代码。这也会浪费资源。我认为从文件中读取条形图会比较容易。