mql5语言的特点、微妙之处以及技巧 - 页 132 1...125126127128129130131132133134135136137138139...247 新评论 Nikolai Semko 2019.04.03 03:10 #1311 Igor Makanu:包裹在指标的类计算中--将缓冲区与类字段绑定在一起唉......。 这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。 只有通过改变TF才能清除记忆。 显然缺少按手柄清理内存的命令。例如,MemErase( int handle)。 Igor Makanu 2019.04.03 05:30 #1312 Nikolai Semko:唉......。 这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。只有通过改变TF才能清除记忆。显然缺少的是一个旨在通过手柄清除内存的命令。例如,MemErase( int handle)。1.你是否检查过一个对象指针和一个对象实例的组合(我指的是*)? 2.你是否写了析构函数并删除了其中的数组大小?(ArrayFree() 和 ArrayResize(arr,0,0) ) Alexey Viktorov 2019.04.03 06:15 #1313 Nikolai Semko:唉......。 这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。只有通过改变TF才能清除记忆。显然缺少的是一个旨在通过手柄清除内存的命令。例如,MemErase( int handle)。而你没有使用指标释放? 但我仍然认为这是一个空洞的承诺。你需要它做什么?绘制动画?那么对于交易呢?对移动平均线 进行平均,直到它达到一条直线? Andrey Khatimlianskii 2019.04.03 19:11 #1314 Nikolai Semko:唉......。 这并不奏效。即使缓冲区在类和句柄内部,所有内部创建的中间缓冲区仍然保留在RAM中,即使在类实例被删除之后。 只有通过改变TF才能清除记忆。 很明显,缺少一个按句柄清除内存的命令。例如,MemErase( int handle)。终端存储缓存一段时间,即使程序不使用它们。 你可以捕捉到内存被释放的时间。 Nikolai Semko 2019.04.03 20:33 #1315 Alexey Viktorov:您是否使用过IndicatorRelease? 但是,我仍然认为这是浪费时间。告诉我,你需要它做什么?画漫画?那么对于交易呢?对移动平均线进行平均,直到它达到一条直线?是的,谢谢你,阿列克谢。我已经忘记了这个功能。以前见过,但从未使用过。 我试过了。有些事情出了问题。它把它删除了,但删除后,一切都停止了。 我只是在计算指标 前的DrawSetup()函数中添加了一行代码,参数如下。 IndicatorRelease(handle); handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase); for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle); 指标根本停止工作,我还不明白原因。 阿列克谢-维克多罗夫。我认为这是一个徒劳的想法。我需要它做什么?画漫画?那么对于交易呢?对移动平均线进行平均,直到它达到一条直线?我绝对同意你的观点。这只是一个无用的玩具。 Nikolai Semko 2019.04.03 20:33 #1316 Andrey Khatimlianskii:终端会将缓存保留一段时间,即使程序不使用它们。 你可以计算出内存释放所需的时间。我等了6分钟,仍然没有任何东西被清除。 Nikolai Semko 2019.04.03 20:41 #1317 Igor Makanu:1.你是否检查了对象指针和对象实例的组合(我指*)? 2.你是否写了析构函数并删除了其中的数组大小?(ArrayFree() 和 ArrayResize(arr,0,0) )1.是的,我是通过指针、新建和删除来做的。 2.所以不存在阵列。也就是说,有内部数组,但它们没有名字。只有手柄号码。 而在for循环的每一次迭代中,句柄变量的值都会增加1。也就是说,内部缓冲区正在被乘以,所有之前的缓冲区都参与了下一个缓冲区的计算。 根据逻辑,我们应该在另一个全新的指标计算之前做IndicatorRelease(handle);,但我已经在上面 写了,这将杀死指标。目前还不清楚原因。 Alexey Viktorov 2019.04.03 21:17 #1318 Nikolai Semko:是的,谢谢你,阿列克谢。我已经忘记了这个功能。以前见过,但从未使用过。 试过了。有些事情出了问题。删了就删了,但删了之后,一切都停止了。 我只是在计算指标 前的DrawSetup()函数中添加了一行代码,参数如下。 指标根本停止工作,我还不明白原因。 我绝对同意你的观点。它只是一个无用的玩具。我不是这么想的。我认为我们应该做几个处理程序,比如说图表枚举器 currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 一旦你得到一个新的手柄,用过的手柄就可以像用过的一样被扔掉了。 Nikolai Semko 2019.04.03 21:29 #1319 Alexey Viktorov:我不是这么想的。我认为你必须做几把,比如说图谱搜索 而一旦你得到一个新的手柄,用过的那个就可以像用过的一样被丢弃了 ...这是不可能的。 Alexey Viktorov 2019.04.03 21:36 #1320 Nikolai Semko:不可能 为什么不呢? 1...125126127128129130131132133134135136137138139...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
包裹在指标的类计算中--将缓冲区与类字段绑定在一起
唉......。
这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。
只有通过改变TF才能清除记忆。
显然缺少按手柄清理内存的命令。例如,MemErase( int handle)。
唉......。
这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。
只有通过改变TF才能清除记忆。
显然缺少的是一个旨在通过手柄清除内存的命令。例如,MemErase( int handle)。
1.你是否检查过一个对象指针和一个对象实例的组合(我指的是*)?
2.你是否写了析构函数并删除了其中的数组大小?(ArrayFree() 和 ArrayResize(arr,0,0) )
唉......。
这并不奏效。即使缓冲区在类和句柄内部,所有创建的内部中间计算缓冲区仍然在RAM中,即使在类实例被删除之后。
只有通过改变TF才能清除记忆。
显然缺少的是一个旨在通过手柄清除内存的命令。例如,MemErase( int handle)。
而你没有使用指标释放?
但我仍然认为这是一个空洞的承诺。你需要它做什么?绘制动画?那么对于交易呢?对移动平均线 进行平均,直到它达到一条直线?
唉......。
这并不奏效。即使缓冲区在类和句柄内部,所有内部创建的中间缓冲区仍然保留在RAM中,即使在类实例被删除之后。
只有通过改变TF才能清除记忆。
很明显,缺少一个按句柄清除内存的命令。例如,MemErase( int handle)。
终端存储缓存一段时间,即使程序不使用它们。
你可以捕捉到内存被释放的时间。
您是否使用过IndicatorRelease?
但是,我仍然认为这是浪费时间。告诉我,你需要它做什么?画漫画?那么对于交易呢?对移动平均线进行平均,直到它达到一条直线?
是的,谢谢你,阿列克谢。我已经忘记了这个功能。以前见过,但从未使用过。
我试过了。有些事情出了问题。它把它删除了,但删除后,一切都停止了。
我只是在计算指标 前的DrawSetup()函数中添加了一行代码,参数如下。
指标根本停止工作,我还不明白原因。
我认为这是一个徒劳的想法。我需要它做什么?画漫画?那么对于交易呢?对移动平均线进行平均,直到它达到一条直线?
我绝对同意你的观点。这只是一个无用的玩具。
终端会将缓存保留一段时间,即使程序不使用它们。
你可以计算出内存释放所需的时间。
我等了6分钟,仍然没有任何东西被清除。
1.你是否检查了对象指针和对象实例的组合(我指*)?
2.你是否写了析构函数并删除了其中的数组大小?(ArrayFree() 和 ArrayResize(arr,0,0) )
1.是的,我是通过指针、新建和删除来做的。
2.所以不存在阵列。也就是说,有内部数组,但它们没有名字。只有手柄号码。
而在for循环的每一次迭代中,句柄变量的值都会增加1。也就是说,内部缓冲区正在被乘以,所有之前的缓冲区都参与了下一个缓冲区的计算。
根据逻辑,我们应该在另一个全新的指标计算之前做IndicatorRelease(handle);,但我已经在上面 写了,这将杀死指标。目前还不清楚原因。
是的,谢谢你,阿列克谢。我已经忘记了这个功能。以前见过,但从未使用过。
试过了。有些事情出了问题。删了就删了,但删了之后,一切都停止了。
我只是在计算指标 前的DrawSetup()函数中添加了一行代码,参数如下。
指标根本停止工作,我还不明白原因。
我绝对同意你的观点。它只是一个无用的玩具。
我不是这么想的。我认为我们应该做几个处理程序,比如说图表枚举器
一旦你得到一个新的手柄,用过的手柄就可以像用过的一样被扔掉了。
我不是这么想的。我认为你必须做几把,比如说图谱搜索
而一旦你得到一个新的手柄,用过的那个就可以像用过的一样被丢弃了 ...
这是不可能的。
不可能