需要帮助!无法解决这个问题,我遇到了硬件限制 - 页 16 1...9101112131415161718192021 新评论 Nikolay Likhovid 2014.08.21 08:29 #151 komposter: 有这样一个文件,如何计算序列的最后X个交易的标准?我们有一个文件的片段在我们的内存中,通过它并形成一个必要长度的样本来计算标准,只选择属于同一序列的交易。然后我们在这个样本上计算出标准。顺便说一下,在选择时有可能使用递归,按照想法。还是我没有理解这个问题?P.S. 当然,在形成样本时,我们必须在文件上往后走。 Sergey Dzyublik 2014.08.21 08:53 #152 Candid:我们有一个文件的片段在我们的内存中,通过它并形成一个必要长度的样本来计算标准,只选择交易,属于同一序列。然后我们在这个样本上计算出标准。顺便说一下,在选择时有可能使用递归,按照想法。还是我误解了这个问题?P.S. 当然,在形成样本时,我们必须在文件上往后走。插入新数据的问题 - 以某种方式解决它。如果去把白袜子扔到一个篮子里,把黑袜子扔到另一个篮子里,然后问谁在那里,数量多少,那就更容易了,为什么要多次去挑选白袜子呢? TheXpert 2014.08.21 08:57 #153 komposter:读取一个大块。块的大小是由截至寻找日期的交易数量决定的,这些交易是在一个特定的序列中。 顺便说一下,如果每个序列的起点是已知的,可以通过二进制搜索 来寻找所需的日期,因为交易是按时间排序的。 Nikolay Likhovid 2014.08.21 09:01 #154 ALXIMIKS:插入新数据的问题 - 以某种方式解决它。为什么要经过多次选择白袜子,因为把白袜子扔到一个篮子里,把黑袜子扔到另一个篮子里,然后问谁在那里,数量是多少,这更容易。太多的数据也是不好的 :)问题是,在这里被选中的不是白人和黑人,而是那些在当地比较白的人。因此,计算全球的黑度并不能挽救。顺便说一下,我在这个主题中开始只是建议连续计算标准。P.S.顺便说一下,没有人阻止一起处理一些文件--只是每个人的缓存要少做。但它似乎对缓存大小有保留。 也就是说,新的数据可以简单地累积到另一个文件中。P.P.S.顺便说一下,把文件切成几个小文件,可以缓解分类的问题。 Eugeniy Lugovoy 2014.08.21 10:11 #155 komposter:1.如果 "标准 "是静态的...如果它的参数发生变化怎么办?2.是的,那么就会有一个交易。但重新计算只需要最近的数据,没有必要撼动整个历史。3.这是一个工具...4.没错。1.从我上面说的"让标准是序列中最后20次交易的平均利润。"这应该被理解为一个标准,对利润的期望值的移动。还有哪些人?在数据库中,生成一个带有序列标识符和相应移动平均线 的表格。不符合条件的序列应立即删除。这应该由DBMS级别的并发模式程序完成,根据机器人的要求,在机器人中显示进程状态。让我们说,FilterAvgProfit(pProfitValue,pTrades,pDeviation)。 其中pProfitValue是目标利润,pTrades是移动平均利润的交易数,pDeviation是pProfitValue的允许偏差。结果是--用序列ID和利润的平均值填充表格。同样,你可以为每个标准编写存储程序。2.如果部分数据被丢弃(使用 "新鲜数据",而不是100万),将带来性能上的提升。3.从声明中并不十分清楚。现在好了。4.我理解,如果我们看的是一个策略选择,这个操作不应该太频繁(比如说,在每个柱子上或紧接着开单前)。这种方法是合理的,如果目前的策略显示连续N次亏损的交易--那么我们可以选择另一个策略,它需要时间来 "做决定",没有什么可避免的。或者,每周进行一次这样的选择(在周末,当市场关闭时),并且,或确认当前选择的策略,或传递到另一个策略。在给定的条件下,有可能为交易者制定一份最佳推荐策略清单。然后,当市场开盘后,在头脑清醒的情况下(周一),交易员将确认选择(或更早,在开盘前......电子邮件提醒等)。像这样的地方。 Sergey Dzyublik 2014.08.21 10:29 #156 Память выделяется однократно для массива структур последовательностей.序列的结构包括:编号,序列所有交易的结构阵列[X],标准值,文件指针位置。下一步只是填充结构中的元素(包括交易的数组)。阵列中的交易是移位的,所以内存中每个序列总是只有X个交易。你为一个结构数组分配内存并获得。阵列没有。 一个由序列[X]的所有交易结构组成的数组。一个标准值的数组。 一个文件指针位置的数组。为什么需要标准值阵列和 文件索引位置阵列?(你有没有想过储存一个标准器和最后的贸易?)得到了它的权利。第一遍--在从0到SeekDate的区间内搜索然后找到最佳标准,FindDate=交易收盘时间+1现在搜索从"交易收盘时间 "到SeekingDate的时间间隔?而你需要在这个区间内有X次交易来计算每个序列的标准? Renat Fatkhullin 2014.08.21 11:58 #157 komposter:分享我的研究结果。二进制缓存文件的读取量为7529MB。从硬盘:212.3秒(35.46MB/秒)。从RAM磁盘:88.1秒(85.46MB/秒)。虽然我有最普通的硬盘(虽然,内存也不快),但很难称得上是宇宙的差异。结论:从RAM磁盘上读取大文件的速度提高了约2.5倍。奇怪的结果。下面是我们的工作服务器系统在负载下的情况。带SSD:每秒200Mb,NTFS含RAM:2000-2500Mb/秒,FAT32,Softperfect RAM Disk 3.4.5如果没有RAM磁盘,建立项目 的时间就会延长许多倍。 Sergey Dzyublik 2014.08.21 12:21 #158 Renat:奇怪的结果。下面是我们的生产服务器系统在负载下的情况。带SSD:每秒200Mb,NTFS含RAM:2000-2500Mb/秒,FAT32,Softperfect RAM Disk 3.4.5如果没有RAM磁盘,建立项目的时间就会延长许多倍。 这就是我所说的--你必须大块地读取大文件,否则小文件可能需要10倍的时间。 Eugeniy Lugovoy 2014.08.21 13:44 #159 papaklass:在我看来,问题的解决方案在于对原始数据进行编码。如果你不能逃脱多次读取原始数据的命运,你需要将其转换为可接受的格式,以便多次读取。一个可能的选择是将每条记录转换为16位数字。原始记录的每一个字段都应该被分配一个特定的数字位数。比如说。数字的最有效数字。- "0 "表示负的交易结果。- "1 "表示一个交易的积极结果。数字的下位数。- "0 "表示买入交易。- "1 "意味着卖出交易。等等。因此,与其重复读取一个有许多字段的源文件,不如将工作减少到重复读取一个数字字段,这应该会带来显著的速度提升。总的来说,源文件可以立即以编码格式生成,尽管其中的信息,将以非视觉形式出现。但不是在 "16位",而是在64位,安德鲁有一个x64处理器,所以访问内存时的最小体积单位是64位。即使你从内存中读取一个字节,处理器仍然会读取8个字节(两个双字)。 Eugeniy Lugovoy 2014.08.21 13:45 #160 komposter:是的,在这种形式下,任务是并行的--每次SeekDate 改变时,你可以在序列集的不同部分上同时运行最佳标准的搜索。例如,我们把它们分成20个部分,把任务交给20个专家顾问。而他们应该读取文件,找到交易,并只发回最佳序列(№№,标准和文件位置)。非常感谢您!你去那里,另一件事))。 1...9101112131415161718192021 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们有一个文件的片段在我们的内存中,通过它并形成一个必要长度的样本来计算标准,只选择属于同一序列的交易。然后我们在这个样本上计算出标准。顺便说一下,在选择时有可能使用递归,按照想法。
还是我没有理解这个问题?
P.S. 当然,在形成样本时,我们必须在文件上往后走。
我们有一个文件的片段在我们的内存中,通过它并形成一个必要长度的样本来计算标准,只选择交易,属于同一序列。然后我们在这个样本上计算出标准。顺便说一下,在选择时有可能使用递归,按照想法。
还是我误解了这个问题?
P.S. 当然,在形成样本时,我们必须在文件上往后走。
插入新数据的问题 - 以某种方式解决它。
如果去把白袜子扔到一个篮子里,把黑袜子扔到另一个篮子里,然后问谁在那里,数量多少,那就更容易了,为什么要多次去挑选白袜子呢?
读取一个大块。块的大小是由截至寻找日期的交易数量决定的,这些交易是在一个特定的序列中。
插入新数据的问题 - 以某种方式解决它。
为什么要经过多次选择白袜子,因为把白袜子扔到一个篮子里,把黑袜子扔到另一个篮子里,然后问谁在那里,数量是多少,这更容易。
太多的数据也是不好的 :)
问题是,在这里被选中的不是白人和黑人,而是那些在当地比较白的人。因此,计算全球的黑度并不能挽救。顺便说一下,我在这个主题中开始只是建议连续计算标准。
P.S.顺便说一下,没有人阻止一起处理一些文件--只是每个人的缓存要少做。但它似乎对缓存大小有保留。
也就是说,新的数据可以简单地累积到另一个文件中。
P.P.S.顺便说一下,把文件切成几个小文件,可以缓解分类的问题。
1.如果 "标准 "是静态的...如果它的参数发生变化怎么办?
2.是的,那么就会有一个交易。但重新计算只需要最近的数据,没有必要撼动整个历史。
3.这是一个工具...
4.没错。
1.从我上面说的"让标准是序列中最后20次交易的平均利润。"这应该被理解为一个标准,对利润的期望值的移动。还有哪些人?
在数据库中,生成一个带有序列标识符和相应移动平均线 的表格。不符合条件的序列应立即删除。这应该由DBMS级别的并发模式程序完成,根据机器人的要求,在机器人中显示进程状态。
让我们说,FilterAvgProfit(pProfitValue,pTrades,pDeviation)。
其中pProfitValue是目标利润,pTrades是移动平均利润的交易数,pDeviation是pProfitValue的允许偏差。
结果是--用序列ID和利润的平均值填充表格。
同样,你可以为每个标准编写存储程序。
2.如果部分数据被丢弃(使用 "新鲜数据",而不是100万),将带来性能上的提升。
3.从声明中并不十分清楚。现在好了。
4.我理解,如果我们看的是一个策略选择,这个操作不应该太频繁(比如说,在每个柱子上或紧接着开单前)。这种方法是合理的,如果目前的策略显示连续N次亏损的交易--那么我们可以选择另一个策略,它需要时间来 "做决定",没有什么可避免的。或者,每周进行一次这样的选择(在周末,当市场关闭时),并且,或确认当前选择的策略,或传递到另一个策略。在给定的条件下,有可能为交易者制定一份最佳推荐策略清单。然后,当市场开盘后,在头脑清醒的情况下(周一),交易员将确认选择(或更早,在开盘前......电子邮件提醒等)。
像这样的地方。
Память выделяется однократно для массива структур последовательностей.
序列的结构包括:编号,序列所有交易的结构阵列[X],标准值,文件指针位置。
下一步只是填充结构中的元素(包括交易的数组)。阵列中的交易是移位的,所以内存中每个序列总是只有X个交易。
你为一个结构数组分配内存并获得。
阵列没有。
一个由序列[X]的所有交易结构组成的数组。
一个标准值的数组。
一个文件指针位置的数组。
为什么需要标准值阵列和 文件索引位置阵列?(你有没有想过储存一个标准器和最后的贸易?)
得到了它的权利。
第一遍--在从0到SeekDate的区间内搜索
然后找到最佳标准,FindDate=交易收盘时间+1
现在搜索从"交易收盘时间 "到SeekingDate的时间间隔?
而你需要在这个区间内有X次交易来计算每个序列的标准?
分享我的研究结果。
二进制缓存文件的读取量为7529MB。
结论:从RAM磁盘上读取大文件的速度提高了约2.5倍。
奇怪的结果。
下面是我们的工作服务器系统在负载下的情况。
如果没有RAM磁盘,建立项目 的时间就会延长许多倍。
奇怪的结果。
下面是我们的生产服务器系统在负载下的情况。
如果没有RAM磁盘,建立项目的时间就会延长许多倍。
在我看来,问题的解决方案在于对原始数据进行编码。
如果你不能逃脱多次读取原始数据的命运,你需要将其转换为可接受的格式,以便多次读取。
一个可能的选择是将每条记录转换为16位数字。原始记录的每一个字段都应该被分配一个特定的数字位数。比如说。
数字的最有效数字。
- "0 "表示负的交易结果。
- "1 "表示一个交易的积极结果。
数字的下位数。
- "0 "表示买入交易。
- "1 "意味着卖出交易。
等等。
因此,与其重复读取一个有许多字段的源文件,不如将工作减少到重复读取一个数字字段,这应该会带来显著的速度提升。
总的来说,源文件可以立即以编码格式生成,尽管其中的信息,将以非视觉形式出现。
但不是在 "16位",而是在64位,安德鲁有一个x64处理器,所以访问内存时的最小体积单位是64位。即使你从内存中读取一个字节,处理器仍然会读取8个字节(两个双字)。
是的,在这种形式下,任务是并行的--每次SeekDate 改变时,你可以在序列集的不同部分上同时运行最佳标准的搜索。例如,我们把它们分成20个部分,把任务交给20个专家顾问。而他们应该读取文件,找到交易,并只发回最佳序列(№№,标准和文件位置)。
非常感谢您!
你去那里,另一件事))。