
La stratégie est un système de trading de paramètres auto-adaptatif basé sur des signaux de croisement bi-homogènes. Elle génère des signaux de négociation par la croisée de moyennes mobiles rapides et moyennes mobiles lentes, et est combinée à des paramètres de gestion du risque tels que des arrêts, des arrêts et des arrêts de suivi réglables, permettant une gestion flexible de la stratégie de négociation. Le cœur de la stratégie réside dans l’ajustement des paramètres par la dynamique du panneau de commande, permettant à la stratégie de s’adapter à différents environnements de marché.
La stratégie utilise deux moyennes mobiles, rapide et lente, comme indicateurs centraux. Lorsque la moyenne mobile rapide traverse la moyenne mobile lente vers le haut, le système génère plusieurs signaux; lorsque la moyenne mobile rapide traverse la moyenne mobile lente vers le bas, le système génère des signaux d’égalisation. La stratégie introduit également un triple mécanisme de contrôle du risque: arrêt fixe, arrêt fixe et arrêt de suivi.
La stratégie a pour avantage d’être réglable et de bien maîtriser les risques, mais elle doit également être attentive aux risques liés aux chocs du marché et à l’optimisation des paramètres. La stratégie a une grande marge d’optimisation grâce à l’ajout de filtres de tendance et à l’optimisation des méthodes d’arrêt des pertes.
/*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)