- 显示:
- 45
- 等级:
- 已发布:
- 2025.06.29 12:09
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
1.枚举类型(enumJnsSignal、enumOrderType)
-enumJnsSignal 该枚举定义了 EA 中使用的信号类型。有两个信号选项:
- eTypeCrossMA":使用Cross 2 MA(两条移动平均线的交叉)信号。
- eTypeTrend"(趋势):使用 移动平均线和随机指标跟踪趋势。
-enumOrderType 该枚举定义了订单类型:
- eBuy"(买入):买入 订单。
- 卖出":卖出 订单。
- `eNone`:未执行订单。
2.输入参数
-inMagicNumber 用于区分此 EA 订单的唯一神奇数字。
-inLotSize 每笔订单的初始手数。
-inMultiply 手数策略中使用的乘数因子。
-inJarakLayer 网格/层策略中交易位置之间的点距。
-inMAPeriodFast & inMAPeriodSlow 快速和慢速移动平均线的周期。
-inSTOKPeriod, inSTODPeriod, inSTOSlowing 随机振荡器的参数。
-inTakeProfit & inStopLoss 止盈 和止损的设置。
3.结构体 dataTrades
- 该结构用于存储与未结交易头寸相关的数据,如头寸总数(`ttlPos`)、头寸平均价格(`hargaTA`, `hargaTB`)和总交易量(`ttlLot`)。
4.OnInit() 函数
- 该函数处理 EA 的初始化,包括验证输入参数(例如,确保快速 MA 周期小于慢速 MA 周期)以及为 MA 和随机指标创建句柄。
5.OnTick() 函数
- 每次价格移动(tick)时执行的主函数。
- 它调用GetSignal() 函数检查新信号,如果发现信号,则使用manageTrading() 函数执行交易。
- 它还调用setTPSL(),以确保止盈和止损随时更新。
6.isNewCandle() 函数
- 该函数用于检测是否已形成新的蜡烛图。这一点很重要,因为 EA 仅在新蜡烛形成时检查信号。
7.GetSignal() 函数
- 该函数根据所选策略确定是否存在有效的交易信号:
- 对于eTypeCrossMA,信号由快速和慢速移动平均线的交叉决定。
- 对于eTypeTrend,信号通过 MA 和随机指标确认。
8.管理交易()函数
- 该函数用于管理交易的执行。
- 如果检测到有效信号,EA 就会用getLotSize() 函数确定的手数开仓。
- 还将应用网格/层策略,根据价格距离(`inJarakLayer`)开立额外仓位。
9.updateDataTrades() 函数
- 该函数更新与正在进行的交易头寸相关的数据,如计算未结头寸的平均价格和总成交量。
10.openTrade() 功能
- 该函数根据生成的信号和计算的手数打开一个新的交易仓位。它使用OrderSend() 来执行订单。
11.setTPSL() 功能
- 该函数设置或更新每个未结头寸的止盈 和 止损。
12.modifTPSL() 功能
- 如果现有仓位的止盈 和 止损 值与之前设置的不同,该函数将对其进行修改。
13.validateLot() 功能
- 该函数确保使用的手数在允许的最小和最大范围内,并符合最小手数步长(`gLotStep`)。
14.getLotSize() 功能
- 该函数根据初始手数和已开仓头寸数计算手数,并考虑乘数系数 (`inMultiply`)。
该代码旨在捕捉市场趋势,并利用移动平均线和随机指标的技术信号自动管理交易仓位。
由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/53022

该脚本和 EA 使编码员能够回溯测试其使用 MQL5 日历的基于新闻的策略。

MQL5 中的 RiskManagement 库提供高效、动态的风险管理,并进行了优化,以最大限度地减少资源。它允许使用可定制的修改器设置最大盈利和亏损限制。它包括 OCO 订单控制以及蜡烛图管理和价格转换工具。

Trade Assistant MetaTrader 指标 - 基于三个标准指标的多时间框架指标:随机振荡器、RSI(相对强弱指数)和 CCI(商品通道指数)。它显示 M1、M5、M15、M30、H1、H4、D1、W1 和 MN1 时间框架的当前趋势方向。使用该指标时,您可以清楚地了解所有重要时间框架的趋势。将该指标附加到哪个时间框架并不重要。该指标可下载至 MT4 和 MT5。

离散技术指标由价格和交易量的变化决定。