Sumber daya yang dimuat... Pemuatan...

Tren Multi-Timeframe Mengikuti Strategi dengan 200 EMA Filter - Hanya Panjang

Penulis:ChaoZhang, Tanggal: 2024-05-23 18:07:50
Tag:EMA

img

Gambaran umum

Strategi ini adalah strategi trend-mengikuti berdasarkan multi-frame Exponential Moving Averages (EMA) dan filter EMA 200 periode. Ide utama adalah untuk menggunakan EMA pada jangka waktu yang berbeda untuk mengidentifikasi arah tren pasar dan menetapkan posisi panjang ketika tren naik dan harga di atas EMA 200 periode. Ini memastikan bahwa perdagangan hanya dimasukkan selama uptrends yang kuat, bertujuan untuk menangkap pergerakan menaik berkelanjutan sambil mengelola risiko dengan mekanisme stop-loss dan take-profit yang ditentukan.

Strategi ini menggunakan tiga kerangka waktu: 5 menit, 15 menit, dan 30 menit, menghitung EMA cepat dan lambat untuk masing-masing. Dengan membandingkan EMA cepat dan lambat untuk setiap kerangka waktu, arah tren dapat ditentukan. Sinyal tren dari tiga kerangka waktu kemudian dijumlahkan untuk mendapatkan sinyal tren gabungan. Ketika sinyal tren gabungan adalah 3 (menunjukkan uptrend di semua kerangka waktu) dan harga penutupan saat ini di atas EMA 200 periode pada kerangka waktu 5 menit, strategi memasuki posisi panjang. Posisi ditutup ketika sinyal tren gabungan turun di bawah 3 atau harga turun dari EMA 200 periode 5 menit.

Prinsip Strategi

  1. Menghitung EMA cepat (default 9 periode) dan EMA lambat (default 21 periode) untuk jangka waktu 5 menit, 15 menit, dan 30 menit.
  2. Menghitung EMA 200 periode pada jangka waktu 5 menit sebagai filter tren.
  3. Untuk setiap kerangka waktu, bandingkan EMA cepat dan lambat.
  4. Jumlah sinyal tren dari tiga kerangka waktu untuk mendapatkan sinyal tren gabungan dalam kisaran [-3, 3].
  5. Masukkan posisi panjang ketika sinyal tren gabungan sama dengan 3 (utara kuat) dan harga penutupan saat ini di atas EMA 200 periode 5 menit.
  6. Tutup posisi ketika sinyal tren gabungan turun di bawah 3 (perlahan naik) atau harga turun di bawah EMA 200 periode 5 menit.
  7. Atur stop loss 1% di bawah harga masuk dan take profit 3% di atas harga masuk.

Keuntungan

  1. Dengan memanfaatkan sinyal tren dari beberapa kerangka waktu, strategi dapat lebih komprehensif menilai tren pasar dan mengurangi sinyal palsu.
  2. Filter EMA 200 periode memastikan bahwa perdagangan hanya dimasukkan selama tren naik yang kuat, meningkatkan tingkat keberhasilan.
  3. Kondisi masuk dan keluar yang ketat, bersama dengan stop-loss dan take-profit, membantu mengendalikan risiko dan meningkatkan rasio risiko-manfaat.
  4. Parameter yang dapat disesuaikan membuat strategi dapat disesuaikan dengan pasar dan gaya perdagangan yang berbeda.

Risiko

  1. Strategi dapat bereaksi lambat pada titik perubahan tren, kehilangan peluang masuk yang optimal.
  2. Masuk dan keluar yang sering dapat meningkatkan biaya perdagangan.
  3. Tingkat stop-loss yang tetap dapat menyebabkan keluarnya pasar yang terlalu dini di pasar yang sangat volatile.
  4. Penentuan tren didasarkan pada data historis dan mungkin tidak bereaksi segera terhadap pergerakan harga mendadak yang disebabkan oleh peristiwa tak terduga.

Arahan Optimasi

  1. Memperkenalkan lebih banyak kerangka waktu atau mengoptimalkan pemilihan kerangka waktu yang ada untuk meningkatkan akurasi dan ketepatan waktu identifikasi tren.
  2. Mengoptimalkan tingkat stop loss dan take profit, seperti menerapkan trailing stop atau take profit dinamis, untuk beradaptasi dengan kondisi pasar yang berbeda.
  3. Menggabungkan sinyal tambahan seperti volume, momentum, dll, bersama dengan sinyal tren untuk membentuk kondisi masuk dan keluar multi-faktor, meningkatkan kekuatan strategi.
  4. Mengoptimalkan parameter untuk menemukan kombinasi yang paling cocok untuk pasar saat ini.
  5. Pertimbangkan untuk menambahkan mekanisme short-selling untuk memperluas penerapan strategi.

Ringkasan

Strategi ini menentukan arah tren dengan membandingkan EMA pada beberapa kerangka waktu sambil menggunakan EMA 200 periode sebagai filter tren. Strategi ini menetapkan posisi panjang ketika tren jelas naik dan harga di atas rata-rata bergerak jangka panjang, bertujuan untuk menangkap tren naik yang kuat. Kondisi masuk dan keluar yang ketat dan tingkat stop-loss dan take-profit tetap membantu mengelola risiko. Namun, strategi dapat bereaksi lambat pada titik balik tren dan memiliki keterbatasan dalam menangani volatilitas pasar mendadak karena tingkat stop-loss dan take-profit tetap. Di masa depan, fleksibilitas dan ketahanan strategi dapat ditingkatkan dengan memperkenalkan lebih banyak kerangka waktu, mengoptimalkan tingkat stop loss dan take profit, memasukkan sinyal perdagangan tambahan, mengoptimalkan parameter, dll. Ini akan memungkinkan strategi untuk lebih memanfaatkan peluang pasar sambil mengendalikan risiko.


/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
fast_length = input.int(9, title="Fast EMA Length", minval=1)
slow_length = input.int(21, title="Slow EMA Length", minval=1)
filter_length_200 = input.int(200, title="200 EMA Length", minval=1)
stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100
take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

// Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes
ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

// Calculate 200 EMA for the 5-minute timeframe
ema_200_5min = ta.ema(close, filter_length_200)

// Determine the trend for each timeframe
trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1
trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1
trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1

// Combine trend signals
combined_trend = trend_5min + trend_15min + trend_30min

// Define entry and exit conditions with 200 EMA filter
enter_long = combined_trend == 3 and close > ema_200_5min
exit_long = combined_trend < 3 or close < ema_200_5min

// Plot EMAs for the 5-minute timeframe
plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min")
plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min")
plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min")

// Strategy execution
if (enter_long)
    strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc))
if (exit_long)
    strategy.close("Long")


Berkaitan

Lebih banyak