VolGuard Volatility Risk Manager
- 实用工具
- 版本: 1.0
- 激活: 20
为 MetaTrader 出售的东西几乎都在预测方向。我用十三年的 EURUSD 和黄金数据检验了这件事是否可能,做了前向滚动验证,并加了一次把标签随机打乱的对照运行。
方向的结果落在 48% 到 51% 之间。在黄金上,同样的模型在被打乱的标签上得到 53.4% —— 比在真实数据上还高。一个过拟合的系统从内部看就是这个样子,这也是回测曲线不能当作证据的原因。
明天会走多远,是另一个问题,而这个问题有答案。VolGuard 建立在这个答案之上,除此之外别无其他。
它做什么
每天日线收盘时,VolGuard 预测市场明天会走多远,并把这个预测变成一个数字:你的仓位大小应该乘以的系数。
预计走幅是平常两倍的一天,只给一半的仓位,这样承担的资金留在你放它的地方,而不是悄悄翻倍。平静的一天则多给一些。超过你自己设定的上限时,它会说今天不要交易 —— 因为在剧烈的一天里,小仓位仍然是仓位。
系数在两端都被刻意限制。不限制的话,一个非常平静的预测会发出五倍杠杆,而平静预测出错的那一天,恰恰就是要命的那一天。
面板
状态只用一个词:NORMAL、REDUCED、BLOCKED 或 WARMUP。然后是明天的预测波幅,用该品种自己的价格单位表示;用来比较的典型波幅;两者的比值;以及手数系数。
面板画得足够大,隔着房间也能读,并且可以缩放。
你的 EA 如何读取它
决策以终端全局变量发布,所以平台上运行的任何程序都可以使用它,而不需要为了认识 VolGuard 而改写:
double VolGuardMultiplier(const string symbol)
{
const string name = "VolGuard_" + symbol + "_mult";
if(!GlobalVariableCheck(name))
return(1.0);
return(GlobalVariableGet(name));
}
lots = lots * VolGuardMultiplier(_Symbol);
if(lots <= 0.0) return;
如果 VolGuard 没有运行,函数返回 1.0,你的仓位计算不受影响。零表示 BLOCKED。同时还会发布 VolGuard_<symbol>_state 和 VolGuard_<symbol>_ratio。
如果你手工交易,就从面板上读出手数系数,然后相乘。
测量结果
样本外,2022 年 9 月到 2026 年 8 月,数据从未用于构建任何东西。模型每 21 天重新拟合一次,每一天都由一个没见过它的模型来打分。这就是产品实际做的事,而不是一份回测可以被摆布成的样子。
黄金,1031 天:预测与结果的秩相关 +0.599。显而易见的对照 —— 用今天的波幅作为明天的预测 —— 得到 +0.450。对数波幅上的 R 方 +0.411。
EURUSD,1039 天:+0.511,同一对照为 +0.403。
实践中真正重要的数字:在黄金上,模型判定为剧烈的那三分之一天数,实际走幅是它判定为平静的那三分之一的 2.07 倍。EURUSD 上是 1.75 倍。
以上所有数字都是相对波幅,也就是波幅除以价格。黄金在这段时间里从 1700 涨到 4300,绝对波幅仅凭价格水平就会上升;用绝对单位做同样的检验会报出 4.35 倍,那是虚高的。诚实的数字是这里印出来的这个。
里面是什么
一个岭回归。十二个特征,十三个系数,闭式求解。
梯度提升和神经网络都试过,在两个品种上都输了 —— 黄金上线性模型 +0.683,另外两个是 +0.639 和 +0.653。波动率在对数空间里几乎是线性的,复杂模型把容量花在拟合噪声上。
所以没有 ONNX 文件,没有二进制资源,没有下载的权重,没有任何东西会加载失败,也没有任何东西会在货架上过期。
它学习你的品种和你的经纪商
这个产品里没有随附任何系数。启动时,VolGuard 会在它所附着图表的日线历史上拟合模型,数据来自你自己经纪商的行情,并在运行中每 21 天重新拟合一次。
这个周期不是装饰。只拟合一次然后不再更新的模型得到 +0.325,而同一个模型随行情前进不断重拟合得到 +0.683。波动率的状态会迁移,冻结的模型会停止工作,而且从不声张。
它不会做什么
它不会告诉你市场往哪里走,因为这一点已经被测量过,做不到。没有网格,没有马丁格尔,没有向下摊平,没有收益承诺。
它不开仓。默认情况下也不平仓 —— 阻断只是把系数设为零并告诉你。阻断时平掉已有仓位是一项需要你主动打开的设置,因为没有哪个工具应该在没被要求的情况下去平别人的仓。
它需要该品种至少 300 根日线,1500 根以上更好。
设置
用于拟合的日线数量、岭回归正则化强度、重拟合间隔。最小和最大手数系数、开始阻断的比值,以及是否启用阻断。被阻断的日子是否平掉已有仓位,以及是否只限于某个 magic number。面板位置与缩放。
默认值就是经过验证的那套配置。
适用于
任何有日线历史的品种、任何图表周期、对冲和净持仓账户,以及任何你能加上一行代码的 EA。
