先重新定义“成功”
策略成功应以足够样本中的扣费后期望值、最大回撤、风险调整结果和规则执行率共同衡量。单月盈利、连续十次胜利或一次大行情都不足以证明。
高胜率可以由许多小利润加少数巨大亏损构成,低胜率趋势系统也可能依靠较大平均盈利获得正期望。因此胜率必须与平均赢、平均亏和交易成本一起看。
成功还包括可停止。若交易者无法识别数据、市场或执行环境已改变,即使历史期望为正,也可能在失效期消耗全部资本。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 净期望 | 扣除全部费用后为正 | 只看毛利润 |
| 风险 | 回撤与尾部损失可承受 | 只看胜率 |
| 运营 | 能执行、监控和停止 | 依赖临场感觉 |
用期望值连接胜率与盈亏比
简化期望值等于胜率乘平均盈利,再减去败率乘平均亏损和每笔平均成本。所有输入必须来自足够且未被选择性删除的交易。
例如百分之四十胜率、平均盈利二单位、平均亏损一单位,在未计成本时可有正期望;若点差、佣金和滑点过高,净期望仍可能变负。
期望值不是下一笔预测。正期望系统仍会连续亏损,仓位必须能让账户度过统计上合理且更坏的序列。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 胜率 | 与平均盈亏共同使用 | 越高必然越好 |
| 交易成本 | 每笔从毛优势扣除 | 回测中设为零 |
| 解释 | 长期统计均值 | 保证下一笔盈利 |
研究从明确假设开始
先写策略为何可能存在:趋势延续、均值回归、事件风险溢价、期限结构或参与者行为。经济或行为逻辑帮助判断历史关系为何可能持续。
随后把假设转化为当时可见数据下的规则。入场、过滤、止损、目标、时间退出和不交易条件都应可复现。
在看结果后不断修改问题会造成数据挖掘。研究日志先记录假设、数据期间与成功标准,再运行测试。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 逻辑 | 有可解释的风险或行为来源 | 图形看起来有效 |
| 规则 | 当下数据可执行 | 使用未来信息 |
| 研究记录 | 测试前固定标准 | 结果后重定义成功 |
市场状态决定策略是否有资格运行
趋势、区间、高波动、低流动性和事件冲击对同一信号影响不同。趋势策略在震荡中可能频繁止损,均值回归在单边行情中可能持续逆势。
状态过滤器可以使用价格结构、波动率、均线斜率、区间宽度和交易时段,但不能叠加无数相关指标。
允许“不确定”状态。无法可靠分类时降低风险或不交易,比强行选择模型更稳健。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 趋势 | 只启用延续或突破模块 | 同时逆势摊平 |
| 区间 | 中心与边界稳定才回归 | 突破后继续抄底 |
| 不确定 | 暂停或减仓 | 强迫归类 |
入场信号必须与失效条件成对
任何买入或卖出理由都应回答什么信息会证明它错误。失效可以是结构破坏、时间到期、波动跃迁或事件结果与假设相反。
止损位置来自失效逻辑,不来自想交易的手数。止损较远时通过减少数量保持现金风险,而不是缩到普通噪声。
只有入场没有失效的系统无法计算仓位,也无法区分暂时亏损与逻辑已经不存在。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 入场 | 明确触发且可复现 | 因为感觉便宜 |
| 失效 | 证明原假设不成立 | 账户快没保证金 |
| 止损 | 结构与波动决定 | 为大手数任意压缩 |
退出规则决定收益分布
固定目标、跟踪止损、结构退出和时间退出各自改变平均盈利、持仓时间与成本。不能只优化入场后临场决定退出。
趋势策略通常需要让少数赢家延伸,均值回归则可能在回到中心时退出。把同一退出规则套给所有状态会破坏逻辑。
部分平仓可以降低敞口,却增加操作与成本。只有回测和实盘证据证明有价值时才使用。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 目标退出 | 与策略收益来源一致 | 每次随意改目标 |
| 止损退出 | 原假设失效时执行 | 亏损后向外移动 |
| 时间退出 | 机会窗口消失时离开 | 无限等待回本 |
仓位从现金风险反推
先设单笔可承受现金损失,从中扣除点差、佣金与压力滑点,再根据入场到失效的单位损失计算数量。
保证金只说明能否建立仓位,不说明仓位适合。高杠杆释放的可用保证金不应被自动投入。
平台最小手数超过计算结果时放弃。修改止损或风险预算来满足最小量,会让产品规则支配策略。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 风险预算 | 账户可承受金额 | 平台最大可开金额 |
| 数量 | 预算÷单位压力损失 | 凭信心决定 |
| 最小量 | 过大则不交易 | 强行向上取整 |
组合层面限制共同驱动
多个股票、指数、外汇和商品 CFD 可能受同一美元、利率、行业或风险偏好驱动。单笔限额不能阻止组合集中。
按风险因子汇总净敞口,模拟相关性在危机中上升。对冲仓位也有基差、融资和执行风险。
为单一标的、行业、货币、策略和账户总风险设置上限。新信号使任一层超限时拒绝或替换。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 单笔层 | 每单风险符合预算 | 忽略同时持仓 |
| 因子层 | 共同驱动汇总 | 按名称判断分散 |
| 账户层 | 总压力损失有上限 | 每个策略各自满额 |
点差与佣金必须逐笔建模
CFD 成本可能通过动态点差、每手佣金、股票名义佣金、货币换算和其他费用体现。账户类型与品种决定结构。
使用目标时段真实 Bid/Ask 和成交记录,不把宣传最低点差固定到所有历史。短线策略的毛优势尤其容易被成本吃掉。
按品种、时段和波动状态统计完整往返成本。若净期望只在零成本假设下为正,策略没有实盘价值。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 点差 | 使用动态真实分布 | 固定为最低值 |
| 佣金 | 按账户与品种加入 | 假设都免佣金 |
| 决策 | 看扣费净期望 | 看毛胜率 |
隔夜融资限制长期策略
现金 CFD 跨夜通常产生融资或 swap,方向、品种和日期会影响金额。股息和公司行动也可能形成现金调整。
持有数周时,累计融资可能超过首次点差。回测需要按历史或保守费率逐日计入,而不是使用当前单日费率覆盖多年。
若长期优势不足以覆盖融资,可比较期货、ETF 或直接资产;不要只因 CFD 操作方便就长期持有。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 持有成本 | 逐日累计融资与调整 | 只算开仓费用 |
| 日程 | 周末与节假日可能变化 | 每天固定相同 |
| 工具选择 | 与期限匹配 | 一个 CFD 覆盖所有目标 |
滑点与未成交要进入回测
市价单可能按不同于请求的价格成交,限价单可能完全不成交,止损也可能在跳空后越价。只用蜡烛收盘模拟完美成交会高估结果。
按真实订单数据估计正常与压力滑点,并根据订单大小调整。把错过的限价信号保留为未成交,而不是事后按有利价格补入。
策略盈利若集中在流动性最差时段,却假设零滑点,证据不可靠。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 市价执行 | 加入正负滑点分布 | 全部按信号价 |
| 限价执行 | 模拟排队和未成交 | 每单必成交 |
| 止损 | 加入跳空压力 | 保证触发价 |
历史数据要避免前视偏差
前视偏差包括使用未收盘蜡烛最终值、未来高低点、事后修订数据或当前成分股名单测试过去。
每个信号只能使用当时已发布信息,并记录时区、数据源、缺失和异常处理。指标应有足够预热数据。
测试脚本和人工走查交叉验证,抽样检查交易前一刻的输入。无法复现的漂亮结果应视为无效。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 数据时点 | 只使用当时可见值 | 引用未来收盘 |
| 成分与品种 | 使用历史真实集合 | 只保留幸存品种 |
| 验证 | 逐笔可复现 | 只看汇总曲线 |
样本内与样本外必须隔离
样本内用于发现和选择规则,样本外用于验证未参与选择的数据。反复查看样本外再调参,会把它变成新的样本内。
采用多个滚动窗口,观察不同年份、波动和趋势环境。利润只来自一个阶段说明优势脆弱。
预先规定通过标准和允许尝试次数。测试很多模型只报告最好一个,会产生多重比较偏差。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 样本内 | 形成参数与假设 | 最终证明 |
| 样本外 | 一次性独立验证 | 反复优化 |
| 滚动测试 | 跨状态检查稳定性 | 只看最有利年份 |
参数应在邻近区域稳定
若移动平均周期 37 盈利,而 36 与 38 都亏损,最优点很可能来自噪声。稳健系统通常在合理参数区域表现相近。
减少参数数量并选择可解释的粗粒度阈值。每增加一个过滤条件,就增加拟合历史偶然关系的自由度。
不要因为样本外略差就寻找新参数直到通过。先判断差异是否在统计与风险容忍范围。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 参数表面 | 邻近组合结果平滑 | 单一尖峰优秀 |
| 复杂度 | 最少必要变量 | 不断增加过滤器 |
| 样本外差异 | 按预设容忍评价 | 调到结果漂亮 |
前向测试验证实时可执行性
MT5 策略测试器支持 forward 区间和网络延迟模拟,可帮助检查样本外与处理速度,但模型仍取决于输入数据和成本。
随后在 Demo 实时运行,验证交易时间、符号、订单状态、日志和人工监督。重点是规则能否一致执行。
Demo 不能完全复制实盘流动性和心理压力,所以通过后仍需最小规模真实测试。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 测试器 | 历史与前向初筛 | 证明实盘结果 |
| Demo | 验证流程和系统 | 复制所有流动性 |
| 小实盘 | 收集真实成本与行为 | 直接使用最大仓位 |
最大回撤不是未来上限
历史最大回撤只描述已经观察的路径。未来可能出现更长连续亏损、更大滑点和策略同时失效。
用蒙特卡洛重排或压力序列估计可能范围,并在历史最差之外加安全缓冲。模型不能创造未观察的极端事件,因此仍需主观保守。
个人资金与心理承受必须低于账户破产点。若正常统计回撤已不可接受,应降低风险,而非隐藏图表。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 历史回撤 | 已发生样本 | 未来绝对上限 |
| 压力范围 | 加入序列和成本恶化 | 只复制原顺序 |
| 个人限制 | 低于理论破产阈值 | 坚持到强平 |
日度限制防止报复性交易
设置单日亏损、连续亏损、交易次数和异常成本阈值,任何一项触发就停止新仓。
限制同时包含已实现和浮动损失,并跨账户与策略汇总。把订单转到另一账户不重置真实风险。
暂停后调查市场状态、平台、代码和执行纪律。恢复需要证据与观察期,不能因一个新信号立即重启。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 日度亏损 | 达到阈值停机 | 继续交易回本 |
| 跨账户 | 统一汇总 | 每账户独立重置 |
| 恢复 | 调查通过后降险 | 凭情绪恢复 |
自动化需要独立风险引擎
EA 或 API 可以减少手工偏差,也会快速放大错误。信号模块不能绕过最大仓位、请求速率、亏损和数据新鲜度限制。
网络超时后先与服务器对账,避免重复订单。主备终端使用单一写权限,防止同时开仓。
故障测试覆盖断网、重启、市场关闭、异常报价和日志失败。安全状态应停止增加风险并继续管理现有仓位。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 信号层 | 提出交易意图 | 自行提高上限 |
| 订单状态 | 幂等、对账和有限重试 | 超时立即重发 |
| 安全模式 | 停开仓保留减险 | 杀进程遗留仓位 |
交易日志分开评价过程与结果
记录策略版本、状态、信号、计划和实际价格、手数、费用、滑点、最大不利变动与退出原因。
按规则亏损是系统样本,违规盈利仍是执行失败。只奖励盈利会鼓励隐藏尾部风险。
定期统计偏离率、成本误差和不同状态的净期望。修改策略必须生成新版本并重新验证。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 完整字段 | 计划、成交、成本与版本 | 只写最终盈亏 |
| 过程评价 | 纪律与结果分开 | 盈利即正确 |
| 变更管理 | 新版本重新测试 | 临场无记录修改 |
识别衰减需要多项指标
实盘胜率、平均盈亏、持仓时间、交易频率、滑点和成本相对历史区间变化,都可能提示策略或市场改变。
单次亏损不能证明失效,胜率下降也可能被平均盈利提高补偿。使用预设组合阈值,避免情绪化判断。
确认异常后先降险或暂停,再用新数据独立研究。删除亏损样本或反复调参只是掩盖衰减。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 监控 | 收益、成本和行为共同看 | 只看余额 |
| 判定 | 多指标超过预设范围 | 一笔亏损即失效 |
| 应对 | 降险后重新验证 | 加仓追回 |
用完整案例检查策略链条
假设趋势 CFD 策略在高周期方向一致、中周期回撤结束时入场。交易者先确定结构失效距离,再把单笔现金预算扣除正常点差、佣金和高分位滑点,计算手数。
回测使用动态成本并分成样本内、前向和多个市场阶段,统计净期望、最大回撤、连续亏损与参数邻域。任何结果只在一个精确参数或单一牛市成立,都拒绝。
Demo 阶段注入断网、重复回报和市场关闭,实盘阶段从最小量开始。达到日亏损或滑点阈值后熔断,调查通过才降风险恢复。这个链条比单个入场指标更接近真正策略。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 研究 | 状态、信号和失效完整 | 只有金叉入场 |
| 验证 | 成本后样本外稳定 | 样本内最高收益 |
| 运行 | 限额、日志和恢复通过 | 无停机流程 |
用数字审计一组交易是否真的有优势
假设某策略完成两百笔交易,其中八十笔盈利、一百二十笔亏损,表面胜率只有百分之四十。盈利交易平均获得二百四十元,亏损交易平均损失一百二十元,则毛盈利为一万九千二百元,毛亏损为一万四千四百元,未计费用前净额为四千八百元。这个例子说明低于一半的胜率仍可能盈利,但结论不能停在这里。
若每笔完整往返的点差、佣金、滑点与换汇平均合计二十五元,两百笔就消耗五千元,原来的毛优势会变成两百元净亏损。若持仓跨夜还产生融资,结果可能进一步恶化。因此研究报告必须同时展示毛期望、费用分项和净期望,不能只展示一条上升的资金曲线。
还要检查利润分布。如果八十笔盈利中的大部分收益来自一笔偶然跳空,删除这一笔后系统为负,策略高度依赖不可重复事件。可以分别查看去除最好一笔、最好五笔后的结果,并按月份、品种和市场状态拆分。拆分不是为了挑选最漂亮部分,而是确认优势是否由多段独立样本共同支持。
连续亏损同样需要量化。即使每笔风险固定,一百二十笔亏损也可能成串出现。把交易结果多次随机重排,观察较差分位的最大回撤和最长亏损序列,再加入成本上升与滑点恶化。仓位应按压力结果而非平均结果确定,否则策略在长期期望兑现前就可能触发强平或心理崩溃。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 毛期望 | 平均赢亏与次数共同计算 | 只报告胜率 |
| 净期望 | 逐笔扣除全部真实成本 | 忽略小额费用累积 |
| 稳健性 | 移除极端赢家后仍可解释 | 利润依赖单笔偶然事件 |
从研究版本迁移到实盘版本
研究通过后先冻结规则、参数、数据时区和成本模型,生成唯一版本号与校验记录。实盘程序必须引用同一版本;若开发者顺手修改入场阈值或订单类型,历史证据已不再对应当前系统。任何变更都应形成新版本并重新走过适当的验证阶段。
接着建立逐字段对照测试:历史信号时间与实时信号时间是否一致,买卖方向、失效价、目标价、数量与账户货币换算是否相同。特别检查夏令时、周末开盘、不同经纪商符号、小数位和合约规模。这些看似技术性的差异可能把正确公式变成错误仓位。
最小实盘阶段的目的不是快速赚钱,而是测量真实点差、成交延迟、拒单、部分成交、融资和人为干预。预先规定样本量与最长观察期,在完成前不因短期盈利扩大规模。若实际成本持续超出压力假设,应暂停并重新估算净期望,而不是用更大仓位补偿。
扩大规模只能分级进行,每一级都重新检查成交冲击、保证金余量、组合相关性和规则偏离。盈利不是自动升级条件;只有执行指标、风险指标和净期望同时处于批准范围才进入下一档。降级与停机阈值必须在开仓前写好,使团队在压力中无需临场争论。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| 版本冻结 | 代码、规则和测试证据对应 | 测试后无记录改参 |
| 最小实盘 | 测量真实执行与成本 | 用短期盈利证明一切 |
| 分级扩容 | 每一级重新审计 | 盈利后一次放大仓位 |
建立最终 Go 或 No-Go 标准
Go 要求可解释逻辑、无前视数据、扣费后正期望、多个样本外阶段稳定、压力回撤可承受,并通过实盘执行与故障测试。
No-Go 包括利润集中一段时期、需要倍增加仓、真实成本后优势消失、最小手数超预算、参数尖峰或无法复现订单。
没有策略保证盈利。选择不交易、继续收集数据或降低规模,都是成功风险流程的一部分。
| 策略模块 | 通过标准 | 失败表现 |
|---|---|---|
| Go | 证据链完整且风险可承受 | 只看高历史收益 |
| No-Go | 成本、稳健或执行失败 | 不断降低标准 |
| 核心原则 | 可验证、可执行、可停止 | 追求永不亏损 |
常见问题
成功的 CFD 策略需要多高胜率?
没有固定要求。胜率必须与平均盈利、平均亏损和全部交易成本共同形成正的净期望值。
回测盈利是否证明策略有效?
不能。还需排除前视和选择偏差,通过独立样本外、前向、压力、Demo 与最小实盘验证。
每笔 CFD 应承担多少风险?
没有通用百分比。应根据账户承受能力、止损距离、滑点压力、策略回撤和组合敞口反推。
可以用加仓降低亏损订单的平均成本吗?
只有策略事先定义且总风险仍在硬上限内才可研究;亏损后倍增加仓通常制造严重尾部风险。
策略什么时候应该停止?
达到预设亏损、成本、滑点、数据或技术异常阈值时应停止新仓,调查并重新验证后才恢复。
结论
成功的 CFD 策略不是高胜率信号,而是扣除点差、佣金、融资、滑点和执行错误后仍具有正期望,并在压力回撤中能够存活的完整系统。它从可解释假设开始,为不同市场状态定义入场、失效和退出,从现金风险反推仓位,再汇总相关敞口。历史结果必须排除前视与选择偏差,并通过样本外、前向、Demo、最小实盘和故障测试。运行阶段需要日度限制、独立风险引擎、完整日志、衰减监控和证据化恢复。任何需要无限加仓、忽略成本或只有单一参数点有效的方案,都应判定 No-Go。
