- 显示:
- 9
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
ContractSizer.mqh 根据账户余额确定合约规模,并设有三项独立的保护机制:阶梯式限制(每达到余额的一个倍数对应 一个合约,且始终设有上限)、下限保护(不得低于最低保证金进行交易)以及断路器(当达到余额峰值的一定比例时停止交易,且不会自动重置)。
存取款数据从交易历史(DEAL_TYPE_BALANCE)中读取,并按相同金额调整峰值,因此回撤期间的存款不会掩盖回撤情况。峰值数据保存在 MQL5\Files 目录下,并在终端重启后依然有效。
构造函数: CContractSizer(factor = 3000.0, maxContracts = 500, minContracts = 1, minCapital = 1500.0, maxDD = 0.0, peakFile = "contract_sizer_peak.txt")。用法: 在每个 tick 时调用 ContractsToday(TimeLocal());该函数仅在日更时重新计算。CapByBalance() 即使在手动下单时也保持有效。Rearm() 需手动决定是否执行。
模拟参数: InpBalancePerContract = 3000,InpMinCapital = 1500,InpMaxDrawdown = 0.20,InpDemoDeposit = true。
该演示程序会输出 一个为期12天的模拟轨迹(余额 / 峰值 / 跌幅 / 合约数 / 事件),并在回撤最低点进行入金,随后在真实账户上运行该类。请分别开启和关闭 InpDemoDeposit 参数运行程序,并比较“跌幅”列的数据。
限制: 仓位规模不会创造优势;它只会放大已存在的优势。本程序不进行任何交易。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77079
Position sizing from risk, using the broker's own tick value and volume step
根据风险金额计算仓位规模,该风险金额基于该交易品种的实际点值、点幅和成交量步长计算得出,而非基于假设的点值。该功能始终将成交量向下取整;当您的风险金额小于最小手数时,系统会提示并报告该手数实际所需的成本。 该程序不依赖交易终端状态,因此其仓位计算逻辑可离线测试——附带一个包含41个断言的测试脚本。
RiskPilot Pro — 支持拖拽下单的风险面板,具备盈亏平衡、追踪止损和每日亏损保护功能
将止损位拖动到您真正想要的位置,点击“买入”或“卖出”,手数就会自动调整正确——无需计算器,也无需电子表格。该功能支持设置盈亏平衡点和追踪止损,并在触及止损限额时自动结束当日交易。