错误、漏洞、问题 - 页 2238

 
fxsaber:

碰巧的是,16秒前收到的最后一次勾选并没有被视为与OrderSend有关。这一定是一个错误,毕竟。

这个错误

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

图书馆: MT4Orders

fxsaber, 2018.07.24 09:46

更新了应用程序中的脚本。快速发现,例如,像这样的问题
2018.07.24 10:24:19.177 Trades  '35247942': market buy 0.01 USDHKD
2018.07.24 10:24:19.246 Trades  '35247942': failed market buy 0.01 USDHKD [No prices]
2018.07.24 10:24:19.246 Trades  '35247942': buy limit 0.01 USDHKD at 7.83618
2018.07.24 10:24:19.315 Trades  '35247942': failed buy limit 0.01 USDHKD at 7.83618 [No prices]
2018.07.24 10:24:19.316 Trades  '35247942': buy stop 0.01 USDHKD at 7.85618
2018.07.24 10:24:19.384 Trades  '35247942': failed buy stop 0.01 USDHKD at 7.85618 [No prices]

如果你在运行前在 "市场概览 "中启用所有符号,你可以在大约一分钟内用这个脚本在ForexTimeFXTM-Demo01上再现。

 
Ilyas:

这是一个系统限制(WinAPI)。

这里有正确的标志,使你的代码工作。

来吧)。

我们检查过了--Windows可以打开该文件,但脚本不能。问题出在FILE_SHARE_READ 标志上。

 
fxsaber:

请修复文件加载

谢谢你的帖子。

为FileLoad/FileSave函数的实现增加了FILE_FLAG_SHARE_READ | FILE_FLAG_SHARE_WRITE标志。

请注意,当同时写和读同一个文件时,必须正确组织同步,因为读的结果将是不确定的。

 
Ilyas:

谢谢你的留言。

为FileLoad/FileSave函数的实现增加了FILE_FLAG_SHARE_READ | FILE_FLAG_SHARE_WRITE标志。

请注意,当同时写和读同一个文件时,必须正确组织同步,因为读的结果将是不确定的。

谢谢你的纠正,正时耙应该不会受到影响。

 
Creating and Opening Files
Creating and Opening Files
  • 2018.05.31
  • Michael Satran
  • docs.microsoft.com
Considerations for creating or opening a file by using the CreateFile function.
 

如何处理这一事实?

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

虫子,虫子,问题

fxsaber, 2018.07.23 16:48

显然这是一个错误,因为有了这样的标志,第三方应用程序读取文件就没有任何问题。


此类文件。

FILE_READ | FILE_WRITE | FILE_IS_TEXT | FILE_SHARE_READ

我在TotalCommander中查看,没有FileClose。如果没有FILE_SHARE_READ,就不能工作。

 
Ilyas:

我建议阅读它

是的,我正准备扔进去。

我承认我错了。如果第一个句柄是为写而开放的,那么第二个句柄必须添加FILE_SHARE_WRITE 标志。

但有一个来自A100的评论,根本就没有记录
 
Ilyas:

开启者不能使用FILE_SHARE_WRITE(允许写入)标志进行读取,因为有一个写入者。

这是一个系统限制(WinAPI)。

这里有正确的标志,你的代码将在这些标志下工作。

我也读MSDN。解释一下,是微软不懂英语,还是他们自己不看他们的文档,还是最后一种选择--MQL中的标志的命名与WinApi相似,但工作方式不同?

摘自这里 - https://docs.microsoft.com/en-us/windows/desktop/api/FileAPI/nf-fileapi-createfilea

FILE_SHARE_READ -启用对一个文件或设备的后续打开操作,请求读取访问。否则,其他进程如果请求读取访问,就不能打开该文件或设备

FILE_SHARE_WRITE -启用对一个文件或设备的后续打开操作,以请求写访问。否则,其他进程如果请求写访问,就不能打开该文件或设备

因此,第一个程序只需要设置FILE_SHARE_READ,第二个程序就可以读取。FILE_SHARE_WRITE只有在已知第二个程序也将写入文件时才必须被设置。

CreateFileA function
CreateFileA function
  • 2018.06.14
  • windows-sdk-content
  • docs.microsoft.com
Creates or opens a file or I/O device. The most commonly used I/O devices are as follows:\_file, file stream, directory, physical disk, volume, console buffer, tape drive, communications resource, mailslot, and pipe.
 

给开发者的问题。

有一个同步功能。

//+------------------------------------------------------------------+
//| Проверка синхронизации символов                                                                                             |
//+------------------------------------------------------------------+
bool CheckSync()
        {
         //--- Проверка синхронизации символов
         if( !SymbolIsSynchronized( inpSymbol_1 ) )
                {
                 Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": SymbolIsSync("+inpSymbol_1+") = false!" );
                 return( false );
                }
         if( !SymbolIsSynchronized( inpSymbol_2 ) )
                {
                 Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": SymbolIsSync("+inpSymbol_2+") = false!" );
                 return( false );
                }
         //--- Если символы синхронизированы
         return( true );
        }

我有时会遇到这样的错误。

2018.07.24 15:14:27.415 Indicator (USDJPY,M5)   CheckSync: ОШИБКА #4014:  SymbolIsSync(EURGBP) = false!

例如,该指标在USDJPY上运行,而我在EURGBP符号上得到一个错误。同时,在终端有一个开放的 EURGBP图表

错误4014说。

系统函数不允许被调用

怎么可能呢?

 
TheXpert:

是的,我正准备扔进去。

我承认我错了。如果第一个句柄是为写而开放的,第二个句柄必须添加FILE_SHARE_WRITE 标志。

但也有一条 来自A100的评论,根本没有记录。
在我的案例中,ServiceDesk现在写道,它不能播放...需要房间的帮助......稍后我将描述如何做到这一点......