EA-12442 · 统计套利
BackToTheFuture
该EA通过WebRequest从Google Finance抓取实时股票报价,并与可配置时间偏移的历史价格进行比较。当当前价格与历史参考价的偏差超过设定的阈值时,开立买入或卖出仓位,旨在利用外部数据源与经纪商价格之间的临时定价偏差。
打开交互版(权益曲线、切换品种)基本信息
回测结果(H1,约 1 年)
暂未回测:这个 EA 还没能自动转换。
策略分析
策略概念:该EA属于统计套利类型,通过从Google Finance获取外部股票报价,与自身记录的历史价格进行对比,寻找价格偏离机会。入场条件:当当前报价与历史参考价格(可配置回溯分钟数前的价格)的差值超过BarSize阈值时入场——差值大于HistoryPrice+BarSize时做多,差值小于HistoryPrice-BarSize时做空。出场条件:采用固定的止盈和止损(TpPips/SlPips),同时还有一个基于延迟时间(DeelayPosition)的超时平仓机制,当持仓时间超过从历史数据推算的延迟时间后强制平仓。仓位管理:使用固定手数(Lots参数),并通过Count参数限制最大开仓次数,每天重置计数器。资金管理:无明显资金管理策略,固定手数交易,止损设置极大(SlPips=5000),而止盈极小(TpPips=10),风险收益比极不对称。
优势
- 创新性地利用外部数据源(Google Finance)作为交易信号,思路独特
- 具有基于时间的自动平仓机制,避免持仓过久
- 支持按星期控制交易开关,灵活管理交易时段
劣势
- 风险收益比极差:止盈10点 vs 止损5000点,一笔亏损可抵消500次盈利
- 依赖Google Finance网页抓取,该接口已过时且随时可能失效,无错误重试机制
- FIFO函数使用全局变量j和动态数组,缺乏边界检查,存在内存管理隐患
- sessionOpened赋值为自身(line 121),逻辑错误,永远无法正确判断会话状态
- 无持仓检查逻辑,可能在已有同方向仓位时重复开仓
改进建议
- 修复sessionOpened自赋值bug,正确解析Google Finance会话状态;将止盈止损比例调整至合理范围(至少1:2以上)
- 替换网页抓取方式为可靠的API接口,增加错误重试和超时处理机制;添加持仓检查和同方向仓位合并逻辑
风险评估
总体风险: 危险
- 止盈止损比例严重失衡(1:500),单次亏损可造成巨大资金损失
- 依赖已过时的Google Finance网页抓取,数据可能不准确或完全无法获取
- 无持仓检查和同方向重复开仓防护
- 全局变量状态管理混乱,数组越界风险
- sessionOpened逻辑bug可能导致在非交易时段错误开仓
评估得分
代码质量1.0
策略逻辑2.0
风险管理1.0
稳健性1.0
创新性3.0
文档1.0
综合1.5
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
GoogleSymbolName | NYSE:C | Google Finance上的股票代码 |
GoogleFinanceLink | http://www.google.com/finance?q=c&ei=SK5dVaGeKouvsAHzioDIDA | Google Finance网页链接 |
BarSize | 0.25 | 触发交易的价格偏差阈值 |
GoogleFinanceHistoryMins | 60 | 历史价格回溯时间(分钟) |
Lots | 0.1 | 交易手数 |
TpPips | 10 | 止盈点数 |
SlPips | 5000 | 止损点数 |
Count | 5 | 最大开仓次数(-1为无限制) |
Filling | ORDER_FILLING_RETURN | 订单成交类型 |
Monday | true | 周一是否启用交易 |
Tuesday | true | 周二是否启用交易 |
Wednesday | true | 周三是否启用交易 |
Thursday | true | 周四是否启用交易 |
Friday | true | 周五是否启用交易 |
同类 EA:统计套利
回测是历史模拟,不代表未来收益,不构成投资建议。