Strategi Beli CCI+Double Moving Average Crossover Retracement

CCI MA
Tanggal Pembuatan: 2024-05-24 17:45:49 Akhirnya memodifikasi: 2024-05-24 17:45:49
menyalin: 3 Jumlah klik: 324
1
fokus pada
1166
Pengikut

Strategi Beli CCI+Double Moving Average Crossover Retracement

Ringkasan

Strategi CCI+ adalah strategi perdagangan kuantitatif yang menggunakan kombinasi indikator bullish (CCI) dan sinyal crossover bilateral. Strategi ini dilakukan dengan menunggu harga mundur ke dekat garis cepat dan membeli saat indikator CCI oversold, dan setelah harga rebound ke dekat garis cepat dan menjual saat indikator CCI oversold. Dengan menggabungkan CCI dan sinyal crossover bilateral, strategi ini dapat menangkap peluang tren dengan lebih baik, dan dengan menunggu untuk membeli dan menjual saat masuk dan keluar yang lebih baik, sehingga meningkatkan rasio risiko-penghasilan strategi.

Prinsip Strategi

  1. Menghitung Indikator CCI Menghitung nilai CCI saat ini berdasarkan parameter CCI yang ditetapkan pengguna (data sumber, periode, jenis rata-rata bergerak, overbought overbought)
  2. Untuk menilai CCI overbought dan oversold, jika CCI lebih besar dari overbought threshold, maka latar belakang akan disetel menjadi merah, dan jika lebih kecil dari overbought threshold, maka latar belakang akan disetel menjadi hijau.
  3. Hitung laju rata-rata, berdasarkan parameter laju rata-rata yang ditetapkan pengguna (data sumber, periode, jenis rata-rata bergerak) masing-masing menghitung laju rata-rata saat ini.
  4. Untuk menentukan garpu emas, gambarkan sinyal multihead saat melewati garis cepat untuk membentuk garpu emas, gambarkan sinyal kosong saat melewati garis lambat di bawah garis cepat untuk membentuk garpu mati.
  5. Keputusan transaksi:
    • Multiple entry: ketika garis cepat berada di atas garis lambat, dan harga penutupan garis K sebelumnya berada di bawah garis cepat, garis K saat ini adalah garis berlawanan, dan CCI lebih kecil dari batas oversold untuk membeli dan membuka posisi
    • Blank entry: menjual posisi terbuka ketika garis cepat berada di bawah garis lambat dan harga penutupan garis K sebelumnya berada di atas garis cepat, garis K saat ini adalah garis negatif, dan CCI lebih besar dari overbought

Keunggulan Strategis

  1. Pelacakan tren: Mengetahui arah tren dengan sinyal silang dua garis sejajar, sehingga lebih sesuai dengan tren pasar.
  2. Aksesibilitas masuk: menunggu harga kembali membeli atau rebound menjual setelah tren ditetapkan, dapat memperoleh harga masuk yang relatif lebih baik, meningkatkan rasio risiko / keuntungan.
  3. Mengurangi sinyal palsu: Menggabungkan indikator CCI dengan sinyal silang rata-rata, dapat secara efektif mengurangi sinyal palsu yang dihasilkan oleh indikator tunggal.
  4. Fleksibilitas parameter: Pengguna dapat secara fleksibel mengatur CCI dan parameter rata-rata sesuai dengan preferensi mereka sendiri untuk mengoptimalkan kinerja strategi.

Risiko Strategis

  1. Risiko pasar yang bergoyang: Dalam pasar yang bergoyang, seringnya dead fork dapat menyebabkan strategi menghasilkan lebih banyak perdagangan yang merugi.
  2. Risiko parameter: pengaturan parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk, yang memerlukan umpan balik dan analisis yang memadai terhadap kombinasi parameter optimal dalam kondisi pasar yang berbeda.
  3. Risiko tren: Strategi mungkin menunda keluar dan menanggung risiko penarikan yang lebih besar ketika tren pasar berbalik.

Arah optimasi strategi

  1. Memperkenalkan manajemen posisi, yang secara dinamis menyesuaikan posisi setiap transaksi sesuai dengan intensitas dan volatilitas tren pasar saat ini, untuk mengendalikan risiko dengan lebih baik.
  2. Optimalkan kondisi masuk, seperti menambahkan indikator volume transaksi atau indikator penilaian tambahan lainnya, meningkatkan keandalan sinyal masuk.
  3. Mengoptimalkan kondisi keluar, seperti pengaturan stop loss bergerak atau stop loss waktu, untuk mengurangi kerugian maksimum dalam satu transaksi.
  4. Optimalisasi parameter untuk pasar dan varietas yang berbeda, meningkatkan adaptasi dan stabilitas strategi.

Meringkaskan

CCI + cross-equilibrium buyback strategi adalah strategi perdagangan kuantitatif yang menggabungkan keuntungan dari trend tracking dan counter-entry. Dengan capture arah tren dengan dua equilibria, dan menggunakan indikator CCI untuk membedakan antara overbought dan oversold, sambil menunggu harga mundur dan rebound untuk mendapatkan harga masuk yang lebih baik, strategi ini dapat meningkatkan potensi keuntungan dan risikonya. Namun, strategi ini juga menghadapi risiko seperti pengoptimalan parameter, guncangan pasar, dan perubahan tren.

Kode Sumber Strategi
/*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"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("CCI + MA Crossover Pullback Buy Strategy [TradeDots]", overlay=true)


ma(source, length, type) =>
  type == "SMA" ? ta.sma(source[1], length) :
  type == "EMA" ? ta.ema(source[1], length) :
  type == "SMMA (RMA)" ? ta.rma(source[1], length) :
  type == "WMA" ? ta.wma(source[1], length) :
  type == "VWMA" ? ta.vwma(source[1], length) :
  na

//CCI settings
cci_coloring  = input.bool(true, "CCI Background Color", group = "Commodity channel index")
cci_length    = input.int(20,"CCI Length", group = "Commodity channel index")
cci_ma_type   = input.string("EMA","CCI MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group = "Commodity channel index")
cci_soruce    = input(hlc3, "CCI Source", group = "Commodity channel index")
cci_threshold = input.int(100, "CCI Threshold", group = "Commodity channel index")
cci_ma = ma(cci_soruce, cci_length, cci_ma_type)
cci = (cci_soruce - cci_ma) / (0.015 * ta.dev(cci_soruce, cci_length))

bgcolor(cci > cci_threshold and cci_coloring ? color.new(#f9396a, 80) : cci < -cci_threshold and cci_coloring? color.new(#9cff87, 80) : na, title = "CCI Overbought / Oversold")

//ma crossover settings
input_crossover_labels = input.bool(true, "Show Crossover Labels", group="Moving average")

fastma_type   = input.string("EMA","", inline="fastma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
fastma_source = input(close, "", inline="fastma", group="Moving average")
fastma_length = input.int(10, "", inline="fastma", minval=1,group="Moving average")
fastma_color  = input(#e2fdff, "", inline="fastma",group="Moving average")
fastma = ma(fastma_source, fastma_length, fastma_type)
fastmaPlot = plot(fastma, color = #b7e4c7, linewidth = 2, title = "Fast MA")

slowma_type   = input.string("EMA","", inline="slowma", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Moving average")
slowma_source = input(close, "", inline="slowma", group="Moving average")
slowma_length = input.int(30, "", inline="slowma", minval=1,group="Moving average")
slowma_color  = input(#e2fdff, "", inline="slowma",group="Moving average")
slowma = ma(slowma_source, slowma_length, slowma_type)
slowmaPlot = plot(slowma, color = #2d6a4f, linewidth = 2, title = "Slow MA")

bullish_crossover = ta.crossover(fastma, slowma)
bearish_crossover = ta.crossunder(fastma, slowma)

// // strategy
// if bullish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#9cff87, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index,low, "Bullish Crossover", style = label.style_label_up, color = #9cff87)

// else if bearish_crossover and input_crossover_labels
//     line.new(bar_index, close, bar_index, close * 1.01, extend = extend.both, color = color.new(#f9396a, 30), style = line.style_dotted, width = 3)
//     label.new(bar_index, high, "Bearish Crossover", style = label.style_label_down, color = #f9396a, textcolor = color.white)

if fastma > slowma and close[1] < fastma and close > open and cci < -cci_threshold
    strategy.entry("Long", strategy.long)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) < 0
    //     label.new(bar_index,low, "🟢 Long", style = label.style_label_up, color = #9cff87)

if fastma < slowma and close[1] > fastma and close < open and cci > cci_threshold
    strategy.entry("Short", strategy.short)
    // if strategy.opentrades == 0 or strategy.opentrades.size(strategy.opentrades -1) > 0
    //     label.new(bar_index, high, "🔴 Short", style = label.style_label_down, color = #f9396a, textcolor = color.white)