
Cette stratégie est un système de trading composite qui combine plusieurs indicateurs, principalement basés sur l’analyse complète de la moyenne mobile exponentielle (EMA), de la supertrend, des bandes de Bollinger et de l’indice de force relative (RSI). La logique principale de la stratégie construit des signaux de trading autour de l’EMA et du Supertrend, tout en combinant les bandes de Bollinger et le RSI pour fournir un jugement auxiliaire de la volatilité et de la dynamique du marché. Le système de trading utilise une analyse RSI sur plusieurs périodes, y compris des périodes quotidiennes, hebdomadaires et mensuelles, pour fournir une perspective de marché plus complète pour les décisions de trading.
La stratégie utilise une combinaison d’indicateurs techniques multicouches pour capturer les tendances du marché et les opportunités de volatilité :
Conditions de déclenchement du signal de trading :
Cette stratégie construit un système de trading relativement complet grâce à la combinaison organique de plusieurs indicateurs techniques. La combinaison de l’EMA et du Supertrend fournit les principaux signaux de trading, le filtrage ADX garantit que les transactions se déroulent dans un environnement de tendance forte, et l’analyse auxiliaire des bandes de Bollinger et du RSI fournit des perspectives de marché supplémentaires. Les principaux avantages de cette stratégie sont la fiabilité du signal et l’intégrité du système, mais elle est également confrontée à des défis de décalage du signal et d’optimisation des paramètres. Grâce aux orientations d’optimisation proposées, la stratégie devrait améliorer la rentabilité tout en maintenant la stabilité.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//made by Chinmay
//@version=6
strategy("CJ - Multi1", overlay=true)
// Input for RSI length
rsi_length = input.int(14, title="RSI Length")
// Calculate Daily RSI
daily_rsi = ta.rsi(close, rsi_length)
// Calculate Weekly RSI (using security function to get weekly data)
weekly_rsi = request.security(syminfo.tickerid, "W", ta.rsi(close, rsi_length))
// Calculate Monthly RSI (using security function to get weekly data)
monthly_rsi = request.security(syminfo.tickerid, "M", ta.rsi(close, rsi_length))
// Plot the RSIs
plot(daily_rsi, color=color.blue, title="Daily RSI", linewidth=2)
plot(weekly_rsi, color=color.red, title="Weekly RSI", linewidth=2)
plot(monthly_rsi, color=color.black, title="Monthly RSI", linewidth=2)
// Create horizontal lines at 30, 50, and 70 for RSI reference
hline(30, "Oversold", color=color.green)
hline(70, "Overbought", color=color.red)
hline(50, "Neutral", color=color.gray)
// Bollinger Bands Calculation
bb_length = 20
bb_mult = 2
bb_stddev = ta.stdev(close, bb_length)
bb_average = ta.sma(close, bb_length)
bb_upper = bb_average + bb_mult * bb_stddev
bb_lower = bb_average - bb_mult * bb_stddev
plot(bb_upper, color=color.new(#ffb13b, 0), linewidth=2)
plot(bb_average, color=color.new(#b43bff, 0), linewidth=2)
plot(bb_lower, color=color.new(#ffb13b, 0), linewidth=2)
// Inputs for EMA
ema_L1 = input.int(defval=13, title="EMA Length 1")
ema_L2 = input.int(defval=34, title="EMA Length 2")
ema_L3 = input.int(defval=100, title="EMA Length 3")
adx_level = input.int(defval=25, title="ADX Level")
// Inputs for Supertrend
atr_l = input.int(defval=10, title="ATR Length")
factor = input.float(defval=3.0, title="Supertrend Multiplier")
// Calculate EMA
ema1 = ta.ema(close, ema_L1)
ema2 = ta.ema(close, ema_L2)
ema3 = ta.ema(close, ema_L3)
// Calculate Supertrend
[supertrend, direction] = ta.supertrend(factor, atr_l)
// Calculate ADX and DI
[diplus, diminus, adx] = ta.dmi(14,14)
// Buy and Sell Conditions
buy = direction == -1 and ema1 > ema2 and close > ta.ema(close, 100) and adx > adx_level
short = direction == -1 and ema1 < ema2 and close < ta.ema(close, 100) and adx > adx_level
sell = ta.crossunder(close, supertrend)
cover = ta.crossover(close, supertrend)
// Strategy Logic
if buy
strategy.entry("Buy", strategy.long, comment="Long Entry")
if sell
strategy.close("Buy", comment="Sell Exit")
// Uncomment for Short Strategy
if short
strategy.entry("Short", strategy.short, comment="Short Entry")
if cover
strategy.close("Short", comment="Cover Exit")