EA-44056 · 辅助工具
check
这个EA监控已有持仓,当盈利或亏损达到用户设定的账户余额百分比时自动平仓。它本身不开仓,仅作为其他持仓的风险/收益管理工具。盈亏阈值根据当前账户余额动态计算。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
该EA的策略概念是作为持仓的盈亏监控器,而非独立的交易策略。入场条件方面,EA本身不产生任何入场信号,仅依赖于外部手动或其他EA开仓后进行监控。出场条件为:当持仓盈利达到账户余额的ProfitPercentage(默认2%)时平仓获利,或当亏损达到RiskPercentage(默认1%)时止损平仓。仓位管理方面,EA不涉及任何仓位计算或开仓逻辑。资金管理方面,盈亏阈值基于AccountBalance动态计算,但存在重大缺陷——盈亏金额以货币单位计算,而currentProfit的计算使用了Point()将价格差转换为点值,两者单位不匹配,导致逻辑错误。此外,EA缺少对持仓魔术号码的过滤,可能误关其他EA的仓位。
优势
- 简单直观的风险管理逻辑,盈亏比例可配置
- 动态基于账户余额计算阈值,适应资金变化
- 遍历持仓时使用倒序循环,避免索引错位问题
- 使用了标准库CTrade和CSymbolInfo,代码结构清晰
劣势
- 致命单位不匹配Bug:currentProfit用Point()计算为点值,而riskAmount/profitAmount为货币金额,两者无法正确比较
- 缺少魔术号码过滤,会管理所有EA的持仓而非仅管理自身仓位
- 没有开仓逻辑,纯粹依赖外部开仓,作为独立EA功能不完整
- 没有考虑手续费和掉期费用,实际盈亏与阈值计算存在偏差
- OnTick中每次都重新计算AccountBalance,高频调用但不缓存,效率低下
改进建议
- 修复单位不匹配Bug:应使用PositionGetDouble(POSITION_PROFIT)直接获取货币金额,而非手动用Point()计算
- 添加魔术号码输入参数,仅管理指定魔术号码的持仓,避免误关其他EA的仓位
- 考虑手续费和掉期费用,在盈亏计算中加入佣金和隔夜费的影响
风险评估
总体风险: 中等
- 单位不匹配导致盈亏监控完全失效,可能在该平仓时未平仓,或不应平仓时错误平仓
- 缺少魔术号码过滤可能误关其他EA的盈利仓位
- 无手续费考虑可能导致实际亏损超出设定的风险百分比
评估得分
代码质量2.0
策略逻辑1.0
风险管理2.0
稳健性2.0
创新性1.0
文档1.0
综合1.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
RiskPercentage | 1.0 | 每笔交易的风险百分比,达到此亏损比例时平仓 |
ProfitPercentage | 2.0 | 每笔交易的盈利百分比,达到此盈利比例时平仓 |
同类 EA:辅助工具
回测是历史模拟,不代表未来收益,不构成投资建议。