Cette stratégie est un système de négociation de paramètres adaptatif basé sur des signaux de croisement de moyenne mobile double. Il génère des signaux de négociation par le croisement de moyennes mobiles rapides et lentes, combiné à des paramètres de gestion des risques réglables, y compris le stop-loss, le take-profit et le trailing stop, permettant une gestion flexible de la stratégie de négociation. Le noyau de la stratégie réside dans l'ajustement dynamique de divers paramètres via le panneau de contrôle, permettant à la stratégie de s'adapter à différents environnements de marché.
La stratégie utilise deux moyennes mobiles - rapide et lente - comme indicateurs de base. Un signal de position longue est généré lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, tandis qu'un signal de fermeture de position est généré lorsque la moyenne mobile rapide dépasse la moyenne mobile lente.
Cette stratégie construit un système de négociation adaptatif grâce à des croisements doubles de moyennes mobiles combinés à des paramètres de gestion des risques flexibles. Ses atouts résident dans une forte adaptabilité des paramètres et un contrôle complet des risques, tandis que l'attention doit être portée aux risques provenant de différents marchés et à l'optimisation des paramètres.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 2d basePeriod: 2d 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/ // © traderhub //@version=5 strategy("Two Moving Averages Strategy with Adjustable Parameters", overlay=true) // Adjustable parameters for fast and slow moving averages fastLength = input.int(10, title="Fast Moving Average Length", minval=1, maxval=100) slowLength = input.int(30, title="Slow Moving Average Length", minval=1, maxval=100) // Risk management parameters stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Stop-loss percentage takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Take-profit percentage trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Trailing stop percentage // Calculate fast and slow moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Plot moving averages on the chart plot(fastMA, color=color.blue, title="Fast Moving Average") plot(slowMA, color=color.red, title="Slow Moving Average") // Conditions for opening and closing positions longCondition = ta.crossover(fastMA, slowMA) // Buy when fast moving average crosses above the slow moving average shortCondition = ta.crossunder(fastMA, slowMA) // Sell when fast moving average crosses below the slow moving average // Variables for stop-loss and take-profit levels var float longStopLevel = na var float longTakeProfitLevel = na // Enter a long position if (longCondition) longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100) longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100) strategy.entry("Long", strategy.long) // Manage stop-loss, take-profit, and trailing stop for long positions if (strategy.position_size > 0) strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc) // Close the long position and enter short when the condition is met if (shortCondition) strategy.close("Long") strategy.entry("Short", strategy.short)