揭穿误区:资金管理绝非次要
⚖️

揭穿误区:资金管理绝非次要

用实测数据拆解固定与几何仓位的致命差异

交易策略 难度 · 进阶 2026-06-27 5 分钟阅读
#资金管理#风险管理#MQL4#回测误区

误区从何而来:0.1手测试的欺骗性

很多新手在策略测试器中看到指数级余额曲线和几十亿的结果,会本能地怀疑其真实性。老手通常建议用固定0.1手重跑测试,理由是它能直观展示策略在测试期内赚了多少点,且曲线接近直线,被视为稳定性的标志。这种看法在表面上合理:固定手数剥离了仓位膨胀的干扰,让交易者看清策略本身的点值期望。

但问题在于,固定0.1手图表隐藏了资金管理对风险的动态影响。当账户余额增长时,固定手数意味着相对风险递减;而一旦切换为与余额挂钩的加仓法,风险结构彻底改变。新手常误以为“正期望+0.1手曲线漂亮=可随意加仓”,这一推论正是本文要粉碎的核心谬误。

⚠ 警惕直线幻觉
0.1手曲线平滑不代表实盘安全,它只是把仓位风险压缩到了最小。若实盘采用比例加仓,历史凹陷会被成倍放大。

三种资金管理模式的定义与代码

文章选取了三种典型仓位逻辑:保守的固定0.1手、积极的几何MM(手数随余额线性增长)、温和MM(手数随余额平方根增长)。作者修改了公开EA“20_200 expert_v4.2_AntS”以剔除马丁格尔成分,并用统一函数计算手数。

以下为文中保留的MQL4手数选择函数,通过宏开关切换三种模式,并保障最小0.1手的开仓底线。该代码清晰展示了账户余额如何被映射为交易手数。

double LotSize() 
{
   double size;
   switch( _MM )
   {
      case 0:  size = 0.1;  
               break;
      case 1:  size = 0.1 * AccountBalance() / 1000; 
               break;
      case 2:  size = 0.1 * MathSqrt( AccountBalance() / 1000 ); 
               break;
      default: size = 0.1;  break;
   }  
   if( size < 0.1 )
      if( ( AccountFreeMarginCheck( Symbol(), OP_BUY,  0.1 ) < 10. ) || 
          ( AccountFreeMarginCheck( Symbol(), OP_SELL, 0.1 ) < 10. ) || 
          ( GetLastError() == 134 ) )
                  lot = 0.0;
      else        lot = 0.1;
   else           lot = NormalizeDouble( size, 2 ); 
   return( lot ); 
}

几何MM在代码中对应case 1:每1000美元余额开0.1手。温和MM对应case 2,若初始本金为10000美元可将注释行取消,使起步手数为1.0。这种结构便于我们在同一EA上横向对比。

实测一:固定0.1手的表面繁荣

使用EURUSD H1,2000/06/07至2008/03/15近八年数据,默认参数测试。固定0.1手结果:净利润9911.72美元,最大亏损923.58美元(约20%),回收系数RF=10.73,数学期望12.44点,胜率89.21%。图表平滑向上,参数诱人。

新手看到这份报告会获得虚假信心,认为策略“大有可为”。但需注意,盈利交易平均点数35.80,亏损平均180.72,盈亏比仅0.198,靠的是高胜率撑起期望。一旦手数不再固定,这一脆弱平衡极易破裂。

实测二:几何MM如何吞噬利润

将MM改为每1000美元0.1手(几何)后,净利润飙至198万,但最大亏损百分比突破70%,RF跌至0.51(小于1)。曲线尾段出现深坑,峰值手数约540手,现实中经纪商根本无法成交。

更隐蔽的陷阱在于盈亏计算基点不同:亏损按建仓前较高余额计算手数,获利按建仓时较低余额计算。例如余额5000美元开0.5手赚100点=500美元;紧接着亏损100点,手数因余额变5500而升为0.55,亏550美元,比获利多10%。固定手数则无此偏移。

✦ 回收系数骤降的含义
RF<1说明最大回撤比总利润还大,系统已处于“赚小钱亏大钱”的危险结构,绝非表面金额膨胀所能掩盖。

亏损放大公式与阈值推导

设初始余额10000美元,每10000美元保证金手数为aggr,获利交易profit点,1点价值pointval。首笔赚aggr*profit*pointval;次笔亏时余额已增,手数同比例放大,令两笔美元盈亏相等,得阈值公式:loss = profit / (1+ aggr*profit*pointval /10000)。

以EURUSD(pointval=10)验证:aggr=1,profit=100 => loss≈90.91点,实验阈值91点;aggr=2 => 83.33点,实验84点;aggr=3.33 => 75.19点,实验75点。公式与模拟高度吻合。这意味着若策略亏损单平均超过此阈值,几何MM会让系统由盈转亏。

// 阈值推导伪代码(非原EA)
// loss = profit / (1 + aggr * profit * pointval / 10000);
// EURUSD: pointval = 10

幸运EA的微观凹陷实验

作者用“Lucky”EA做短周期测试:0.1手时某凹陷仅360点(占余额约0.5%),换成几何MM后实测亏损近32%,放大60余倍。图中几乎不可见的缝隙在比例加仓下变成深渊,证明依赖0.1手图判断稳健性极端危险。

double GetLots()
{
   return (NormalizeDouble(AccountFreeMargin()/10000,1));
}

温和MM:折中的生存之道

第三种测试采用平方根手数:初始1000美元开0.1手,RF=5.82,最大亏损5632美元(比例仍大但远小于几何)。曲线比几何平稳,若初始改为10000美元、首仓1.0手,八年利润放十倍而相对回撤不变。它吸取了几何的放大优点又缓和了风险斜率。

case 2: size = 1. * MathSqrt( AccountBalance() / 10000 );

结论:资金管理排第几?

标题说“排第二位”是指它救不回0.1手已亏的策略;但正文强调反论:再强的策略也会被过激MM扼杀。正确态度是——先用固定手数验明正期望,再依风险承受选温和或保守加仓,绝不盲目几何化。任何实盘MM都必须独立回测,不能由0.1手图外推。

常见问题

固定手数使相对风险随余额增长而下降,曲线平滑;比例加仓(几何MM)让风险恒定甚至因盈亏计算基点错位而放大,历史小凹陷在实盘会变成50%以上回撤,需用同MM独立回测。
用公式 loss = profit / (1 + aggr*profit*pointval/10000),profit为盈利点数,aggr为每10000美元保证金手数,pointval为1点美元值。EURUSD中pointval=10,aggr=1时阈值约91点。
在LotSize()中用 size = 0.1 * MathSqrt(AccountBalance()/1000); 若起步本金10000可改为 1.*MathSqrt(AccountBalance()/10000),并NormalizeDouble到2位小数,同时保障最小0.1手。
RF=净利润/最大亏损,小于1说明最大回撤比总利润大,系统处于赚小亏大结构,即便总金额膨胀也随时可能因一次深跌爆仓,不能只看绝对收益。