自定义合约添加的困惑 - 页 2

Kang Feng  
Saji #:

再次按照“时间框”调整的要求,重新导入了一遍。。。结果仍是失败的。

1、在浏览栏中导入本地csv文件,仍是在导入窗口中能够看到数据。但在按下确定键后便没有反应;

2、时间框已经按照本地数据的时间范围,调整完毕。但没有结果,按下request键,系统显示0柱。说明本地csv数据根本没有导入;

3、在导入窗口中识别的本地数据的date也有问题——我的数据起始点为2021年,但系统识别为2019年。。。。

最后,我在附件中上传了我的本地数据。

哪位大佬可以导入试试看,到底错误在什么地方?


非常感谢


初步试验了一下, 应该是你的csv数据格式和MT5所需的导入格式不符.

我试着把你的原始数据的日期和时间从格式 2021/8/19,09:31:00,

改为

2021.08.19 09:31:00,

也就是说, 日期和时间是一个栏目而不是两个栏目, 并且日期的分隔符是.而不是/, 并且日期和时间之间的分隔符是一个半角空格而不是逗号

日期时间和OHLC价格数据之间, OHLC自身之间, 都是半角逗号作为分隔符

修改之后再导入MT5.

初步试验结果: 导入成功并正确显示.

再后面的交易量之类的数据我没有继续测试,你可以自己进行摸索.


我使用MT5的自定义Symbol功能很多年,但从来都是导入tick数据,从来没有导入过bar数据.

现在想想, 可能自己当年也摸索过MT5的数据导入格式, 自己还写了个专用于MT5历史数据从清洗到导入的小工具程序,因为一直用着很顺手也不需要修改, 所以把自己当年趟过的坑也淡忘了.

Li Bo  
shaokunw #:

请问通过MT5的自定义交易品种可否实现货币对的反向汇率显示?比如说改GBP/USD的图表显示为USD/GBP的?

谢谢!

可以的,公式也很简单,就是1/GBPUSD。


Saji  
Kang Feng #:


初步试验了一下, 应该是你的csv数据格式和MT5所需的导入格式不符.

我试着把你的原始数据的日期和时间从格式 2021/8/19,09:31:00,

改为

2021.08.19 09:31:00,

也就是说, 日期和时间是一个栏目而不是两个栏目, 并且日期的分隔符是.而不是/, 并且日期和时间之间的分隔符是一个半角空格而不是逗号

日期时间和OHLC价格数据之间, OHLC自身之间, 都是半角逗号作为分隔符

修改之后再导入MT5.

初步试验结果: 导入成功并正确显示.

首先,非常感谢您的测试和回复,不过我差不多要崩溃了。。。


1.根据您的建议,我做了以下工作:复制了我原始csv文件的头十行(不含表头),然后新建了一份测试csv文本。


2.将其中的date和time中的分隔符去除,从而合并为同一栏。并且将日期的分隔符及日期和时间之间的分隔符按照您的建议重新调整,结果如下:


3.将这份测试文本导入,但是这次MT5终端连文本内容都无法识别了


4.我们在导入时注意到,终端要求的导入文本为ASCII,而我们的文本为utf。因此,我们通过notepad++将编码格式也做了相应的调整。

然后,再次通过终端导入,结果仍是与3.的结果一样,无法显示文本的内容。


5.最后,我们还尝试将表头(date time,OHLC等都删除),但执行导入的时候所得结果完全一样——无法显示!


我们实在有些无语了。。。能够想到的问题如下:

  1. 我们修改后的csv文件,仍有细节与终端要求不符。>>>>>> 但已经没有进一步检查的思路了;
  2. 我们使用notepad++来修改文本,不能达到修改的目的。>>>>>> 这点请Kang Feng大佬说一下,您是如何修改文本的?(是在我的文本文件上修改?还是另外手动输入?)
  3. 使用的MT5终端的版本不对。>>>>>>我们的版本是最新的版本,不知大佬的版本是多少?版本对自定义合约的导入是否会产生影响?


谢谢,盼回复!

最后,附上我的测试文本。

附加的文件:
new_1.csv  1 kb
Saji  
Hung Wen Lin #:

整個過程我在論壇裡面已經說明清楚了 你可以翻閱看看

https://www.mql5.com/zh/forum/376228

是的是的,您的帖子我已经收藏了。。。

只是想先查查自己的手动导入过程,到底是哪一步出了问题。既然查不出,接下来就要按照您的帖子步骤操作了!

Saji  

经过一整天的工作,终于得到了初步的结果:

1、csv文件是否可以被识别,和文本的编码格式无关。UTF-8也是可以被识别的。

2、Date列和Time列必须分开,否则终端的导入窗口即无法识别。(上述Kang Feng网友的说法是错的)  

根据下帖Kang Feng的回复,这条结论可能是错误的。。。我们也不再进一步验证了!

3、我们的错误在文本文件的格式没有严格按照终端的要求。

4、感谢Hung Wen Lin的帖子及思路,将终端自己的M1数据、Daily数据导出,再反过来尝试导入,即可清楚的了解终端要求的格式。

稍后,会将自己的工作整理出来,供社区后来人参考。

Kang Feng  
Saji #:

经过一整天的工作,终于得到了初步的结果:

1、csv文件是否可以被识别,和文本的编码格式无关。UTF-8也是可以被识别的。

2、Date列和Time列必须分开,否则终端的导入窗口即无法识别。(上述Kang Feng网友的说法是错的)

3、我们的错误在文本文件的格式没有严格按照终端的要求。

4、感谢Hung Wen Lin的帖子及思路,将终端自己的M1数据、Daily数据导出,再反过来尝试导入,即可清楚的了解终端要求的格式。

稍后,会将自己的工作整理出来,供社区后来人参考。

我11月18日那次回复是下载了你的文本数据之后, 进行了多次尝试之后, 确认成功读入并显示, 才发表的回复.

我也是用的MT5最新release版本.

你再仔细看我那个回复, 日期格式应该是2021.08.19而不是2021.8.19, 差了一个0

还是你提供的new_1.csv这个文件,加一个0之后就可以正常导入了.

import

Saji  
Kang Feng #:

我11月18日那次回复是下载了你的文本数据之后, 进行了多次尝试之后, 确认成功读入并显示, 才发表的回复.

我也是用的MT5最新release版本.

你再仔细看我那个回复, 日期格式应该是2021.08.19而不是2021.8.19, 差了一个0

还是你提供的new_1.csv这个文件,加一个0之后就可以正常导入了.


哦,那这样看来,时间格式严格按照yyyy.mm.dd才是能否成功导入的关键吧。

感谢您的回复和帮助!

原因: