この戦略は,EMAとSMAという2つの移動平均値に基づいたクロスオーバー戦略である. 遅い EMAが高速なSMAを超えると,購入信号を生成する. 遅い EMAが高速なSMAを下回ると,販売信号を生成する. この戦略は,いくつかのサポートを提供しながら牛市場での上昇傾向を把握することを目的としている.
この戦略は20期SMAと21期EMAの2つの移動平均を使用している.EMAがSMAを超えると,市場は上昇傾向になり,購入信号を生成する可能性があることを示唆する.逆に,EMAがSMAを下回る傾向になり,販売信号を生成する可能性があることを示唆する.シグナルを確認するために,戦略は現在の閉値が以前の閉値 (購入信号) より高く,または以前の閉値 (販売信号) より低いことを要求する.
EMA-SMAクロスオーバーブルマーケットサポートバンド戦略は,特にブルマーケットに適したシンプルで分かりやすいトレンドフォロー戦略である.しかし,この戦略には,誤った信号,遅れ,およびトレンド認識能力の制限などの一定の制限もあります.他の指標と組み合わせ,パラメータを最適化し,ストップ・ロストとテイク・プロフィートを追加することで,戦略のパフォーマンスと強度がさらに向上することができます.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © rodrinverte //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000) // Definir la longitud de las medias móviles fast = ta.sma(close, 20) slow = ta.ema(close, 21) // Definir condiciones de compra y venta buySignal = ta.crossover(slow, fast) sellSignal = ta.crossunder(slow, fast) // Configurar colores de las líneas y relleno emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue smaColor = color.gray fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90) // Esperar un periodo para confirmar la señal de compra o venta buyConfirmation = close > close[1] and buySignal sellConfirmation = close < close[1] and sellSignal // Dibujar las medias móviles plot(slow, title="EMA", color=emaColor) plot(fast, title="SMA", color=smaColor) // Configurar las señales de compra y venta plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Estrategia de compra y venta if (buyConfirmation) strategy.entry("Buy", strategy.long) if (sellConfirmation) strategy.entry("Sell", strategy.short) // Cerrar posición opuesta al cruce original if (sellSignal) strategy.close("Buy") if (buySignal) strategy.close("Sell")