Cette stratégie est un système de trading basé sur des moyennes mobiles à plusieurs périodes. Elle utilise des moyennes mobiles simples (MMA) à 89 périodes et à 21 périodes pour déterminer la direction générale de la tendance du marché, tout en incorporant des hauts et des bas de moyenne mobile exponentielle (EMA) à 5 périodes pour identifier des signaux de trading spécifiques.
La logique de base comprend les éléments clés suivants: 1. Détermination de la tendance: utilise la position relative des SMA de 89 et 21 périodes ainsi que la position des prix pour identifier les tendances. Une tendance haussière est confirmée lorsque le prix et l'EMA de 5 périodes sont supérieurs à la SMA de 21 périodes, qui est supérieure à la SMA de 89 périodes; l'inverse confirme une tendance à la baisse. 2. Signaux d'entrée: dans les tendances haussières, entrez dans des positions longues lorsque le prix remonte au plus bas EMA de 5 périodes; dans les tendances baissières, entrez dans des positions courtes lorsque le prix rebondit au plus haut EMA de 5 périodes. Gestion de position: ouvre deux positions de contrat identiques pour chaque signal déclenché. 4. Contrôle des risques: Applique des objectifs fixes de stop-loss et de profit pour la première position et un stop-loss de suivi pour la deuxième position.
Cette stratégie représente un système complet de suivi des tendances qui capture les tendances du marché à travers des moyennes mobiles à plusieurs périodes tout en mettant en œuvre des méthodes de gestion de position et de contrôle des risques flexibles.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tobiashartemink2 //@version=5 strategy("High 5 Trading Technique", overlay=true) // --- Input parameters --- sma89Length = input.int(title="SMA 89 Length", defval=89) sma21Length = input.int(title="SMA 21 Length", defval=21) ema5HighLength = input.int(title="EMA 5 High Length", defval=5) ema5LowLength = input.int(title="EMA 5 Low Length", defval=5) contracts = input.int(title="Aantal Contracten", defval=1) stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25) takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25) // --- Calculate moving averages --- sma89 = ta.sma(close, sma89Length) sma21 = ta.sma(close, sma21Length) ema5High = ta.ema(high, ema5HighLength) ema5Low = ta.ema(low, ema5LowLength) // --- Identify trend and order of moving averages --- longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89 shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89 // --- Entry signals --- longTrigger = longSetup and close <= ema5Low shortTrigger = shortSetup and close >= ema5High // --- Entry orders --- if (longTrigger) strategy.entry("Long 1", strategy.long, qty=contracts) strategy.entry("Long 2", strategy.long, qty=contracts) if (shortTrigger) strategy.entry("Short 1", strategy.short, qty=contracts) strategy.entry("Short 2", strategy.short, qty=contracts) // --- Stop-loss and take-profit for long positions --- if (strategy.position_size > 0) strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints) strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints) // --- Stop-loss and take-profit for short positions --- if (strategy.position_size < 0) strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints) strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints) // --- Plot moving averages --- plot(sma89, color=color.blue, linewidth=2) plot(sma21, color=color.red, linewidth=2) plot(ema5High, color=color.green, linewidth=2) plot(ema5Low, color=color.orange, linewidth=2)