Strategi perdagangan pembalikan candlestick berkelanjutan mean reversion

EMA MR ENTRY EXIT FILTER Trend
Tanggal Pembuatan: 2025-02-19 10:51:35 Akhirnya memodifikasi: 2025-02-19 10:51:35
menyalin: 2 Jumlah klik: 430
1
fokus pada
1617
Pengikut

Strategi perdagangan pembalikan candlestick berkelanjutan mean reversion

Ringkasan

Ini adalah strategi perdagangan yang didasarkan pada prinsip regresi rata-rata, untuk menangkap peluang reversal harga jangka pendek dengan mengidentifikasi bentuk garis K turun dan naik secara berturut-turut. Logika inti dari strategi ini adalah masuk lebih banyak setelah muncul 3 garis K turun secara berturut-turut, dan keluar lebih banyak setelah muncul 3 garis K naik secara berturut-turut. Strategi ini juga dapat secara selektif menggabungkan filter garis rata EMA untuk meningkatkan kualitas perdagangan.

Prinsip Strategi

Strategi ini didasarkan pada elemen inti berikut:

  1. K-line counter: menghitung jumlah K-line yang naik dan turun secara berurutan
  2. Kondisi masuk: Trigger melakukan sinyal multi ketika jumlah yang ditentukan (default 3) dari harga close-out turun secara berurutan
  3. Kondisi Keluar: Mencetak sinyal posisi terdepan ketika jumlah yang ditentukan (default 3) muncul secara berturut-turut di atas garis K
  4. Filter EMA: secara selektif menambahkan 200 siklus indeks moving average sebagai kondisi filter tren
  5. Jendela waktu perdagangan: Anda dapat mengatur waktu awal dan akhir perdagangan tertentu untuk membatasi interval perdagangan

Keunggulan Strategis

  1. Logika sederhana dan jelas: Strategi menggunakan metode penghitungan K-line sederhana, mudah dipahami dan diterapkan
  2. Adaptif: dapat diterapkan untuk berbagai periode waktu dan varietas perdagangan
  3. Fleksibilitas parameter: parameter seperti jumlah baris K dan siklus EMA dapat disesuaikan sesuai kebutuhan
  4. Pengendalian risiko yang sempurna: Mengontrol risiko melalui mekanisme yang beragam seperti jendela waktu dan penyaringan tren
  5. Efisiensi komputasi tinggi: Logika inti hanya perlu membandingkan harga penutupan K-line yang berdekatan, beban operasi kecil

Risiko Strategis

  1. Risiko pasar tren: kemungkinan terjadinya false breakout yang sering terjadi di pasar tren yang kuat
  2. Sensitivitas parameter: pengaturan jumlah baris K berturut-turut memiliki pengaruh besar terhadap kinerja kebijakan
  3. Efek slippage: Risiko slippage yang lebih besar mungkin terjadi dalam pasar yang bergejolak
  4. Risiko sinyal palsu: bentuk K-line berkelanjutan dapat terganggu oleh kebisingan pasar
  5. Kurangnya Stop Loss: Strategi tidak memiliki mekanisme stop loss yang jelas, yang dapat menyebabkan penarikan yang lebih besar

Arah optimasi strategi

  1. Menambahkan mekanisme stop loss: disarankan untuk menambahkan stop loss tetap atau tracking stop loss untuk mengendalikan risiko
  2. Optimalkan kondisi penyaringan: dapat diperkenalkan indikator seperti volume lalu lintas, fluktuasi sebagai penyaringan tambahan
  3. Penyesuaian parameter dinamis: pertimbangkan permintaan jumlah K-line berturut-turut yang disesuaikan secara dinamis dengan kondisi pasar
  4. Meningkatkan manajemen penyimpanan: dapat merancang batch penyimpanan dan pengurangan penyimpanan untuk meningkatkan pendapatan
  5. Pengelolaan waktu yang lebih baik: pengaturan parameter transaksi yang berbeda untuk periode waktu yang berbeda

Meringkaskan

Ini adalah strategi yang dirancang untuk mendapatkan keuntungan dengan menangkap peluang bouncing dari harga yang lebih rendah atau lebih rendah dalam jangka pendek. Keuntungan utama dari strategi ini adalah kesederhanaan logis dan fleksibilitasnya, tetapi dalam penerapan praktis, perlu diperhatikan pengendalian risiko, dan disarankan untuk meningkatkan stabilitas strategi dengan menambahkan mekanisme stop loss, mengoptimalkan kondisi penyaringan, dll.

Kode Sumber Strategi
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("3 Down, 3 Up Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 200, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true)


//#region INPUTS SECTION
// ============================================
// Time Settings
// ============================================
startTimeInput = input(timestamp("1 Jan 2014"), "Start Time", group = "Time Settings")
endTimeInput = input(timestamp("1 Jan 2099"), "End Time", group = "Time Settings")
isWithinTradingWindow = true

// ============================================
// Strategy Settings
// ============================================
buyTriggerInput = input.int(3, "Consecutive Down Closes for Entry", minval = 1, group = "Strategy Settings")
sellTriggerInput = input.int(3, "Consecutive Up Closes for Exit", minval = 1, group = "Strategy Settings")

// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(false, "Use EMA Filter", group = "Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval = 1, group = "Trend Filter")
//#endregion

//#region INDICATOR CALCULATIONS
// ============================================
// Consecutive Close Counter
// ============================================
var int aboveCount = na
var int belowCount = na

aboveCount := close > close[1] ? (na(aboveCount) ? 1 : aboveCount + 1) : 0
belowCount := close < close[1] ? (na(belowCount) ? 1 : belowCount + 1) : 0

// ============================================
// Trend Filter Calculation
// ============================================
emaValue = ta.ema(close, emaPeriodInput)
//#endregion

//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
longCondition = belowCount >= buyTriggerInput and isWithinTradingWindow
exitCondition = aboveCount >= sellTriggerInput

// Apply EMA Filter if enabled
if useEmaFilter
    longCondition := longCondition and close > emaValue
//#endregion

//#region STRATEGY EXECUTION
// ============================================
// Order Management
// ============================================
if longCondition
    strategy.entry("Long", strategy.long)
    
if exitCondition
    strategy.close_all()
//#endregion