Strategi perdagangan pembalikan candlestick berterusan pengulangan min

EMA MR ENTRY EXIT FILTER Trend
Tarikh penciptaan: 2025-02-19 10:51:35 Akhirnya diubah suai: 2025-02-19 10:51:35
Salin: 2 Bilangan klik: 430
1
fokus pada
1617
Pengikut

Strategi perdagangan pembalikan candlestick berterusan pengulangan min

Gambaran keseluruhan

Ini adalah strategi perdagangan berdasarkan prinsip regresi rata-rata, untuk menangkap peluang pembalikan harga jangka pendek dengan mengenal pasti bentuk garis K turun dan naik secara berturut-turut. Logik teras strategi ini adalah masuk lebih banyak selepas 3 garis K turun secara berturut-turut, dan keluar dari posisi kosong setelah 3 garis K naik secara berturut-turut.

Prinsip Strategi

Strategi ini berdasarkan elemen teras berikut:

  1. Kaunter baris K berturut-turut: jumlah baris K yang naik dan turun secara berturut-turut
  2. Syarat kemasukan: Trigger banyak isyarat apabila jumlah yang ditetapkan (default 3) turun harga penutupan K line
  3. Keadaan Keluar: isyarat tandas apabila jumlah yang ditetapkan (default 3) muncul secara berturut-turut pada harga penutupan di atas garis K
  4. Penapis EMA: secara pilihan menambah purata bergerak indeks 200 kitaran sebagai syarat penapis trend
  5. Tetingkap masa dagangan: anda boleh menetapkan masa permulaan dagangan tertentu untuk mengehadkan selang dagangan

Kelebihan Strategik

  1. Logik mudah dan jelas: Strategi menggunakan kaedah pengiraan garis K yang mudah difahami dan dilaksanakan
  2. Adaptif: boleh digunakan untuk pelbagai tempoh masa dan jenis perdagangan
  3. Fleksibiliti parameter: bilangan baris K berturut-turut, kitaran EMA dan lain-lain boleh disesuaikan mengikut keperluan
  4. Pengendalian risiko yang sempurna: Mengendalikan risiko melalui pelbagai mekanisme seperti tetingkap masa dan penapisan trend
  5. Kecekapan pengiraan yang tinggi: Logik teras hanya perlu membandingkan harga penutupan K baris berdekatan, beban operasi yang rendah

Risiko Strategik

  1. Risiko pasaran tren: kemungkinan sering mengalami penembusan palsu dalam pasaran tren yang kuat
  2. Sensitiviti parameter: tetapan bilangan baris K berturut-turut mempunyai kesan yang besar terhadap prestasi strategi
  3. Kesan slippage: mungkin menghadapi risiko slippage yang lebih besar dalam pasaran yang bergolak
  4. Risiko isyarat palsu: bentuk K-line berturut-turut mungkin terganggu oleh bunyi pasaran
  5. Hentikan Kerugian: Strategi tidak menetapkan mekanisme hentikan kerugian yang jelas, yang mungkin membawa kepada penarikan balik yang lebih besar

Arah pengoptimuman strategi

  1. Menambah mekanisme hentian: disyorkan untuk menambah hentian tetap atau hentian yang dikesan untuk mengawal risiko
  2. Optimumkan keadaan penapisan: Indikator seperti jumlah lalu lintas, kadar turun naik boleh diperkenalkan sebagai penapisan tambahan
  3. Penyesuaian parameter dinamik: pertimbangkan keperluan bilangan K baris berturut-turut yang disesuaikan secara dinamik mengikut keadaan pasaran
  4. Meningkatkan pengurusan simpanan: Mekanisme simpanan dan penurunan simpanan boleh direka untuk meningkatkan pendapatan
  5. Pengurusan masa yang lebih baik: menetapkan parameter perdagangan yang berbeza untuk tempoh masa yang berbeza

ringkaskan

Ini adalah strategi pulangan nilai rata-rata yang direka dengan munasabah, untuk mendapatkan keuntungan dengan menangkap peluang rebound harga yang lebih rendah dan lebih rendah dalam jangka pendek. Kelebihan utama strategi ini adalah logiknya yang mudah dan beradaptasi, tetapi dalam aplikasi praktikal, perlu berhati-hati untuk mengawal risiko, disarankan untuk meningkatkan kestabilan strategi dengan menambahkan mekanisme hentikan kerugian, mengoptimumkan syarat penapisan dan sebagainya.

Kod 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