EA-45591 · 机器学习
LibHoughTransform
这是一个MQL5库文件,实现了线性霍夫变换(Hough Transform),一种用于在二维图像中检测直线的计算机视觉算法。它提供工厂函数创建霍夫变换对象,并从二值图像数据中提取直线参数(斜率和截距)。该代码是通用信号处理工具,并非交易EA。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
此代码并非交易策略,而是一个霍夫变换的数学库实现。它通过将图像空间中的像素映射到参数空间(rho-theta空间)来检测直线,每个非零像素对所有可能的theta角度投票,累积到二维累加器数组中。提取阶段通过寻找累加器中的局部最大值来识别最显著的直线,并使用非极大值抑制(清除峰值周围3x3邻域)来避免重复检测。最终将每条检测到的直线转换为y=a*x+b的斜截式参数输出。该库支持int和double两种数据类型,通过模板类实现类型泛化。然而,代码中完全没有交易逻辑、入场/出场条件、仓位管理或资金管理策略。
优势
- 模板化设计支持多种数据类型,具有良好的代码复用性
- 实现了非极大值抑制机制,避免重复检测同一条直线
- 将直线参数转换为直观的斜截式(y=ax+b),便于下游使用
- 工厂模式创建对象,支持未来扩展更多变换类型
- 预计算三角函数表,避免重复计算,提升性能
劣势
- findMax中的非极大值抑制仅清除3x3邻域,对于高分辨率累加器可能不够充分
- 缺少对输入图像有效性检查(如空图像或零尺寸图像的处理)
- 角度分辨率固定为M_PI/size,无法根据图像特征自适应调整
- 没有提供反向变换或验证功能来确认检测结果的可靠性
- 当sin(t)接近零时参数转换可能产生数值不稳定
改进建议
- 增加自适应非极大值抑制窗口大小,根据累加器分辨率动态调整
- 添加输入数据验证和边界检查,提高库的鲁棒性
- 增加对sin(t)接近零时的数值稳定性处理,防止除零或极大值
风险评估
总体风险: 安全
- 此为纯数学库,不涉及交易操作,无交易风险
- 数值稳定性问题仅在特定输入条件下可能出现
评估得分
代码质量4.0
策略逻辑3.0
风险管理5.0
稳健性3.0
创新性4.0
文档2.0
综合3.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
quants | N/A (constructor arg) | 量化参数,控制霍夫变换的角度和距离分辨率 |
lines | 8 | 提取的直线数量,每条线2个参数 |
type | TYPE_INT | 数据类型选择(TYPE_INT或TYPE_DOUBLE) |
同类 EA:机器学习
回测是历史模拟,不代表未来收益,不构成投资建议。