错误、漏洞、问题 - 页 775

 
Neofit:

谢谢你的答复。

我正在写一个指标......不幸的是,这个指标的概念假设--当我们进入OnCalculate时,最佳的交易对已经选定,这听起来很可疑。

一般来说,在函数OnCalculate中,我们应该已经使用了在On Init中进行的计算和分析的结果。

我们不能把这些计算转移到OnCalculate上,因为我们没有时间在两个相邻的ticks之间进行所有的计算......

一切都变的很好,很容易。

把分析移到一个单独的函数中,并从OnCalculate 中调用它。如果没有数据,就退出OnCalculate,等待下一个tick。

事实上,指标在1-2秒后真正启动并不是一个问题。其他处理强依赖和异步进程的方式是不可能的,只有懒惰/按需初始化。

 
Renat:

这样做的效果很好,也很容易。

把分析移到一个单独的函数中,并从OnCalculate中调用它。如果没有数据,就退出OnCalculate,等待下一个tick。

事实上,指标将在1-2秒内实际启动,这不是什么大问题。其他处理强依赖和异步进程的方式是不可能的,只有懒惰/按需初始化。

谢谢你的这个提示。由于某些原因,我没有想到这一点。我将尝试写我自己的 "伪init",尽管希望不大。我试着在OnInit中等待,但没有成功,我得到了LastError 4007。

err_array_resize_error

4007

没有足够的内存来重新分配一个阵列,或者试图调整一个静态阵列 的大小

阵列是动态的,也就是说,错误定义中关于"试图调整静态阵列的大小 " 的第二部分已经消失了,而且我很难 想象"没有足够的 内存来重新分配一个阵列"是什么意思

for(int i=0;i<100;i++)
        {int p99=CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1);
         if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)>0)       break;
         else  
         {
           Print("Getting MA is failed! Error",GetLastError()); 
           int err=GetLastError(); 
             Sleep(500);    
           //return(0);
         } 
         
        }
  
 
papaklass:
我曾试图在另一个指标的基础上 制作一个指标。第一个指标选择一对,第二个指标在这一对上工作。

Renat的建议帮助很大,我在将iMA值转移到自定义缓冲区时遇到了问题,将代码从OnInit移到另一个函数,加上额外的检查,一切都正常了...现在我正在努力。

ZS 请告知最方便的方式来记录你自己在论坛上的帖子。我在哪里可以看到所有针对我的帖子(对我帖子的回复)?

 

我已经很久没有关注MT5的创新了,因此我可能会问一个很傻的问题。

我开始优化一个标准的专家顾问,速度很慢(全面搜索参数),但它将这种全面搜索限制在一些10490....。

日志中充满了一些:2012.07.13 21:48:10 核心5遗传通(494, 2560000)测试,错误 "无法初始化专家"

然后 2012.07.13 21:49:26 测试员的遗传优化在第9353关(816310000)完成。


什么样的基因传递?什么遗传优化?完全过冲,对吗?

我尝试了快速优化方法(遗传算法),看到了同样的情况。

我应该读什么文章?)。

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Figar0:

我已经很久没有关注MT5的创新了,因此我可能会问一个很傻的问题。

我开始优化一个标准的专家顾问,速度很慢(全面搜索参数),它将这个全面搜索限制在一些10490....。


什么样的基因传递?什么遗传优化?完全的蛮力,对吗?

在32位版本中,当通过次数超过1,000,000时,遗传模式被激活。64位版本的完全蛮力限制为100,000,000。这在帮助 中有所描述。

这样做是为了自动帮助交易者不犯明显的错误。


日志中挤满了一些:2012.07.13 21:48:10 Core 5 genetic pass (494, 256000000) 测试时出现错误 "无法初始化专家"。

你必须看一下代码--或者你在初始化专家的过程中错过了内存或其他东西。

 
Renat:

在32位版本中,如果通过次数超过1,000,000,就会激活遗传模式。64位版本的完整运行限制为100,000,000。这在帮助 中有所描述。

这样做是为了自动帮助交易者不犯明显的错误。

谢谢你的答复。100 000 000对我来说已经足够了。

雷纳特

我必须看一下代码--或者内存不足,或者在专家顾问的初始化过程中出现了其他问题。

ExpertMACD标准....

 

https://www.mql5.com/ru/forum/1111/page775#comment_234266

从评分低的用户来看,显然这些错误是不相关的)。新建筑中也是如此。

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 0.01, 0.02, profit_USDJPY_1 ) 。

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 200.01, 200.02, profit_USDJPY_2 )。


Print("profit_USDJPY_1=", profit_USDJPY_1 , " profit_USDJPY_2=", profit_USDJPY_2 );

(EURUSD,M15) profit_USDJPY_1=500.0 profit_USDJPY_2=0.05

在交叉变体中,它工作得很好。

 

哪些文件夹需要清理(删除日志,...等),以释放终端目录的空间。- 当然要留下脚本、指标、猫头鹰)以释放终端目录的空间?在测试和优化Expert Advisors 时,终端目录已经变成了80GB...是时候清理一下了。

理想情况下,我们应该创建类似于4的东西--文件clear.bat(清除一切不相干的东西,包括符号的历史报价,清理日志并使其与安装版本一致,当然,同时留下脚本、指标和专家顾问)。

如果有的话,你能给我一个MT5文件夹的描述链接吗?

我可能会自己寻找,并手动清理文件夹的内容,但同样的方式,我可以为MT5写同样的批处理文件,只是希望可能有类似的东西...

谢谢你。

附加的文件:
clear.zip  1 kb
 
R0MAN:

哪些文件夹需要清理(删除日志,...等),以释放终端目录的空间。- 当然要留下脚本、指标、猫头鹰)以释放终端目录的空间?在测试和优化Expert Advisors 时,终端目录已经变成了80GB...是时候清理一下了。

理想情况下,我们应该创建类似于4的东西--文件clear.bat(清除一切不相干的东西,包括符号的历史报价,清理日志并使其与安装版本一致,当然,同时留下脚本、指标和专家顾问)。

如果有的话,你能给我一个MT5文件夹的描述链接吗?

我可能会自己寻找,并手动清理文件夹的内容,但同样的方式,我可以为MT5写同样的批处理文件,以备有类似的东西...

谢谢你。


MetaTrader 5 帮助 → 入门 →目录和文件结构

 
WWer:

MetaTrader 5 帮助 → 入门 →目录和文件结构

谢谢你。我将阅读它...