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();
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
谢谢你的答复。
我正在写一个指标......不幸的是,这个指标的概念假设--当我们进入OnCalculate时,最佳的交易对已经选定,这听起来很可疑。
一般来说,在函数OnCalculate中,我们应该已经使用了在On Init中进行的计算和分析的结果。
我们不能把这些计算转移到OnCalculate上,因为我们没有时间在两个相邻的ticks之间进行所有的计算......
一切都变的很好,很容易。
把分析移到一个单独的函数中,并从OnCalculate 中调用它。如果没有数据,就退出OnCalculate,等待下一个tick。
事实上,指标在1-2秒后真正启动并不是一个问题。其他处理强依赖和异步进程的方式是不可能的,只有懒惰/按需初始化。
这样做的效果很好,也很容易。
把分析移到一个单独的函数中,并从OnCalculate中调用它。如果没有数据,就退出OnCalculate,等待下一个tick。
事实上,指标将在1-2秒内实际启动,这不是什么大问题。其他处理强依赖和异步进程的方式是不可能的,只有懒惰/按需初始化。
谢谢你的这个提示。由于某些原因,我没有想到这一点。我将尝试写我自己的 "伪init",尽管希望不大。我试着在OnInit中等待,但没有成功,我得到了LastError 4007。
err_array_resize_error
4007
没有足够的内存来重新分配一个阵列,或者试图调整一个静态阵列 的大小
阵列是动态的,也就是说,错误定义中关于"试图调整静态阵列的大小 " 的第二部分已经消失了,而且我很难 想象"没有足够的 内存来重新分配一个阵列"是什么意思。
我曾试图在另一个指标的基础上 制作一个指标。第一个指标选择一对,第二个指标在这一对上工作。
Renat的建议帮助很大,我在将iMA值转移到自定义缓冲区时遇到了问题,将代码从OnInit移到另一个函数,加上额外的检查,一切都正常了...现在我正在努力。
ZS 请告知最方便的方式来记录你自己在论坛上的帖子。我在哪里可以看到所有针对我的帖子(对我帖子的回复)?
我已经很久没有关注MT5的创新了,因此我可能会问一个很傻的问题。
我开始优化一个标准的专家顾问,速度很慢(全面搜索参数),但它将这种全面搜索限制在一些10490....。
日志中充满了一些:2012.07.13 21:48:10 核心5遗传通(494, 2560000)测试,错误 "无法初始化专家"
然后 2012.07.13 21:49:26 测试员的遗传优化在第9353关(816310000)完成。
什么样的基因传递?什么遗传优化?完全过冲,对吗?
我尝试了快速优化方法(遗传算法),看到了同样的情况。
我应该读什么文章?)。
我已经很久没有关注MT5的创新了,因此我可能会问一个很傻的问题。
我开始优化一个标准的专家顾问,速度很慢(全面搜索参数),它将这个全面搜索限制在一些10490....。
什么样的基因传递?什么遗传优化?完全的蛮力,对吗?
在32位版本中,当通过次数超过1,000,000时,遗传模式被激活。64位版本的完全蛮力限制为100,000,000。这在帮助 中有所描述。
这样做是为了自动帮助交易者不犯明显的错误。
日志中挤满了一些:2012.07.13 21:48:10 Core 5 genetic pass (494, 256000000) 测试时出现错误 "无法初始化专家"。
你必须看一下代码--或者你在初始化专家的过程中错过了内存或其他东西。
在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写同样的批处理文件,只是希望可能有类似的东西...
谢谢你。
哪些文件夹需要清理(删除日志,...等),以释放终端目录的空间。- 当然要留下脚本、指标、猫头鹰)以释放终端目录的空间?在测试和优化Expert Advisors 时,终端目录已经变成了80GB...是时候清理一下了。
理想情况下,我们应该创建类似于4的东西--文件clear.bat(清除一切不相干的东西,包括符号的历史报价,清理日志并使其与安装版本一致,当然,同时留下脚本、指标和专家顾问)。
如果有的话,你能给我一个MT5文件夹的描述链接吗?
我可能会自己寻找,并手动清理文件夹的内容,但同样的方式,我可以为MT5写同样的批处理文件,以备有类似的东西...
谢谢你。
MetaTrader 5 帮助 → 入门 →目录和文件结构
MetaTrader 5 帮助 → 入门 →目录和文件结构