
你会学到什么
- 如何判断策略是更好的自动化还是自行酌定
- 主要反向测试陷阱:外观偏差、生存和过度适应
- 在样品外进行前行分析和测试
- 从回试到演示到最小的直播大小的路径
- 如何构建算法的决定流
- 成本包容的回击测试逐步奏效
- 以真实的算术为例
- 单反测试之外的简单压力测试
- 运行 TabTrade 代码的平台考虑因素
何谓的自动化
当某项规则是客观、频繁和快速时,自动化效果最好。 追随的趋势是,在定义范围内对干净的信号采取行动,平均反转,以及执行算法构建以分割大订单,都是明智的候选人.
TabTrade公司 阿尔戈和自动化交易 页面覆盖运行这些规则的平台侧;这一课涵盖了规则本身.
权断判是劣身. 当您的边缘取决于解释央行对账单的措辞时, 脚本无法为您读取 。
一个很好的测试:如果你能把规则写得非常精确,以至于两个人读它会采取完全相同的动作,它很可能可以被编码. 如果该规则包含诸如“当动力感到疲惫时”之类的词语,则它属于一个自由裁量日记,而不是EA。
交易算法的解剖
大多数自动化系统遵循相同的四级环路. 了解循环使得在直播行为偏离后置测试时调试更容易.
四阶段循环
- ** 符号逻辑** 计算触发交易的条件。 这可能是一个移动平均十字,一个RSI阈值或者价格突破.
- ** 危险门** 检查仓位规模、最大接触量、相关限度以及会话是否开放。 传递信号但故障的风险门的交易被丢弃.
- ** 命令管理员** 将决定转化为工作命令,处理部分填充、拒绝和暂停。
- ** 更新数据** 记录填充情况,设置止损和获取利润,并将新状态反馈到风险门,供下一个勾选。
当一个反向测试显示一个完美的股权曲线,但直播交易却令人失望时,缺口往往会停留在风险门或订单管理器内,因为这些是天真反向测试跳过的部分.
诚实的反验
大多数反派看起来比他们应该做的好,原因众所周知:
- ** Look-ahead 偏差** 表示在蜡烛的关闭处做出一个决定,当算法不得不在露天行动时.
- ** 生存偏见** 仅来自对存活至今的交易品种的测试。
- ** 过度调整** 是指调整参数,直到历史股权曲线变得美丽. 由噪音构建的曲线没有预测力.
- ** 忽略成本** 使分散、委托、互换和漏报相结合,将一个看起来有利可图的系统变成一个输掉的系统。
用现实的勾选数据构建测试,将传播视为一个变化而非常数的东西,并始终包括滑动.
这样的成本建模从 以欧元/美元计量的差幅。 。 。 。
一个实例:交易成本的拖累
采用简单的欧元平均折返系统,生成 400 交易超过两年的回溯测试数据。 没有成本,原始结果显示:
| 项目 | 数额 |
|---|---|
| 毛利润 | $4,200 |
| 损失毛额 | $3,000 |
| 净利润(无成本) | $1,200 |
现在以现实的成本来分层 假设MetaTrader上的边缘账户 5 圆通委员会 $7 平均分布 0.03 p. 对于a 1- 很多美元交易, 0.03 针头是 $0.30. 剪贴页 0.1 每边的pip是 0.2 转弯,或 $2 每个标准手。 一夜之间,在小小的净长偏差上,又加了一个 $180 两年来
| 费用来源 | 每个交易 | 共计(400 交易) |
|---|---|---|
| 委员会(回合) | $7.00 | $2,800 |
| 散开( S)0.03 pip× $10[pip] (笑声) | $0.30 | $120 |
| 滑动页( E)0.1 每一边, 0.2 pip转弯). | $2.00 | $800 |
| 交换(合计) | - 怎么样? | $180 |
| ** 总费用** | 页:1$3,900页:1 |
净结果从一个 $1,200 利润 $2,700 损失。 这是常见的结果,当背试者忽略了全部成本堆栈。 在判断系统边缘之前,
前进分析
将历史数据分成几个部分。 优化第一段,然后测试第二段. 转窗向前又作么生. 一旦完成循环,在决定系统是否值钱时,只看采样结果。
具有平整的外采样数字的强性内采样数字意味着该模型已被曲线适应. 这是第一次尝试的通常结果,揭露这一点正是试验的目的。
数字前行
如果你有5年的每日欧元数据 分为五个一年的窗口. 优化策略的两个移动平均长度 2020 数据,然后在 2021. 下一个,优化 2021 测试 2022, 诸如来. 经过四次前方测试,你只有外证交易.
| 期间 | 抽样利润系数 | 抽样利润系数 |
|---|---|---|
| 2020 → 2021 | 1.65 | 1.12 |
| 2021 → 2022 | 1.58 | 1.08 |
| 2022 → 2023 | 1.72 | 0.96 |
| 2023 → 2024 | 1.61 | 1.04 |
实证数能保证坚固系统. 外证数别说. 样本外平均利润率略高于 1.05, 和一年损失的钱。 如果交易员跳过前方测试 系统就会被部署在 1.65 后背测试,并失望。 行走者在资本处于危险之前就揭露真相。
值得观察的量度
| 度量衡 | 读为 |
|---|---|
| 利润系数 | 毛胜除以总损失. 任何下面的东西 1.2 是脆弱的。 |
| 最大 | 最糟糕的顶峰下陷 你真的能坐过吗? |
| 锐率 | 按波动单位计量的回报率 |
| 期望 | 每个交易的平均R:化合物数字 |
| 交易量 | 任何低于~的计数200 使结论薄弱 |
期望值得快速计算。 如果你的系统赢了 40% 平均赢的是 2R 平均损失为 1R,然后是预期值=(0.4 × 2) + (0.6 × -1) = 0.8 - 0.6 = +0.2R 每个交易。 完毕 300 交易, 化合物进入 60R 利润,减去成本。 算术很简单,但它迫使你面对 边缘是否足够大 以生存现实世界的摩擦。
在背面测试之外:压力测试系统
单一的回击者,甚至诚实的回击者,只是通向历史的一条道路. 几个简单的应激测试揭示系统是否依赖于幸运运行.
蒙特·卡罗模拟 重排交易序列 数千次。 如果原始的反测试产生了 1.4 利润系数,但 30% 重组的序列会失去金钱 系统很脆弱 一个只看原曲线的商人从来不会看到这种风险.
** 参数灵敏度** 每项输入略有不同。 如果移动止损从 20 键到 25 pips将利润系数减半,系统对单个数字过于敏感. 稳定的系统应能在小的变化中幸存而不崩溃。
** 市场外测试** 对与同一资产类别不同的工具适用相同的逻辑。 如果基于欧元的系统在英镑上显示类似但并非完全相同的字符,则逻辑与一种交易品种无关。 如果完全失败,原始结果可能是故障.
这些测试不能保证未来的性能. 它们显示一个结果是否在原反测试没有覆盖的条件下存活下来.
部署路径
实现直播交易的系统往往经过同样的五个阶段,依此顺序:
- ** Backtest**,包含实际成本
- ** 提前测试**,以确认系统仍然有效
- ** Demo 前置测试**,至少一个月,因为它暴露了执行错误 一个后置测试不能
- ** 在最小的现有规模下开始生活**
- ** 仅当实测结果符合前期试验时,即应增加**
在五个国家中,示范前期测试是漏掉成本最高的阶段,因为它所发现的问题在反向测试中没有留下痕迹。
演示前方测试发现了什么
反向测试假设每个订单按要求的价格填充,平台永远不会断开,互换率保持不变. 现场服务器上的演示前置测试 :
- ** 信号和填充之间的执行延迟**
- ** 当价格超过待决订单的水平时,命令被拒绝**
- ** 冲洗费** 与背试估计数不同,特别是在滚转前后
- ** 平面怪异,例如在新闻空白期间如何处理止损
在您打算使用的同一账户类型和服务器上运行演示测试 。 如果您计划在MetaTrader上使用边账 5, 测试一下 试验环境越接近生活条件,真钱上线时的惊喜就越少.
TabTrade 基础设施自动化
TabTrade 的 MetaTrader 5 平台支持通过以 MQL5 编写的智能交易系统(EA)进行全自动交易。内置策略测试器支持使用 tick 数据和可视化模式进行回测,并可纳入所选账户类型的佣金与点差结构。进入前向测试后,可使用 VPS 服务,让 EA 每天 24 小时运行,而无需保持家用电脑开机。
先前在工作例子中使用的相同成本结构直接来自已公布的边缘账户数字: $3.50 在FX和金属上,平均分布率低至 0.02 澳洲美元和 0.03 用欧元来买 这些数字不是理论性的。 这些都是你插进后台测试 看你的系统是否维持了真正的成本
如果您是第一次对 EA 进行编码, 请从一个演示账户上的简单移动平均交叉开始 。 在添加过滤器、时间限制或多个时间框架之前,获取命令管理逻辑。 一个干净执行的简单系统会教你 不止一个复杂的系统会给错误投射 3 上午10时