Il s'agit d'une stratégie de trading adaptative basée sur des signaux croisés de moyenne mobile double. La stratégie utilise des moyennes mobiles simples (SMA) de 14 et 28 périodes pour générer des signaux de trading, combinées à des mécanismes de stop-loss et de take-profit réglables pour atteindre une gestion équilibrée du risque-rendement.
La logique de base est basée sur la relation croisée entre deux SMA de périodes différentes. Un signal long est généré lorsque l'AM à court terme (14 périodes) franchit le niveau de l'AM à long terme (28 périodes) et un signal court est généré lorsque l'AM à court terme franchit le niveau de l'AM à long terme. La stratégie intègre des mécanismes de stop-loss et de take-profit basés sur des pourcentages fixés respectivement à 2% et 4%, permettant un ajustement automatique des points de sortie en fonction des prix du marché.
Il s'agit d'une stratégie de trading bien structurée et logiquement solide. Elle capture les opportunités de trading grâce à des croisements doubles de moyennes mobiles tout en contrôlant les risques avec des mécanismes d'arrêt-perte et de prise de profit adaptatifs. Bien qu'il existe une marge d'optimisation, la conception globale adhère aux principes de trading quantitatifs fondamentaux. Grâce aux directions d'optimisation suggérées, la stabilité et le potentiel de rentabilité de la stratégie peuvent être encore améliorés.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('My Custom Strategy', overlay = true) // Parámetros de las SMAs (Medias Móviles Simples) sma14 = ta.sma(close, 14) sma28 = ta.sma(close, 28) // Stop Loss y Take Profit configurables stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1) take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1) // Cálculo de stop loss y take profit stop_loss = close * (1 - stop_loss_percent / 100) take_profit = close * (1 + take_profit_percent / 100) // Condiciones de entrada para compra (long) longCondition = ta.crossover(sma14, sma28) if (longCondition) strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit) plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY") // Condiciones de entrada para venta (short) shortCondition = ta.crossunder(sma14, sma28) if (shortCondition) strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit) plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL") // Visualización de las SMAs en el gráfico plot(sma14, color=color.blue, title="SMA 14") plot(sma28, color=color.red, title="SMA 28")