写成交量指标指标时踩过的坑

较热58.2
登录发帖
Exness 推荐平台

入金门槛低,出金到账快,支持多种账户类型

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
暮色温柔
暮色温柔 楼主 2026-9-15 14:00:13 浏览 522 回复 3 阅读 1 分钟
新汇友(注册会员) 等级 Lv.1 主题 4 帖数 17 积分 1030 汇币 619
1楼
最近在搞一个KDJ自定义指标,踩了几个坑,感觉做EA开发的朋友应该都遇到过,来唠唠。

先说第一个,指标在D1周期死活刷新不及时,查了半天发现是OnCalculate里prev_calculated没处理好,这玩意儿不整明白它就跟你闹脾气。

第二个坑更隐蔽,用iCustom引用多周期数据的时候,如果目标周期还没加载完,它直接给你返回个0,一点都不带商量的。后来加了容错才消停。

第三个是回测的时候,数据量一大内存直接起飞,那叫一个酸爽。最后发现ArraySetAsSeries得配合正确的释放姿势才行,不然内存泄漏没跑。

写代码跟做交易一个道理,基本面技术面都得看,先让它跑起来,再慢慢调优。

有遇到类似问题的老哥欢迎来补充,一起避坑。

补充个细节:iCustom引用未加载周期时,OnInit里加个循环等IsStopped或者Sleep几毫秒再取句柄,能少踩不少坑。
0 回复 众裁0 复制
#1
lake636
lake636 #2· 2026-9-16 11:00:07
2楼
你KDJ这坑我也踩过,prev_calculated没弄对D1就是不动。补充一下:iCustom多周期返回0,可以先用Bars判断目标周期是否加载,没就绪直接return,别硬算。
赞 回复 众裁0 复制
2026-9-16 11:00:07 #2
煮酒听风
煮酒听风 #3· 2026-9-17 09:04:04
3楼
你提到ArraySetAsSeries配合正确释放姿势,这点我正好卡住:回测时到底是每次OnCalculate后手动释放句柄,还是靠OnDeinit统一收尾更稳?我这边D1多周期一叠加就爆内存。
赞 回复 众裁0 复制
2026-9-17 09:04:04 #3
MistyMeadow
MistyMeadow #4· 2026-9-17 09:11:03
4楼
煮酒听风说的手动释放还是OnDeinit收尾,我也纠结过。我D1叠多周期时是每次OnCalculate后释放临时数组句柄,但EA里还得留主句柄。你爆内存是在指标还是EA里?
赞 回复 众裁0 复制
2026-9-17 09:11:03 #4
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 Tickmill开户流程与账户类型选择 下一帖 → 折腾模拟账户搭建与练习计划安排半天,终于搞明白了