新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 839

 
CHART_SCALE 标度int从0到5是什么意思。
 
koctja:
CHART_SCALE 标度int从0到5是什么意思。
六个等级的图表比例
 

下午好!

问题:是否可以用MT4顾问打开 1-5GB大小的csv文件,并覆盖到相同大小的新csv/txt文件。

其本质是在文件中找到空条、巨型条和带刻度线的缺口。纠正它们,并在一个新文件中重写(1年是500-1000MB)。

P.S. 脚本和其他东西的工作,与分钟报价不提供。

谢谢你!

 
MqlDateTime time1;
datetime date=TimeCurrent();

 int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
   }
   TimeToStruct(date,time1);
   FileWrite(h,time1.year,time1.mon,time1.day);


该文件包含2019510

如何在不使用if的情况下,以简单的方式将零添加到一个月份?

 
psyman:


该文件包含2019510

如何在不使用if的情况下,以简单的方式将零添加到一个月份?

哪一个零?在哪里添加?我可以给你举个例子吗?

 
Artyom Trishkin:

什么是零?在哪里添加?你能给我一个例子吗?

当前日期写进文件,我得到的是2019510,而不是20190510

也许有一个格式化的设置,但帮助中没有这样说。

 
psyman:

当前日期写进文件,我得到的是2019510,而不是20190510

也许有一个格式化的选项,但帮助中没有这样说

FileWrite(h,(string)time1.year,IntegerToString(time1.mon,2,'0'),IntegerToString(time1.day,2,'0'));
它确实如此
Документация по MQL5: Преобразование данных / IntegerToString
Документация по MQL5: Преобразование данных / IntegerToString
  • www.mql5.com
[in]  Длина строки. Если длина полученной строки окажется больше указанной, то строка не усекается. Если длина полученной строки окажется меньше, то полученная строка будет дополнена слева символом-заполнителем.
 
Artyom Trishkin:
它说


奇怪的是,在TimeToStruct中没有进行填充。在IntegerToString 中寻找,我没有想到,因为都是写什么数据到文件中,谢谢。

 
psyman:


该文件包含2019510

如何在不使用if的情况下,以简单的方式将0添加到一个月份?

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

罗尼-铁

下午好!

问题:用MT4 EA是否可以打开 1-5GB大小的csv文件,并将其覆盖到相同大小的新csv/txt文件中。

我们的想法是在文件中找到空条、大点和空隙的tick报价。纠正它们,并在一个新文件中重写(1年是500-1000MB)。

P.S. 脚本和其他东西的工作,与分钟报价不提供。

谢谢你!

检查了,你可以。

1.打开2个文件,一个用来读,另一个用来写,同时读写

2.可以将一个文件读入一个数组,处理数据,然后将数组写入文件,但要注意,MT4是32位的,此类程序的内存限制在2GB,即ArrayResize()函数不会分配内存来调整数组的大小,https://docs.mql4.com/ru/array/arrayresize

SZY:我不提供剧本或类似的东西。

 
psyman:


奇怪的是在TimeToStruct中没有进行填充。我没有想到要在IntegerToString中寻找,因为写到文件中的数据并不重要,谢谢。

想到05将被写入int-variable而不是5这就更奇怪 了。

05已经是一个显示int-number - 在那里你必须指定 你想要的格式。

而这里是伊戈尔引用的一个例子,说明为什么你应该自己做。

关于交易、自动交易系统和测试策略的论坛

新手对MQL4的任何问题,对算法和代码的帮助和讨论

Igor Makanu, 2019.05.11 06:16

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

这个变体将显示已经格式化的日期。但不是你需要的方式(如你所指出的)。

关于交易、自动交易系统和交易策略测试的论坛

新手对MQL4的任何问题,对算法和代码的帮助和讨论

psyman, 2019.05.10 22:14

当前日期写入文件,我得到的是2019510而不是20190510

也许有一个格式化设置,但帮助中没有说。

阅读MqlDateTime结构的格式来理解。

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
原因: