历史中心更新--自1999年以来免费的历史分钟报价 - 页 8 123456789101112131415...21 新评论 [删除] 2007.05.22 17:10 #71 Rosh: 唉,把 "图表上的最大条数"(今天约为300万),你可以观看任何日期。 也就是说,不可能设置一个任意的分段? 例如,只有2005年8月? Rashid Umarov 2007.05.22 17:16 #72 没有,为什么?文章"MetaTrader 4客户终端的秘密 " 描述了一些有用的东西,使生活更容易,这里是其中之一。 Алексей 2007.05.25 09:51 #73 你是否曾想取消对历史 和窗口中的条数 限制?或者做一个像无限制的复选框。这将使用户对其完全没有疑问。 你可以用一个更聪明的逻辑来替换窗口中的条数限制,即从文件中交换历史记录。会有一个用于显示的缓冲区,如果我们在这个缓冲区之外的数据上移动,那么在这个缓冲区中就会从一个文件中加载新的历史数据,而不是以前的--它可以在滚动时滞后一点,当然。尽管如果整个历史被加载或者作为滚动的历史深度可以放在由VirtualAlloc创建的缓冲区中,在这种情况下,内存将从交换文件中加载终端此刻访问的数据,而不是从内存中清除旧的,并保留在交换文件中--同样的缓冲但在操作系统的层面上。 Edgar Akhmadeev 2007.05.25 11:23 #74 elritmo: 你想取消对历史和窗口中的条数的限制吗?或者做一个复选框,比如无限制。 用户根本就不会有任何疑问。 你可以用一个更聪明的逻辑来替换窗口中的条数限制,即从文件中交换历史记录。会有一个用于显示的缓冲区,如果我们在这个缓冲区之外的数据上移动,那么在这个缓冲区中就会从一个文件中加载新的历史数据,而不是以前的--它可以在滚动时滞后一点,当然。尽管如果整个历史被加载或者作为滚动的历史深度可以放在由VirtualAlloc创建的缓冲区中,在这种情况下,内存将从交换文件中加载终端此刻访问的数据,而不是从内存中清除旧的,并保留在交换文件中--同样的缓冲但在操作系统的层面上。 上帝保佑,在寻呼机上! 对于那些把终端放在服务器上进行自动交易的人来说,限制历史记录也是必要的。他们需要最低限度的历史记录来使指标工作,并限制磁盘空间。 Алексей 2007.05.25 17:42 #75 做一个复选框,如无限或无限。 谁需要被限制,谁就会很容易做到。默认情况下,没有任何限制,所以你不必问:为什么我不能看到我所有的历史? [删除] 2007.05.28 15:52 #76 是的,而且每个人的内存默认是无限的...... 如果你展示所有的历史,就会有疑问,为什么事情会如此缓慢。 Алексей 2007.05.28 18:36 #77 你可以在滚动时从文件中加载历史记录。但在我看来,它的速度变慢了,因为内存是通过堆栈重新定位的。还有其他保留记忆的方法。我们建议对巨大的数组使用VirtualAlloc内存分配。Heap可以自由地用于不超过1Mbyte的动态数组 在MT中,我假设使用new[]操作符和cpymem函数或者malloc和realloc,然后调用HeapAlloc和HeapRealloc。如果你不能找到一块新的地址空间来放置一个又一个的项目,就会出现内存不足的信息(不确定这一点:))。或者,也许交换文件的大小在某些时候是不够的。 下面是一个例子,说明如何为时间序列使用虚拟内存而不是堆 。 MemManager::MemManager(int reg_size, int unt_size, void*& p) { unit_size = unt_size; SYSTEM_INFO si; GetSystemInfo(&si); page_size = si.dwPageSize; region_size = (reg_size / page_size) * page_size; if(reg_size % page_size != 0) region_size += page_size; next_page = region = (char*)VirtualAlloc(0, region_size, MEM_RESERVE, PAGE_READWRITE); p = region; capacity = 0; } MemManager::~MemManager() { VirtualFree(region, 0, MEM_RELEASE); } void MemManager::realloc(int sz) { size = sz*unit_size; if(size <= capacity) return; int tmp_size = size - capacity; int inc_size = (tmp_size / page_size) * page_size; if (tmp_size % page_size != 0) inc_size += page_size; char* p = (char*)VirtualAlloc(next_page, inc_size, MEM_COMMIT, PAGE_READWRITE); next_page += inc_size; capacity += inc_size; } [删除] 2007.05.28 23:04 #78 是的,是的,我也有很多关于如何改善世界各地经济的想法。 我还可以给耕作者提供宝贵的建议,告诉他们如何耕作,给妇女提供如何分娩。 而且我是这里最聪明的人,尽管我很穷......。 Алексей 2007.05.29 08:18 #79 聪明的人利用别人的想法;o) 有点像二战后的日本人...... [删除] 2007.06.20 14:05 #80 告诉我6E,欧元外汇货币-Globex的历史在历史中心丢失了? 为什么只下载最近两天的数据? 123456789101112131415...21 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
唉,把 "图表上的最大条数"(今天约为300万),你可以观看任何日期。
例如,只有2005年8月?
你可以用一个更聪明的逻辑来替换窗口中的条数限制,即从文件中交换历史记录。会有一个用于显示的缓冲区,如果我们在这个缓冲区之外的数据上移动,那么在这个缓冲区中就会从一个文件中加载新的历史数据,而不是以前的--它可以在滚动时滞后一点,当然。尽管如果整个历史被加载或者作为滚动的历史深度可以放在由VirtualAlloc创建的缓冲区中,在这种情况下,内存将从交换文件中加载终端此刻访问的数据,而不是从内存中清除旧的,并保留在交换文件中--同样的缓冲但在操作系统的层面上。
你想取消对历史和窗口中的条数的限制吗?或者做一个复选框,比如无限制。 用户根本就不会有任何疑问。
你可以用一个更聪明的逻辑来替换窗口中的条数限制,即从文件中交换历史记录。会有一个用于显示的缓冲区,如果我们在这个缓冲区之外的数据上移动,那么在这个缓冲区中就会从一个文件中加载新的历史数据,而不是以前的--它可以在滚动时滞后一点,当然。尽管如果整个历史被加载或者作为滚动的历史深度可以放在由VirtualAlloc创建的缓冲区中,在这种情况下,内存将从交换文件中加载终端此刻访问的数据,而不是从内存中清除旧的,并保留在交换文件中--同样的缓冲但在操作系统的层面上。
对于那些把终端放在服务器上进行自动交易的人来说,限制历史记录也是必要的。他们需要最低限度的历史记录来使指标工作,并限制磁盘空间。
如果你展示所有的历史,就会有疑问,为什么事情会如此缓慢。
你可以在滚动时从文件中加载历史记录。但在我看来,它的速度变慢了,因为内存是通过堆栈重新定位的。还有其他保留记忆的方法。我们建议对巨大的数组使用VirtualAlloc内存分配。Heap可以自由地用于不超过1Mbyte的动态数组
在MT中,我假设使用new[]操作符和cpymem函数或者malloc和realloc,然后调用HeapAlloc和HeapRealloc。如果你不能找到一块新的地址空间来放置一个又一个的项目,就会出现内存不足的信息(不确定这一点:))。或者,也许交换文件的大小在某些时候是不够的。
下面是一个例子,说明如何为时间序列使用虚拟内存而不是堆
。
我还可以给耕作者提供宝贵的建议,告诉他们如何耕作,给妇女提供如何分娩。
而且我是这里最聪明的人,尽管我很穷......。
聪明的人利用别人的想法;o) 有点像二战后的日本人......