文章 "交易机器人风险管理器(第一部分):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回测结果:

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

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