mql5语言的特点、微妙之处以及技巧 - 页 52 1...454647484950515253545556575859...247 新评论 fxsaber 2017.08.04 11:02 #511 阿列克谢-纳沃伊科夫。 请纠正代码,第一个函数中的数字5而不是DealsNum。对INT_MAX 的检查没有意义谢谢你的调整。检查INT_MAX - 如果没有输入参数,专家顾问将不会放慢速度,也不会调用浪费的HistorySelect。 fxsaber 2017.08.04 17:52 #512 历史表中的订单是按下单时间(而不是执行/取消)排序的。在调用HistorySelect 时要考虑到这一点。 Artyom Trishkin 2017.08.04 17:54 #513 fxsaber: 历史表中的订单是按下单时间(而不是执行/取消)排序的。在调用HistorySelect 时要考虑到这一点。最好能在此基础上增加交易和职位的情况,以便有一个完整的画面。 fxsaber 2017.08.04 17:56 #514 阿尔乔姆-特里什金。最好能加上交易和职位的情况,以获得一个完整的画面。没有办法用职位--他们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME。 Artyom Trishkin 2017.08.04 17:59 #515 fxsaber:没有办法处理职位问题--它们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME。是的,但这些职位都在目前的名单中。 fxsaber 2017.08.04 18:01 #516 阿尔乔姆-特里什金。是的,但这些职位都在目前的名单上。请澄清一下,我完全不明白。 Artyom Trishkin 2017.08.04 18:09 #517 fxsaber:请澄清一下,我完全不明白。套期保值账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。 fxsaber 2017.08.04 18:34 #518 阿尔乔姆-特里什金。对冲账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。明白了。我还没有为自己澄清这一点,因为我还没有遇到可能需要这样做的情况。 fxsaber 2017.08.15 15:16 #519 在Agent作业堆栈的第一遍(例如在单个测试器运行中),EA启动和第一个NewTick事件之间的时间可能需要几秒钟。在堆栈的后续传递中,这个时间是零。一个作业堆栈的最后一个通道比前几个通道的Agent运行时间最多增加10%。 fxsaber 2017.08.15 15:30 #520 // Перемещение папки. Описание такое же, как у FileMove - https://www.mql5.com/ru/docs/files/filemove bool FolderMove( const string FolderNameSrc, const string FolderNameDst, const int Common_Flag = 0, const int Mode_Flags = FILE_REWRITE ) { if (FolderNameSrc == FolderNameDst) return(false); string FileName; const long handle = ::FileFindFirst(FolderNameSrc + "\\*", FileName, Common_Flag); bool Res = false; if (handle != INVALID_HANDLE) { do { const string TmpFileNameSrc = FolderNameSrc + "\\" + FileName; const string TmpFileNameDst = FolderNameDst + "\\" + FileName; if (::FileIsExist(TmpFileNameSrc, Common_Flag)) Res = ::FileMove(TmpFileNameSrc, Common_Flag, TmpFileNameDst, Mode_Flags); else { const string TmpFileNameSrc2 = ::StringSubstr(TmpFileNameSrc, 0, ::StringLen(TmpFileNameSrc) - 1); const string TmpFileNameDst2 = ::StringSubstr(TmpFileNameDst, 0, ::StringLen(TmpFileNameDst) - 1); if (!FolderMove(TmpFileNameSrc2, TmpFileNameDst2, Common_Flag, Mode_Flags)) Res = ::FolderCreate(TmpFileNameDst2, Mode_Flags & FILE_COMMON); } } while (::FileFindNext(handle, FileName)); ::FileFindClose(handle); } return(::FolderDelete(FolderNameSrc, Common_Flag) && Res); } Документация по MQL5: Файловые операции / FileMove www.mql5.com Файловые операции / FileMove - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 1...454647484950515253545556575859...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
请纠正代码,第一个函数中的数字5而不是DealsNum。对INT_MAX 的检查没有意义
谢谢你的调整。检查INT_MAX - 如果没有输入参数,专家顾问将不会放慢速度,也不会调用浪费的HistorySelect。
历史表中的订单是按下单时间(而不是执行/取消)排序的。在调用HistorySelect 时要考虑到这一点。
最好能在此基础上增加交易和职位的情况,以便有一个完整的画面。
最好能加上交易和职位的情况,以获得一个完整的画面。
没有办法用职位--他们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME。
没有办法处理职位问题--它们不在历史中。而与交易毫不含糊地--只有一个时间DEAL_TIME。
是的,但这些职位都在目前的名单中。
是的,但这些职位都在目前的名单上。
请澄清一下,我完全不明白。
请澄清一下,我完全不明白。
套期保值账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。
对冲账户的PositionsTotal()将返回什么?职位的数量。他们在某种列表中。它们又是如何分类的呢?这就是我所说的。
明白了。我还没有为自己澄清这一点,因为我还没有遇到可能需要这样做的情况。
在Agent作业堆栈的第一遍(例如在单个测试器运行中),EA启动和第一个NewTick事件之间的时间可能需要几秒钟。在堆栈的后续传递中,这个时间是零。
一个作业堆栈的最后一个通道比前几个通道的Agent运行时间最多增加10%。