错误、漏洞、问题 - 页 395

 

OnInit在指标中的工作很奇怪。如果终端在长时间不活动(几个小时)后启动,EventSetTimer 返回false,错误4102。如果我重新启动终端或只是改变时间框架,它就开始工作。我如何对抗它?

 
AlexeyFX:

OnInit在指标中的工作很奇怪。如果终端在长时间不活动(几个小时)后启动,EventSetTimer返回false,错误4102。如果我重新启动终端或只是改变时间框架,它就开始工作。我如何对抗它?

自ERR_CHART_NO_REPLY(4102)以来,多次尝试设置定时器(例如在一个循环中)是可能的,特别是在终端上升期。
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5
 

给开发者的问题。以前,在指标属性中的 "应用于 "菜单中,除了列出的其他内容外,你可以选择 "第一个指标的数据"。现在不可能做到这一点。

是不是因为某种原因被删除了?

 
请告诉我FileReadString()函数 从.csv文件中读取时如何移动文件指针?当我读到一个字符时,指针向右移动了142个字符--超过了文件的末端。如果你需要,我可以把代码布置出来。
Документация по MQL5: Файловые операции / FileReadString
Документация по MQL5: Файловые операции / FileReadString
  • www.mql5.com
Файловые операции / FileReadString - Документация по MQL5
 
molotkovsm:
请告诉我当从.csv文件中读取时,FileReadString()如何移动文件指针?

当用任何函数读取任何文件时,指针会被移动到读取的字节数上。

 
sergeev:

当用任何函数读取任何文件时,指针按读取的字节数移动。


然后告诉我我做错了什么,指针移位错了,下面是代码

void OnStart()
  {
int file_handle;
int value1;
int value2;
   file_handle=FileOpen("file01.csv", FILE_READ|FILE_CSV);
   value1=StringToInteger(FileReadString(file_handle));
   Print(value1,"     ",FileTell(file_handle));
   value2=StringToInteger(FileReadString(file_handle));
   Print(value2,"     ",FileTell(file_handle));
   FileClose(file_handle);
  }

日志中出现以下几行

2011.05.24 21:44:06 read_test (EURUSD,M1) 1 142

2011.05.24 21:44:06 read_test (EURUSD,M1) 0 286

file01.csv文件内容。

1;2;3;5;1.41299999;1.41250002;1.41199994;1.41149998;2011.05.24 17:23;5


 
添加FILE_ANSI
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
 
sergeev:

添加FILE_ANSI

补充说。

file_handle=FileOpen("file01.csv", FILE_READ|FILE_CSV|FILE_ANSI);

结果已经改变,但仍然不是你所期望的那样--第二行只改变了

2011.05.24 22:01:32 read_test (EURUSD,M1) 1 142
2011.05.24 22:01:32 read_test (EURUSD,M1) 0 288


 
molotkovsm:

补充说。

结果已经改变,但仍然不是它的样子--第二行只改变了


你没有设置 分隔符。它默认为'/t'。

而你要找的是';'。

 
sergeev:

你没有设置分界符,默认的分界符是'/t'

而且我看到你需要';'。

添加了分隔符,没有FILE_ANSI 似乎也能工作,谢谢你的帮助。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5