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

 
igrok333:

如何读取文件的第8行?

问题与文件操作有关

https://docs.mql4.com/ru/files


mql中的一切都由蛮力完成,有人曾告诉我?


你就不能用其他方法吗?

所有的数据类型都有一定的占用内存的大小,单位是字节。相应地,在编写代码时,你可以使用它,将文件指针转移到一个字符串的数据所占用的字节数上。

如果一行包含4个双数类型的值,则需要4*8=32个字节。分别来说,为了读取文件的第9行,我们需要将文件指针移到256字节的位置。

bool  FileSeek(
   int                  file_handle,     // handle файла
   long                 offset,          // в байтах 
   ENUM_FILE_POSITION   origin           // позиция для отсчета
   );
bool  FileSeek(file_handle, 265, SEEK_SET);

如果从文件的末尾移位,那么该值必须是负值。

但是,这并不是那么顺利。前段时间,我处理了这个问题,发现.txt和.csv文件不能正常使用,但.bin文件不会出错。也许这个问题已经被解决了,你可能会很幸运。

 
Alexey Viktorov:

如果有4个类型为double的值

csv文件中的所有数值不都是字符串吗?


我为文件中的每一行都准备了一个词。
所以我有大小为12字节的字符串值。
因此,为了到达第8行,我需要将马车移位84字节。

bool  FileSeek(file_handle, 84, SEEK_SET);

谢谢你提供的信息。

 
我如何在mql 5中循环查看所有未结头寸
 
Roman Sharanov:
在mql 5中如何对所有未结头寸 进行循环?
这就是mql4的主题
 
igrok333:
这就是mql4的主题

不,这个话题既是mql4又是mql5

 
Roni Iron:

下午好!

问题:如何在终端 加快测试器的速度?

我让它只使用4个CPU线程中的1个,而且只有150mb的内存。(即它不使用我的电脑的所有功率)。

有哪些选择?

如果这个问题已经讨论过了,请放下链接。

如果是MT4,那么只有CPU频率在这里起作用。使用一条线?你可以同时启动4个MT4终端,进行不同的测试或优化任务。你将得到与一个终端相同的CPU负载。

 
Roman Sharanov:
我怎样才能在mql5中循环浏览所有未结头寸

mql5对头寸和订单进行了区分。仓位是交易的结果。而交易是订单触发的结果。

首先,一个交易请求被发送到服务器,然后出现一个挂单(如果请求是为了设置一个)或一个市场订单(如果请求是为了开仓)。

如果市价单被触发(发生了交易),就会出现一个头寸(或现有头寸被修改),作为这个交易的结果。

在对冲账户上,可以有许多独立的头寸(包括多方向的),在净额结算账户上,只能有一个头寸。

所以,要循环浏览所有的位置,你需要按照它们的数量来组织循环--分别使用PositionsTotal()而不是通常的mql4 OrdersTotal()。

如果你想在mql5中循环所有订单,那么(在mql5中)使用通常的mql4 OrdersTotal()。

 
igrok333:

但是,csv文件中的所有数值不都是字符串吗?


我为文件中的每一行都准备了一个词。
所以我有大小为12字节的字符串值。
因此,为了到达第8行,我需要将马车移位84字节。


谢谢你提供的信息。

该文本文件只能逐行读取。没有其他方法来计算行数。所以--是的,只有通过使用FileReadString在循环中连续读取。

 

我使用ObjectCreate(name,OBJ_FIBO,...)在图表中创建斐波那契水平,然后使用ObjectSetFiboDescription(name,0,"...")并设置水平描述,但名称应远离右边缘。我增加了留白,但它不仅把文字移开,而且还覆盖了行。另外,如果你添加更多的空格,文本就会停止向后移动。
问题:我可以在文本中添加一个 "隐形 "符号,这样它就不会覆盖它下面的线?


 
Maxim Khrolenko:

我使用ObjectCreate(name,OBJ_FIBO,...)在图表中创建斐波那契水平,然后使用ObjectSetFiboDescription(name,0,"...")并设置水平描述,但名称应远离右边缘。我增加了留白,但它不仅把文字移开,而且还覆盖了行。另外,如果你添加更多的空格,文本就会停止向后移动。
问题:我能否在文本中添加一个 "隐形 "符号,使其不覆盖其下的线?

尝试点和一个代码为0的字符