文章 "交易机器人风险管理器(第一部分):EA风控头文件"

 

新文章 交易机器人风险管理器(第一部分):EA风控头文件已发布:

交易对风控纪律有着极高的要求。本文分析了交易者亏损的主要原因,并针对MQL5平台提出一套技术方案 —— CEnhancedRiskManager(增强型风险管理器)类,并在激进网格EA上完成了实操测试。

经验表明,缺少完善风控体系的交易账户,其生命周期往往十分短暂。

几乎每位新手交易者都会陷入三类经典心理陷阱。第一类,连续盈利之后产生过度乐观心态。连续几笔交易获利后,会产生自己已经看透市场、掌握市场奥秘的错觉。内心会冒出想法:“现在是盈利状态,可以承担更大风险!”于是交易者放大手数、放弃止损、同时大量持仓。结局可想而知:短短一天,就亏掉数周积累的收益。

第二类,寄希望于行情反转。持仓亏损持续扩大,屏幕上的浮亏数值不断走高,但交易者依旧死扛持仓。“马上就要反转了”,“这只是回调”,“行情不可能一直跌”,无数交易者抱着这类想法,直到被保证金追缴(爆仓)终结交易生涯。

第三类陷阱也最隐蔽 —— 无视自己定下的交易规则。交易者搭建交易系统,制定明确的开仓平仓条件,设置风险上限。但某个时刻心里会冒出念头:“能出什么问题呢?偶尔破一次规则没关系。”于是关闭止损、超出最大允许手数、逆势开仓。这必然走向账户溃败,交易者心里明明清楚后果,却无法克制。

交易机器人风险管理器(第一部分):EA风控头文件


作者:Yevgeniy Koshtenko

 
感谢您分享您的想法和代码;我会按照您的意愿使用它们。
 
有MQL4版本吗?
 

您好,感谢您的付出!

不过,希望能看到与文章中描述相对应的类代码,例如

在文章中:

enum ENUM_RISK_CALC_TYPE {
    RISK_CALC_BALANCE_ONLY,   // 仅根据余额进行计算
    RISK_CALC_EQUITY_ONLY,    // 仅基于权益进行计算
    RISK_CALC_COMBINED,       // 组合计算
    RISK_CALC_ADAPTIVE        // 自适应计算
};

在附带的文件中:

enum ENUM_RISK_CALC_TYPE {
    RISK_CALC_BALANCE_ONLY,   // Only Balance
    RISK_CALC_EQUITY_ONLY,    // Only Equity
    RISK_CALC_BALANCE_EQUITY, // Balance/Equity (US Prop Style)
    RISK_CALC_PROP_STANDARD   // Standard Prop Company Rules
};

文章中提到的“自适应计算”在附带的类代码中并未体现。

此外,代码中存在一个错误,导致无法编译专家顾问代码:

// Trading Object
    CTrade              m_trade;

应在 public 部分中:

请检查一下。

 
我的代码也无法编译,卡在第124行: 123 // 为交易对象设置魔法数字
124 g_RiskManager.m_trade.SetExpertMagicNumber(InpMagicNumber);
 
Борис Ворона #:
我的代码也无法编译,卡在第124行: 123 // 为交易对象设置魔术数字
124 g_RiskManager.m_trade.SetExpertMagicNumber(InpMagicNumber);
请将 EnhancedPropRiskManager.mqh 类描述文件中 private: 部分的“CTrade m_trade;”这一行移至 public: 部分:
 
谢谢,现在能编译了。不过自适应版本还是无法编译。
 

将风险管理器应用于我正在运行的马丁格尔策略交易顾问

以下是未启用风险管理器的2025回测结果:

而这是采用最佳风险管理器设置后的结果:

如您所见,最大回撤减少了一半,而盈利增加了三倍。

 

在我看来,算法交易系统中至关重要的一点,是将策略的质量与所承担的风险程度明确区分开来。

如果为了获得高回报,系统需要维持较高的保证金占用率或承受巨大的回撤,那么仅凭高回报本身所传达的信息就相对有限。

就我而言,我更倾向于首先评估回撤、最大头寸、交易执行稳定性以及系统在不同市场条件下的表现等参数。

此外,我认为将风险规则纳入系统本身的逻辑框架内非常重要,应避免仅仅因为出现了一段有利行情就盲目增加风险敞口。

从长远来看,控制可能的亏损额度在我看来与分析算法可能获得的收益同样重要。

 
Aleksander Gladkov #:

为我正在运行的采用马丁格尔策略的交易顾问应用了风险管理器

以下是未应用风险管理器时2025年回测结果:

而这是采用最佳风险管理器设置后的结果:

如您所见,最大回撤减少了一半,而盈利则增加了三倍。

相对于权益的回撤幅度有所缩小,并已控制在合理范围内。

此前曾超过50%(这在现实中意味着必然爆仓和强制平仓),现已降至约20%,至少可以尝试用美分进行交易了。

交易次数减少了三分之一,这有点奇怪。交易次数太多,本不该如此。

PS/ 尽管你一直在尝试马丁格尔策略。该策略本质上就是一种纯粹的资金管理方法。 结果说明了什么?主要说明你对马丁格尔策略的运用不够到位,有些地方风险过高,有些地方又不足…… ;-)
显然还有改进的空间。