最近在搞一个KDJ自定义指标,踩了几个坑,感觉做EA开发的朋友应该都遇到过,来唠唠。
先说第一个,指标在D1周期死活刷新不及时,查了半天发现是OnCalculate里prev_calculated没处理好,这玩意儿不整明白它就跟你闹脾气。
第二个坑更隐蔽,用iCustom引用多周期数据的时候,如果目标周期还没加载完,它直接给你返回个0,一点都不带商量的。后来加了容错才消停。
第三个是回测的时候,数据量一大内存直接起飞,那叫一个酸爽。最后发现ArraySetAsSeries得配合正确的释放姿势才行,不然内存泄漏没跑。
写代码跟做交易一个道理,基本面技术面都得看,先让它跑起来,再慢慢调优。
有遇到类似问题的老哥欢迎来补充,一起避坑。
补充个细节:iCustom引用未加载周期时,OnInit里加个循环等IsStopped或者Sleep几毫秒再取句柄,能少踩不少坑。
先说第一个,指标在D1周期死活刷新不及时,查了半天发现是OnCalculate里prev_calculated没处理好,这玩意儿不整明白它就跟你闹脾气。
第二个坑更隐蔽,用iCustom引用多周期数据的时候,如果目标周期还没加载完,它直接给你返回个0,一点都不带商量的。后来加了容错才消停。
第三个是回测的时候,数据量一大内存直接起飞,那叫一个酸爽。最后发现ArraySetAsSeries得配合正确的释放姿势才行,不然内存泄漏没跑。
写代码跟做交易一个道理,基本面技术面都得看,先让它跑起来,再慢慢调优。
有遇到类似问题的老哥欢迎来补充,一起避坑。
补充个细节:iCustom引用未加载周期时,OnInit里加个循环等IsStopped或者Sleep几毫秒再取句柄,能少踩不少坑。
