Bollinger Bands dan EMA Trend Following Strategy menggabungkan dua indikator teknis, Bollinger Bands dan Exponential Moving Average (EMA), untuk mengidentifikasi pergerakan harga jangka pendek potensial di pasar. Bollinger Bands digunakan untuk mengukur volatilitas harga, sementara EMA digunakan untuk menilai arah tren. Ketika harga penutupan melintasi di atas EMA dan melampaui band atas, ini menunjukkan potensi kelanjutan tren naik, memicu posisi panjang. Sebaliknya, ketika harga penutupan melintasi di bawah EMA dan turun di bawah band bawah, ini menunjukkan potensi kelanjutan tren penurunan, membentuk posisi pendek. Strategi ini juga menggabungkan teknik manajemen risiko seperti kehilangan dan tingkat keuntungan untuk menghentikan risiko turun dan mengunci keuntungan. Secara keseluruhan, strategi ini memberikan para pedagang pendekatan sistematis untuk keluar dari perdagangan berdasarkan kondisi masuk yang terdefinisi dengan baik dan peningkatan probabilitas perdagangan yang sukses.
Inti dari strategi ini terletak pada kombinasi Bollinger Bands dan EMA untuk mengidentifikasi peluang perdagangan potensial. Bollinger Bands terdiri dari tiga garis: band tengah (biasanya rata-rata bergerak sederhana), band atas (band tengah ditambah sejumlah penyimpangan standar), dan band bawah (band tengah dikurangi sejumlah penyimpangan standar).
Logika perdagangan dari strategi ini adalah sebagai berikut:
Bollinger Bands dan EMA Trend Following Strategy menawarkan para pedagang pendekatan sistematis untuk menangkap pergerakan harga jangka pendek di pasar dengan menggabungkan indikator volatilitas dan indikator trend-following. Kekuatan strategi ini terletak pada kemampuannya untuk secara efektif mengidentifikasi dan mengikuti tren pasar sambil menggabungkan manajemen risiko dan teknik ukuran posisi. Namun, strategi ini juga menghadapi risiko seperti sensitivitas parameter, kebisingan pasar, pembalikan tren, dan perlu ditingkatkan dan dioptimalkan melalui optimalisasi parameter, konfirmasi tren, stop loss dinamis dan mengambil keuntungan, optimasi ukuran posisi, dan analisis multi-frame waktu. Secara keseluruhan, Bollinger Bands dan EMA Trend Following Strategy menyediakan para pedagang dengan kerangka kerja perdagangan yang layak, tetapi membutuhkan penyesuaian dan optimalisasi yang sesuai berdasarkan kondisi pasar tertentu dan tujuan perdagangan dalam aplikasi praktis.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands and EMA Strategy", overlay=true) // Bollinger Bands Inputs bb_length = input.int(20, minval=1, title="Bollinger Bands Length") bb_mult = input.float(2.0, minval=0.001, maxval=50, title="Bollinger Bands StdDev") bb_src = input(close, title="Bollinger Bands Source") bb_offset = input.int(0, title="Bollinger Bands Offset", minval=-500, maxval=500) // EMA Inputs ema_period = input.int(9, minval=1, title="EMA Period") ema_src = input(close, title="EMA Source") ema_offset = input.int(0, title="EMA Offset", minval=-500, maxval=500) // Calculate Bollinger Bands bb_basis = ta.sma(bb_src, bb_length) bb_dev = bb_mult * ta.stdev(bb_src, bb_length) bb_upper = bb_basis + bb_dev bb_lower = bb_basis - bb_dev // Plot Bollinger Bands plot(bb_basis, "BB Basis", color=color.blue, offset=bb_offset) p1 = plot(bb_upper, "BB Upper", color=color.red, offset=bb_offset) p2 = plot(bb_lower, "BB Lower", color=color.green, offset=bb_offset) fill(p1, p2, title="BB Background", color=color.rgb(33, 150, 243, 95)) // Calculate EMA ema_value = ta.ema(ema_src, ema_period) // Plot EMA plot(ema_value, title="EMA", color=color.orange, offset=ema_offset) // Strategy Conditions long_condition = ta.crossover(close, ema_value) and close > bb_upper short_condition = ta.crossunder(close, ema_value) and close < bb_lower // Define Stop Loss and Take Profit Levels stop_loss_pct = input.float(0.5, title="Stop Loss (%)") take_profit_pct = input.float(1.0, title="Take Profit (%)") stop_loss_level_long = close * (1 - stop_loss_pct / 100) take_profit_level_long = close * (1 + take_profit_pct / 100) stop_loss_level_short = close * (1 + stop_loss_pct / 100) take_profit_level_short = close * (1 - take_profit_pct / 100) // Calculate Position Size Based on Risk Per Trade risk_per_trade = input.float(1.0, title="Risk Per Trade (%)") capital_at_risk = strategy.equity * risk_per_trade / 100 risk_per_unit_long = math.abs(close - stop_loss_level_long) risk_per_unit_short = math.abs(close - stop_loss_level_short) position_size_long = capital_at_risk / risk_per_unit_long position_size_short = capital_at_risk / risk_per_unit_short // Enter Long and Short Trades if long_condition strategy.entry("Long", strategy.long, qty=position_size_long) strategy.exit("Take Profit", "Long", limit=take_profit_level_long) strategy.exit("Stop Loss", "Long", stop=stop_loss_level_long) if short_condition strategy.entry("Short", strategy.short, qty=position_size_short) strategy.exit("Take Profit", "Short", limit=take_profit_level_short) strategy.exit("Stop Loss", "Short", stop=stop_loss_level_short)