Strategi Perdagangan Perikanan Dasar CCI yang Diperluas

Penulis:ChaoZhang, Tanggal: 2023-12-21 14:30:03
Tag:

img

Gambaran umum

Strategi ini didasarkan pada Indeks Saluran Komoditas (CCI) dan menggunakan tingkat masuk adaptif dinamis untuk menentukan waktu pembalikan tren, sambil menggunakan stop loss trailing untuk mengunci keuntungan.

Logika Strategi

Indikator inti adalah CCI, yang digunakan untuk melihat zona oversold sehingga mengisyaratkan peluang pembalikan tren. Juga, tingkat zona oversold CCI bervariasi di berbagai instrumen dan lingkungan pasar. Oleh karena itu, strategi ini mengambil pendekatan "berwawasan jauh", memeriksa tingkat CCI terendah selama periode mundur tertentu, untuk secara dinamis menetapkan tingkat masuk pembelian CCI. Jika CCI terendah selama 40 hari terakhir berada di atas -90, maka -90 menjadi ambang zona oversold baru, dan sebagainya. Desain adaptif ini memungkinkan tingkat masuk untuk menyesuaikan secara dinamis dengan kondisi pasar yang berbeda, mengejar entri yang lebih konservatif selama tren penurunan yang kuat sementara entri yang lebih agresif selama pasar yang terikat rentang.

Secara khusus, tingkat sinyal beli CCI default adalah -145. Strategi kemudian memeriksa pembacaan CCI terendah selama 40 hari terakhir, 50 hari dll hari-hari tampilan yang berbeda. Jika CCI terendah berada di atas level berikutnya seperti -90, maka -90 menjadi level entri baru. Dan seterusnya, level entri dapat beralih antara -145 / -90 / -70 / -50 / -4 / 0 / +25 / +50 / +70 secara dinamis. Sinyal entri panjang dipicu ketika CCI turun di bawah level yang sesuai.

Selain itu, stop loss trailing digunakan untuk mengunci keuntungan, dengan level stop bergerak naik bersama dengan harga.

Analisis Keuntungan

  • Pendekatan yang jelas dan dapat diandalkan untuk menggunakan CCI untuk menemukan zona oversold
  • Desain adaptif dari tingkat entry memungkinkan strategi untuk secara otomatis menyesuaikan lingkungan pasar yang berbeda
  • Mengikuti stop loss membantu mengunci keuntungan secara efektif

Dibandingkan dengan level masuk tetap, desain dinamis seperti ini memungkinkan waktu masuk yang dioptimalkan. mengejar entri yang lebih konservatif selama tren penurunan yang kuat mengurangi risiko, sementara entri yang lebih rendah selama pasar yang terikat rentang memungkinkan untuk menangkap lebih banyak peluang. Ini meningkatkan kemampuan beradaptasi strategi.

CCI sendiri adalah indikator yang jelas dan dapat diandalkan untuk mengidentifikasi tingkat overbought/oversold. Logika menilai pembalikan tren berdasarkan CCI terbukti. Dikombinasikan dengan desain entry yang dinamis, keuntungan keseluruhan dari strategi ini signifikan.

Analisis Risiko

  • CCI tidak sempurna dan memiliki beberapa atribut yang tertinggal. Penghakiman dapat gagal ketika harga keluar dengan cepat dari pembacaan CCI.
  • Penyesuaian dinamis tingkat masuk juga tidak dapat sepenuhnya sesuai dengan perubahan lingkungan pasar.
  • Volatilitas tinggi di pasar komoditas.

Logika menemukan titik pembalikan tren memiliki beberapa atribut yang tertinggal. Waktu masuk mungkin tidak akurat selama lonjakan harga mendadak atau jatuh. Juga, mekanisme adaptif mungkin tidak sesuai dengan lingkungan pasar saat ini, yang mengarah pada entri yang tidak optimal. Akhirnya, fluktuasi tinggi di pasar komoditas dapat menyebabkan kerugian besar jika parameter stop loss tidak ditetapkan dengan benar.

Arah Peningkatan

  • Mengoptimalkan parameter CCI dan periode perataan, efektivitas pengujian panjang CCI yang berbeda
  • Uji lebih banyak jenis tingkat masuk, temukan nilai default yang lebih baik atau desain adaptif
  • Uji parameter stop loss yang berbeda, tingkatkan rentang stop loss dengan benar agar sesuai dengan atribut volatilitas tinggi pasar komoditas

Pada dasarnya CCI itu sendiri, desain tingkat awal dan parameter stop loss dapat ditingkatkan.

Ringkasan

Strategi ini menggabungkan logika menggunakan CCI untuk menemukan zona overbought/oversold dan desain tingkat masuk adaptif dinamis untuk menangkap pembalikan tren. Dibandingkan dengan parameter tetap, tingkat masuk dinamis secara signifikan meningkatkan kemampuan beradaptasi. Model pengambilan pembalikan masuk ini dengan stop loss trailing dapat merebut peluang dengan momentum yang kuat dan memotong kerugian dalam waktu. Dengan parameter yang dikonfigurasi dengan benar, strategi ini menunjukkan daya tahan dan ketahanan. Peningkatan lebih lanjut dapat dilakukan dengan terus mengoptimalkan parameter CCI dan aturan tingkat masuk untuk mencapai stabilitas dan profitabilitas yang lebih tinggi.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Extended Adaptive CCI Entry Strategy for Commodities", shorttitle="Ext_Adaptive_CCI_Entry_Com", overlay=true)

// Inputs
cciLength = input(20, title="CCI Period")
defaultCCIEntryOversold = input(-145, title="Default CCI Entry Oversold Level")
adaptiveCCIEntryLevel90 = input(-90, title="Adaptive CCI Entry Level for 40 Days")
adaptiveCCIEntryLevel70_50Days = input(-70, title="Adaptive CCI Entry Level for 50 Days")
adaptiveCCIEntryLevel50 = input(-50, title="Adaptive CCI Entry Level for 60 Days")
adaptiveCCIEntryLevel4 = input(-4, title="Adaptive CCI Entry Level for 90 Days")
adaptiveCCIEntryLevel0 = input(0, title="Adaptive CCI Entry Level for 120 Days")
adaptiveCCIEntryLevel25 = input(25, title="Adaptive CCI Entry Level for 140 Days")
adaptiveCCIEntryLevel50_160Days = input(50, title="Adaptive CCI Entry Level for 160 Days")
adaptiveCCIEntryLevel70_180Days = input(70, title="Adaptive CCI Entry Level for 180 Days")
lookback40 = input(40, title="Lookback Period for -90 Level")
lookback50 = input(50, title="Lookback Period for -70 Level")
lookback60 = input(60, title="Lookback Period for -50 Level")
lookback90 = input(90, title="Lookback Period for -4 Level")
lookback120 = input(120, title="Lookback Period for 0 Level")
lookback140 = input(140, title="Lookback Period for +25 Level")
lookback160 = input(160, title="Lookback Period for +50 Level")
lookback180 = input(180, title="Lookback Period for +70 Level")

// Indicator Calculation
cci = ta.cci(close, cciLength)

// Determine adaptive entry level based on lookback periods
var float entryLevel = defaultCCIEntryOversold // Initialize with the default level
if ta.lowest(cci, lookback40) > adaptiveCCIEntryLevel90
    entryLevel := adaptiveCCIEntryLevel90
if ta.lowest(cci, lookback50) > adaptiveCCIEntryLevel70_50Days
    entryLevel := adaptiveCCIEntryLevel70_50Days
if ta.lowest(cci, lookback60) > adaptiveCCIEntryLevel50
    entryLevel := adaptiveCCIEntryLevel50
if ta.lowest(cci, lookback90) > adaptiveCCIEntryLevel4
    entryLevel := adaptiveCCIEntryLevel4
if ta.lowest(cci, lookback120) > adaptiveCCIEntryLevel0
    entryLevel := adaptiveCCIEntryLevel0
if ta.lowest(cci, lookback140) > adaptiveCCIEntryLevel25
    entryLevel := adaptiveCCIEntryLevel25
if ta.lowest(cci, lookback160) > adaptiveCCIEntryLevel50_160Days
    entryLevel := adaptiveCCIEntryLevel50_160Days
if ta.lowest(cci, lookback180) > adaptiveCCIEntryLevel70_180Days
    entryLevel := adaptiveCCIEntryLevel70_180Days

// Entry Condition
longCondition = cci < entryLevel

// Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)
    alert("Long entry executed at " + str.tostring(close), alert.freq_once_per_bar)

trailOffset = input(10.0, title="Trailing Stop Offset in USD")
strategy.exit("Trailing Stop", "Long", trail_offset = trailOffset, trail_price = close)
if (close < entryLevel - trailOffset)
    alert("Long position closed at " + str.tostring(close), alert.freq_once_per_bar)

// Plotting
plot(series=cci, color=color.purple, title="CCI")
hline(price=defaultCCIEntryOversold, color=color.red, title="Default CCI Entry Oversold Level")
hline(price=adaptiveCCIEntryLevel90, color=color.orange, title="CCI -90 Level (40 Days)")
hline(price=adaptiveCCIEntryLevel70_50Days, color=color.yellow, title="CCI -70 Level (50 Days)")
hline(price=adaptiveCCIEntryLevel50, color=color.green, title="CCI -50 Level (60 Days)")
hline(price=adaptiveCCIEntryLevel4, color=color.blue, title="CCI -4 Level (90 Days)")
hline(price=adaptiveCCIEntryLevel0, color=color.purple, title="CCI 0 Level (120 Days)")
hline(price=adaptiveCCIEntryLevel25, color=color.aqua, title="CCI +25 Level (140 Days)")
hline(price=adaptiveCCIEntryLevel50_160Days, color=color.black, title="CCI +50 Level (160 Days)")
hline(price=adaptiveCCIEntryLevel70_180Days, color=color.gray, title="CCI +70 Level (180 Days)")


Lebih banyak