EA: Fractured Fractals - 页 2

 
/* Fractured Fractals (barabashkakvn's edition) EA 说明:一般用途: - 该 EA 由 tageiger 于 2005 年创建,使用经典的 iFractals 指标来识别市场中的潜在反转点。 - 它通过下挂单(BuyStop/SellStop)或修改现有仓位(如调整止损水平)来根据分形值做出交易决策。 - 该 EA 根据账户保证金和用户定义的最大风险百分比计算最佳交易规模,从而纳入风险管理。主要组件: - 库:代码包括多个 MQL5 交易库(CTrade、CPositionInfo、CSymbolInfo、CAccountInfo、CDealInfo、COrderInfo),用于处理交易操作、管理头寸以及检索符号/账户详细信息:- MaximumRisk(最大风险):每笔交易的最大风险,占账户净值的百分比。- DecreaseFactor(减少系数):用于在连续亏损后缩小交易规模的系数。- 到期时间:挂单的有效期(小时)。- m_magic:唯一标识符(神奇数字),用于将此 EA 执行的交易与其他交易区分开来。初始化(OnInit): - EA 设置交易符号并刷新市场数据。 - 使用指定的神奇数字 配置交易对象,并根据经纪商支持的类型选择适当的订单填写类型(FOK、IOC 或默认方法)。各种分形相关变量初始化为 EMPTY_VALUE,并存储最后一笔盈利交易的时间。OnTick 函数:- OnTick 函数在每个新的条形图上触发。EA 通过移除旧值并保存最新值来更新分形值历史记录。此外,它还会根据新的分形水平调整未结头寸的止损水平,并在市场条件发生变化时删除过时的挂单。风险和交易规模管理: - TradeSizeOptimized 功能根据账户的自由保证金、定义的最大风险百分比和每手保证金要求计算理想的手数规模。 - 如果检测到连续亏损,EA 会根据 DecreaseFactor 进一步缩小交易规模。 - LotCheck 功能确保计算的手数规模符合经纪商的最小、最大和手数步长限制。其他实用功能: - RefreshRates:刷新符号的市场数据以确保当前汇率:检查经纪商是否允许特定的订单填写类型(如 FOK、IOC):检索指定条形图的时间,确保 EA 在新条形图上运行。 - LastProfitDeal:扫描交易历史,查找最后一笔盈利交易的时间,用于风险管理计算:从指标的缓冲区检索分形值,如果数据无法复制,则记录错误日志:比较指定精度的两个双数值,以确定它们是否有效相等:打印注释:用当前的分形值和时间更新图表上的注释,以便监控。该 EA 利用 iFractals 指标来检测市场反转。 - 当满足某些分形条件时,它会自动下挂单。 - 通过调整止损水平来动态管理未结头寸。这段结构良好的代码演示了如何在 MQL5 中使用面向对象编程来有效管理交易操作和风险。