MetaTrader4
移动平均线:MetaTrader 4 的交易助手
大家好!今天我们来聊聊移动平均线(Moving Average),这可是在外汇交易中非常重要的工具,尤其是在 MetaTrader 4 平台上,它是许多交易者的最佳助手。移动平均线交易系统主要依靠一条移动平均线来生成交易信号。当最新的蜡烛(bar index 等于 1)价格与移动平均线相交时,系统就会执行开仓或平仓操作。我们的交易手数会根据一个特定算法进行优化。这个专家顾问会分析移动平均线与市场价格图表之间的关系,具体的检查是通过 CheckForOpen() 函数来完成的。如果移动平均线在蜡烛中处于开盘价之上而平盘价之下,系统就会开仓做多(BUY);反之,如果移动平均线在开盘价之下而平盘价之上,系统就会开仓做空(SELL)。在资金管理方面,我们采用的是一种简单但有效的方法:每个交易头寸的大小会根据之前交易的结果进行调整。这个算法是通过 LotsOptimized() 函数实现的。基本手数的计算基于可接受的最大风险:lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);这里的 MaximumRisk 参数表示每笔交易的基本风险百分比,通常在 0.01(1%)到 1(100%)之间。例如,如果可用保证金(AccountFreeMargin)为 $20,500,而资金管理规则要求风险为 2%,那么基本手数将为 20500 * 0.02 / 1000 = 0.41。控制手数的精确性非常重要,结果需要规范化为允许的值,通常允许以 0.1 为步进的分手数交易。交易量为 0.41 的订单将不会被执行。为此,我们使用 NormalizeDouble() 函数,精确到小数点后 1 位,最终基本手数将规范为 0.4。通过可用保证金来计算基本手数,可以根据交易成功率增加操作的手数,也就是进行再投资。这是提高交易有效性的基本机制。DecreaseFactor 是在连续亏损后减少手数的比例,正常值为 2, 3, 4, 5。如果前面的交易出现亏损,后续的手数会按 DecreaseFactor 的比例减少,以便度过亏损期。这是资金管理算法的主要因素。思路很简单:如果交易成功率提高,系统将以基本手数最大化盈利;但如果出现亏损,系统会“减速”,直到再次产生正收益的交易。若要禁用“减速”功能,只需将 DecreaseFactor 设置为 0。系统将根据交易历史中连续亏损的交易次数来重新计算基本手数:if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);这样,算法能够有效降低由于连续亏损而带来的风险。最后,在函数结束时,手数会强制检查是否符合最小允许手数的标准,以避免计算结果为 0 的情况:if(lot
2005.11.29