- 显示:
- 11
- 等级:
- 已发布:
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
黄金是经纪商之间几乎没有任何共识的交易品种。其交易代码可能是XAUUSD、GOLD、XAUUSD.m、XAUUSDpro或GOLD#。一份合约的规模可能是100盎司、10盎司,也可能是1盎司。价格可能显示两位数,也可能显示三位数。 一个根据硬编码的“100盎司、两位数”来计算手数的EA,在另一家经纪商处运行时,并非只是略有偏差——而是会出现十倍的误差,且这种误差会导致账户资金被清空。
本类通过查询交易终端而非直接假设来确定合约规格。
检测机制。 Detect() 方法会遍历账户提供的所有交易符号并对名称进行评分,因此 XAUUSD 的优先级高于 XAUUSD.m,而 XAUUSD.m 又高于不完全匹配的名称;同时,白银、铂金和钯金会被直接排除——在搜索黄金时,XAGUSD 绝不能被选中。已存在于“市场观察”窗口中的交易符号会获得少量加分。 如果您的经纪商使用了一些非标准名称,Attach("YOURNAME") 会跳过搜索。
规格说明。 ContractSize()、Digits()、Point()、TickSize()、TickValueLoss()、MinLot()、MaxLot()、LotStep()、StopsLevel() 和 FreezeLevel() 直接取自该交易符号在交易终端中的数据。
资金。 LossForDistance(lots, distance) 表示价格不利变动所造成的损失(以账户货币计)。LotForRisk(riskMoney, distance) 则是其反向计算,也是真正重要的函数: 该函数通过 SYMBOL_TRADE_TICK_VALUE_LOSS 进行转换,因此无论面对 10 盎司合约还是以欧元计价的账户,计算结果均保持准确;随后将结果向下取整至经纪商的交易量步长,并限制在该经纪商的最小和最大交易量范围内。 当即使是最小的交易量所承担的风险也超过了允许范围时,该函数会返回零,而非默认返回最小手数——这是大多数仓位计算代码因向上取整而处理错误的情况。
诊断功能。 Attach() 会收集以下警告:合约规模非 100、位数异常、终端报告的点值为零,以及止损位非零。PrintReport() 会打印包含示例计算的完整规范,这通常是查明策略在两家经纪商上表现不同的原因最快捷的方式。
在一个使用100盎司合约、欧元账户且止损点位为1500点的实盘账户中,10 000欧元的1%计算结果为0.07手,对应风险为90.42欧元。 同样的计算,若采用10盎司合约,结果为0.70手;若采用1盎司合约,则为7.00手。风险相同,止损位相同,但交易量却相差百倍——这正是硬编码常量所导致的错误。
该软件包包含 GoldSymbolDemo.mq5 脚本,该脚本可检测黄金符号、打印报告,并将账户余额的百分比转换为不同止损距离下的手数。在任何图表上运行该脚本,即可了解您所用经纪商的黄金合约究竟是什么。
该类不会开立任何交易,也不会修改任何持仓。它仅用于解答疑问。

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/77067
Trade Excursion Report: MFE and MAE of every closed trade, to CSV
针对每笔已平仓交易导出一行CSV数据,其中包含对账单上未显示的数值:该交易曾达到的最高未实现盈利(MFE)、曾承受过的最大未实现亏损(MAE)、实际保留的MFE金额、交易跨过的K线数量以及持仓时长。 该指标的计算方式与“交易波动”指标相同,但将结果写入文件而非绘制在图表上,因为针对这些数据值得探讨的问题,是图表无法解答的:获利率是否取决于入场时间? 我提前平仓的交易是否恰恰是持仓时间最长的?周一的亏损交易达到的MAE是否与周五不同?只要生成CSV文件,这些问题只需通过一个数据透视表即可解答。 输出格式为分号分隔且带标题行,位于 MQL5\Files 目录下;可在任何电子表格软件中打开。测量限制:波动值取自所选时间周期的K线高低点;单根K线内的价格路径无法确定。“K线”列报告了每笔交易的分辨率,汇总统计时将单根K线交易单独计数,而非将其平均计算在内。
SessionReopenEA
在芝加哥商品交易所(CME),黄金设有每日维护休市时段。在11年的样本中,每个日历年的这一时段结束后首小时,金价涨幅均超出随机波动的解释范围——而当天其余各小时的走势则基本持平。 每交易时段仅执行一笔交易,采用基于波动率调整的服务器端止损,不进行均价法或网格交易。 随后发现我的成本模型存在错误。 基于真实报价的回测显示,市场重新开盘时的真实往返成本约为60点,而非我之前研究得出的19点——M1K柱状图中的价差字段是按柱统计的汇总数据,实际成本被低估了大约三倍。使用修正后的成本重新运行11年数据: +3.34 个基点,t 7.40,胜率 59.3% -> +1.60 个基点,t 3.42,胜率 50.8% 策略优势依然存在,但强度不足原来的半数。第二个数字才是真实的。 这并非意味着:年化收益率约+3.3%,回撤率4.6%,大约每九年出现一次亏损。以0.01手计算,年交易次数约为130次——该数字衡量的是仓位规模,而非策略本身。
OHLC Reality Check - at what stop distance does your backtest start lying?
在每个M1K线段上开立一个虚拟的套期交易,根据实际 tick 历史数据向前推进,并针对一系列止损距离,报告1分钟OHLC建模在多大程度上会导致交易方向判断错误。
离散
离散技术指标由价格和交易量的变化决定。