错误、漏洞、问题 - 页 2233

 
A100:

你不能删除--因为它是EA的代码,或者你想理解成千上万行的其他人的代码是不相关的--这导致只有一个时间延迟?

执行我上面给你的任务,并向公众报告结果。

我为什么要重复错误的代码????我为什么要使用一些未知的.ex文件????

如果在打开带有FILE_SHARE_READ|FILE_SHARE_WRITE 标志的文件时出现错误,请善意地重现这些问题,不要出现多余的、人为制造的错误。

 
Alexey Viktorov:

我为什么要重复一个错误的代码????我为什么要把一些未知的.eh文件链到?????

如果在打开带有FILE_SHARE_READ|FILE_SHARE_WRITE 标记的文件时出现错误,请重现这些问题,不要出现无关的、人为制造的错误。

你为什么认为代码是错误的?

我可以向你报告错误的方式是一样的,.ex文件不是给你的,而是给开发者的如果你想帮助简单的复制错误,你可以采用我的建议,如果你不想帮助,就不要用空洞的愤怒的帖子来打扰别人。

 
A100:

你为什么认为代码是错误的?

我可以报告错误的方式是我的方式。 我不是为你写的.ex文件,而是为开发者写 的。如果你想帮助简单地复制错误,你可以采用我的建议,如果你不想帮助,就不要用空洞的愤怒的帖子打扰别人

你的帖子更像是恶意的。我的请求

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

虫子,虫子,问题

Alexey Viktorov, 2018.07.23 14:16

奇怪的是,这并没有什么帮助。我只能在没有FILE_SHARE_WRITE 标志的情况下得到5004。

写入顾问中的文件在OnInit时打开,只在OnDeinit时关闭。同时,在读取顾问中,文件的读取和打印没有任何问题。

最好能说明你是如何编写文件的,以便更准确地复制你的行动。


不是对你说的,但你卡住了,把两年前的帖子塞进去了,在我看来,由于人为制造的错误,开发商没有注意到这一点。

我再说一遍:我为什么要复制一个人为制造的错误???????????。

 
Alexey Viktorov:

并再次指出:我为什么要复制一个人为制造的错误???????????。

解释一下什么是人为制造的错误?我不明白这句话
 
TheXpert:

试着在打开一个文件 进行书写(代码的第1部分)后,用Windows查看器查看它。至少它将清楚哪个手柄有问题。

如果它打开了--第二个,如果没有--第一个。

Windows将打开第一个文件。我在系统层面上看到,读、写、share_read标志被设置了。但在终端中,打开同一个文件进行阅读,产生的结果是5004。第一个专家顾问写到文件,也就是说,它不只是为了好玩而用一些标志打开。

当我有时间的时候,我将尝试做一个脚本来演示。但从这不是我写的第一篇,而且代码中也没有与文件有关的发展来看,这个曲率是存在的。

PS。也许谁已经在SD中写了?答案是什么?

 
A100:
严格来说,错误是由 不同的专家顾问 同时调用FileOpen( 文件名) 造成的 (标志不重要)。
标志FILE_SHARE_READ 实际上意味着非排他性的读取权限,至少在winapi原版中是这样。
 
Stanislav Korotky:

Windows打开第一个文件。

第二个Handle想要独占读取访问或其他未经授权的访问,尽管有标志。
 
A100:
解释一下什么是人为制造的错误?我不明白这句话。

我所说的没有任何潜台词。你必须了解什么是人造革。参照这一理解。

显示代码,不需要用模板和其他手鼓进行额外的操作,它返回错误ERR_CANNOT_OPEN_FILE与FILE_SHARE_READ|FILE_SHARE_WRITE 标志

如果在没有手鼓的情况下,错误没有重现,这意味着错误是在手鼓的过程中造成的...

我重复一下行动的顺序。

EA 1:

在OnInit中,一个二进制文件被打开以便写入。

每分钟都会将当前酒吧的开盘情况写到文件中。

该文件只在OnDeinit时关闭。

专家顾问2。

每分钟都会打开这个二进制文件。

读取最后一个条目,打印出来。

关闭该文件。

而且每分钟都在重复这个动作。


没有文件打开错误。

 

在这个简单的脚本中,先运行写=真,然后在另一个图表中运行写=假,我得到一个错误。

#property script_show_inputs

input bool writing = false;

int OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return INIT_FAILED;
  }
  
  if(writing) FileWriteInteger(handle, 0);
  
  Print("handle=", handle);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

  return 0;
}
 
Andrey Khatimlianskii:

在我的记忆中,它设置了一个超时时间,过了这个时间,价格就被认为无可救药地过时了。换句话说,如果它在3分钟内没有变化,你就不能打开它。

我为这种情况写了一个测试脚本。NoPrice是在最后一次嘀嗒声后64秒被捕获的。也许一分钟的暂停确实是值得的。我将不得不做一些研究...