文章 "自定义交易历史表述并创建报告图表" - 页 2

 
Aleksey Vyazmikin:

也许我的解释不对,"dealHistory.csv "文件是随压缩包一起下载的,其中已经包含数据,我知道报告将根据这些数据生成。我怎样才能让报告建立在我的数据上?

现在我明白了。你运行了两个测试。在我所附的脚本中,有两个测试,第一个--数据取自文件。第二个测试是从历史记录的终端获取数据。

 
Andrey Azatskiy:

我明白你的意思了。你同时进行了两个测试。在我附上的脚本中,有两个测试,第一个--数据来自文件。第二个--通过历史记录从终端获取数据。

如何在两者之间切换?

 
您需要第二个测试。一般来说,您可以编写自己的测试。DealHistoryGetter.mqh 文件创建历史报告,ReportGetter.mqh 文件计算文章中描述的指标。
,我对这些文件进行了一些修改,现在我正在写第二篇文章,我将附上这些类的新版本,其中包含更多指标并对代码进行了一些改进。
 
Aleksey Vyazmikin:

如何进行切换?

我还没有实现切换,测试脚本首先从文件中建立历史测试,然后从终端重复历史测试。要么手动分区不必要的测试,要么编写自己的测试。或者指定带有历史记录的测试文件的路径,然后进行所有测试(我的和你的历史记录)

 
Andrey Azatskiy:
您需要第二个测试。一般来说,您可以编写自己的测试。DealHistoryGetter.mqh 文件创建历史报告,ReportGetter.mqh 文件计算文章中描述的指标。 ,我对这些文件进行了一些修改,现在我正在写第二篇文章,我将附上这些类的新版本,其中包含更多指标并对代码进行了一些改进。

注释掉第二个测试就可以了吗?

//void test_1(string pathToFile_historyData);
void test_2(string pathToDir);

我更改了文件路径

//input string data_file_name ="C:\MQL5 history saving test\dealHistory.csv"; // 包含历史记录的 CSV 文件的路径
input string data_file_name ="C:\Program Files\ Opening Broker\MQL5\Files\dealHistory.csv";    // 历史记录 CSV 文件的路径
//input string report1_folder_name ="C:\\MQL5 test_1 to save report"; // folder for uploading the results of test #1
//input string report2_folder_name ="C:\MQL5 test_2 to save the report"; // folder for uploading the results of test #2
input string report1_folder_name ="C:\Program Files\ Opening Broker\MQL5\Files\1";                // 用于上传 1 号测试结果的文件夹
input string report2_folder_name ="C:\Program Files\ Opening Broker\MQL5\Files\2";                // 上传第 2 次测试结果的文件夹

结果出现了错误:

2018.09.01 18:48:38.386 Get_TradingHistory (GAZR Splice,H1)     Failed FindFirstFile ("C:\Program Files\Открытие Брокер\MQL5\Files ") with error: 7b
2018.09.01 18:48:38.386 Get_TradingHistory (GAZR Splice,H1)     Failed CreateDirectoryW ("C:\Program Files\Открытие Брокер\MQL5\Files ") with error: 7b
2018.09.01 18:48:38.391 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Графики PL.csv
2018.09.01 18:48:38.394 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Гистограмма PL.csv
2018.09.01 18:48:38.395 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \PL по дням.csv
2018.09.01 18:48:38.396 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Крайние точки.csv
2018.09.01 18:48:38.397 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Абсолютные показатели прибыли и убытка.csv
2018.09.01 18:48:38.398 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Проценты кол-ва сделок.csv
2018.09.01 18:48:38.399 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Таблица основных показателей.csv
2018.09.01 18:48:38.400 Get_TradingHistory (GAZR Splice,H1)     Error CopyFile C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv to C:\Program Files\Открытие Брокер\MQL5\Files \Краткая сводка по графику PL.csv
2018.09.01 18:48:38.436 Get_TradingHistory (GAZR Splice,H1)     An error occurred while test_11 !
2018.09.01 18:49:29.246 Get_TradingHistory (GAZR Splice,H1)     zero divide in 'DealHistoryGetter.mqh' (432,60)
 
Aleksey Vyazmikin:

要启用第二次测试,只需发表一条评论即可吗?

我已经更改了文件路径

结果出现错误:

是的,如果你注释掉 test_1(data_file_name,report1_folder_name);只有第二个测试才会运行。

1) 好吧,在"C:\Program Files/open Broker\MQL5\Files " 路径上打开 附有历史记录的文件是有效的 - 可能是权限问题,也可能是因为空格被挡住了,你似乎只能将文件夹作为文件打开。
2) 好吧,在你通过的路径上创建目录是有效的
3) 在您传入的路径上创建 csv 文件不起作用
4) 除以零(但如果历史记录是正确打开的,则不可能,因为在带地段数组的第一次迭代中,第一个值被输入到带地段数组中)。


我建议你将文件目录更改为桌面目录。

 
顺便说一句,在传递路径时,反斜杠应该被转义(写成 \\ )。
 

我更正了路径

//input string data_file_name ="C:\MQL5 history saving test\dealHistory.csv"; // 包含历史记录的 CSV 文件的路径
input string data_file_name ="C:{Program Files}{Program Files} {\Opening Broker\MQL5\Files\dealHistory.csv}";    // 历史记录 CSV 文件的路径
//input string report1_folder_name ="C:\\MQL5 test_1 to save report"; // folder for uploading the results of test #1
//input string report2_folder_name ="C:\MQL5 test_2 to save the report"; // folder for uploading the results of test #2
input string report1_folder_name ="C:{Program Files}{\Program Files} {\Opening Broker\MQL5\Files\1}";                // 用于上传 1 号测试结果的文件夹
input string report2_folder_name ="C:{Program Files}{\Program Files} {\Opening Broker\MQL5\Files\2}";                // 上传第 2 次测试结果的文件夹

仍然存在以下错误

2018.09.01 18:59:09.799 Get_TradingHistory (GAZR Splice,H1)     An error occurred while test_11 !
2018.09.01 19:00:01.201 Get_TradingHistory (GAZR Splice,H1)     zero divide in 'DealHistoryGetter.mqh' (432,60)

文件夹 1(report1_folder_name)中有文件,但文件夹 2 中没有。顺便问一下,没有摘要报告,我应该在哪个文件夹中找?在图表上,我看到了不同图表的制作过程,但我不知道这些图片放在哪里....。

我还能解决什么问题?

 
Aleksey Vyazmikin:

我更正了路径

这些错误依然存在

文件夹 1(report1_folder_name) 中有文件,但文件夹 2 中没有。顺便问一下,没有摘要报告,我应该在哪个文件夹中找?我可以看到图表上的不同图形,但不知道这些图片放在哪里....。

还有什么问题需要解决?

试着用本邮件附件中的 DealHistoryGetter.mqh 文件替换 DealHistoryGetter.mqh 文件。

附加的文件:
 
让我知道结果如何