本策略通过计算XAUUSD(黄金)的30日简单移动平均线(MA30)和200日简单移动平均线(MA200)的交叉情况,实现金叉买入和死叉卖出的量化交易。该策略同时设置了止损和止盈价格,可以自动平仓。
该策略的核心指标是MA30和MA200。当MA30上穿MA200时,产生买入信号;当MA30下穿MA200时,产生卖出信号。这种交叉被称为“金叉”和“死叉”。
具体来说,该策略使用ta库计算MA30和MA200。然后通过ta.crossover和ta.crossunder函数判断它们的交叉情况。当发生向上交叉(金叉)时,设置longCondition值为true,进行买入操作;当发生向下交叉(死叉)时,设置shortCondition值为true,进行卖出操作。
在交易执行方面,买入和卖出订单分别设置了4万点的止损和止盈价格。这相当于XAUUSD中4000点的价格变动。当价格触发止损或止盈时,orders会自动平仓。
此外,策略还设置了对冲机制。如果当前持有多头仓位,后续出现死叉信号,会直接平仓换向;如果当前持有空头仓位,后续出现金叉信号,也会直接平仓换向。这可以避免在趋势反转时承受大幅亏损。
这是一个非常简单直观的趋势跟踪策略。它具有如下优点:
该策略也存在一些风险:
为控制这些风险,可以对参数进行优化,调整止损幅度,过滤反转信号等。
该策略可以从以下几个方面进行优化:
通过参数调整、增加过滤器、仓位管理等手段,可以进一步提高策略稳定性。
本策略是一个简单实用的移动平均交叉策略。它顺应市场周期运行,通过设置自动止损止盈平仓和对冲机制来控制风险。该策略易于理解和实现,可适用于多种交易品种和时间周期。通过进一步优化,可以获得更好的风险收益比,是一种值得推荐的量化交易策略。
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia de Cruce de Medias Móviles", overlay=true) // Medias móviles ma30 = ta.sma(close, 30) ma60 = ta.sma(close, 60) ma200 = ta.sma(close, 200) // Cruce de medias móviles crossoverUp = ta.crossover(ma30, ma200) crossoverDown = ta.crossunder(ma30, ma200) // Señales de compra y venta longCondition = crossoverUp shortCondition = crossoverDown // Ejecución de órdenes if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("Cover", "Buy", stop=close - 40.000, limit=close + 40.000) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=close + 40.000, limit=close - 40.000) // Plot de las medias móviles plot(ma30, color=color.blue, title="MA 30") plot(ma60, color=color.orange, title="MA 60") plot(ma200, color=color.green, title="MA 200") // Condiciones para cerrar la posición contraria if (strategy.position_size > 0) if (crossoverDown) strategy.close("Buy") if (strategy.position_size < 0) if (crossoverUp) strategy.close("Sell")