将您的线性交易系统提升为幂交易系统·综合运用
📈

将您的线性交易系统提升为幂交易系统·综合运用

(3/3)· 固定分数决策与回测验证,把线性系统的低风险底座换成指数增长曲线

含代码示例 第 3/3 篇

很多交易者把跑直的净值曲线当成终点,却从没试过在同样胜率下让仓位随权益等比放大。固定分数不是加杠杆赌一把,而是用破产风险趋零的框架把线性系统改造成幂系统。本篇接前两篇的基础与实战,收尾讲清决策参数与回测落点。

「在 OnTick 里把状态机变成下单动作」

EA 跑起来后,资金管理的落点其实就卡在 OnTick 这一刻:系统算完当前演化状态,你直接按状态开仓或空仓。 下面这段把重命名后的指数化系统 ExponentialHawaiian 接进决策分支。GetEvolution().GetStatus() 吐出三种状态,BUY / SELL 各自算好 tp、sl 再丢给 GetTrade().PositionOpen,DO_NOTHING 就原地跳过。 [CODE] switch(GetEvolution().GetStatus()) { case BUY: tp = ask + m_takeProfit * _Point; sl = bid - m_stopLoss * _Point; GetTrade().PositionOpen(GetBrain().GetSymbol(),ORDER_TYPE_BUY,m_evolution.GetLotSize(),ask,sl,tp); break; case SELL: sl = ask + m_takeProfit * _Point; tp = bid - m_stopLoss * _Point; GetTrade().PositionOpen(GetBrain().GetSymbol(),ORDER_TYPE_SELL,m_evolution.GetLotSize(),bid,sl,tp); break; case DO_NOTHING: // Nothing... break; } [/CODE] 逐行拆一下:第 1 行取状态;BUY 分支里 tp 用 ask 加 m_takeProfit 个 _Point,sl 用 bid 减 m_stopLoss 个 _Point,注意买仓 sl 在市价下方;SELL 分支相反,sl 挂在 ask 上方、tp 在 bid 下方,手误写反就会变成双向止损。 外汇和贵金属杠杆高,这套固定分数下单只是把风险框在 m_stopLoss 点数内,实际亏损仍可能随跳空扩大,上 MT5 用策略测试器跑一遍 EURUSD 的 2023 Tick 数据,看 DO_NOTHING 占比多少再调 m_evolution.GetLotSize()。

MQL5 / C++
class="kw">switch(GetEvolution().GetStatus())
  {
  case BUY:
      tp = ask + m_takeProfit * _Point;
      sl = bid - m_stopLoss * _Point;
      GetTrade().PositionOpen(GetBrain().GetSymbol(),ORDER_TYPE_BUY,m_evolution.GetLotSize(),ask,sl,tp);
      
      break;
  case SELL:
      sl = ask + m_takeProfit * _Point;
      tp = bid - m_stopLoss * _Point;
      GetTrade().PositionOpen(GetBrain().GetSymbol(),ORDER_TYPE_SELL,m_evolution.GetLotSize(),bid,sl,tp);
      
      break;
  case DO_NOTHING:
      class=class="str">"cmt">// Nothing...
      break;
  }

◍ 用净值曲线验证指数化稳定性

给系统接好面向对象逻辑后,下一步不是直接上实盘,而是先跑回测把指数化假设打穿。以 ExponentialHawaiian 的 HawaiianTsunamiSurfer 固定分数变体为例,取 2012 年 1 月至 2012 年 3 月这段窗口做测试,上方净值曲线呈指数化增长,下方对照系统保持线性。 这个对照本身就是一个破产边界探针:只要指数化曲线还能压在线性系统之上,系统就处在理论可控区;一旦上方曲线不再保持指数形态、被线性系统反超或失速,说明仓位缩放已偏离设计假设,理论上存在破产风险。外汇与贵金属杠杆高,这类失稳在极端波动下触发概率会明显放大。 开 MT5 把这段历史拉出来重跑,重点看曲线分叉点出现在哪一周——那比任何口头结论都实在。

记住这一条就够了

把线性系统的仓位管理换成固定分数(比例随净值浮动),本质只是把资金曲线从直线推成指数型,MT5 策略测试器里能直接看到权益曲线斜率变陡。 但评论区里 Yury Reshetov 点得很直白:Ralph Vince 的固定分数理论抄自实践派却没跑过盘,Edward Thorp 用凯利准则实盘赚到钱的前提是样本足够多;GaryKa 也提醒,市场有最小手数和最小点差,非线性在离散边界上会退化回线性。 所以真要验证这套 cevolution.mqh 的 OO 逻辑,自己开 MT5 跑十年回测比看三个月样本靠谱,别信「升幂就暴富」的错觉——外汇和贵金属杠杆高,错一次可能直接洗掉账户。

把回测对比交给小布
这些诊断小布盯盘的 AIGC 已内置,打开对应品种页即可看到线性与幂系统的权益曲线对照,你只需调分数参数。

常见问题

f 越小账户回撤越浅、破产概率越低,但曲线斜率也平;f 放大到 0.05 以上连亏期权益缩水加快,可能倾向在震荡市被洗出,需回测定区间。
固定分数会放大参数过拟合的代价,样本外能暴露分数在未知波动下的真实回撤,避免上线后权益曲线断崖。
可以,小布盯盘的 AIGC 模块支持粘贴 EA 片段识别分数逻辑,并标注当前权益下的建议手数区间,省去手算。
贵金属跳空使 Trade Risk 低估,真实每份合约风险偏高,分数应保守;外汇高杠杆品种预付款占用会扭曲权益基数,需剔除占用后计算。