Strategi Dagangan Ikan Rendah CCI yang Diperluaskan

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

img

Ringkasan

Strategi ini berdasarkan kepada penunjuk Indeks Saluran Komoditi (CCI) dan menggunakan tahap kemasukan adaptif dinamik untuk menentukan masa pembalikan trend, sambil menggunakan stop loss yang menyusul untuk mengunci keuntungan.

Logika Strategi

Indikator teras adalah CCI, digunakan untuk melihat zon oversold oleh itu mengisyaratkan peluang pembalikan trend. Juga, sejauh mana zon oversold CCI berbeza-beza di antara instrumen dan persekitaran pasaran yang berbeza. Oleh itu, strategi ini mengambil pendekatan jauh pandang, memeriksa tahap CCI terendah dalam tempoh yang tertentu, untuk menetapkan tahap masuk pembelian CCI secara dinamik. Jika CCI terendah dalam tempoh 40 hari yang lalu berada di atas -90, maka -90 menjadi ambang zon oversold baru, dan sebagainya. Reka bentuk adaptif ini membolehkan tahap masuk secara dinamik sesuai dengan keadaan pasaran yang berbeza, mengejar entri yang lebih konservatif semasa trend penurunan yang kuat sementara entri yang lebih agresif semasa pasaran yang terhad.

Secara khusus, tahap isyarat pembelian CCI lalai adalah -145. Strategi kemudian memeriksa bacaan CCI terendah selama 40 hari yang lalu, 50 hari dan lain-lain hari kemunculan yang berbeza. Jika CCI terendah berada di atas tahap seterusnya seperti -90, maka -90 menjadi tahap kemasukan baru. Dan seterusnya, tahap kemasukan boleh bertukar antara -145 / -90 / -70 / -50 / -4 / 0 / +25 / +50 / +70 secara dinamik. Isyarat kemasukan panjang dicetuskan apabila CCI jatuh di bawah tahap yang sesuai.

Di samping itu, penangguhan kerugian yang berturut-turut digunakan untuk mengunci keuntungan, dengan tahap berhenti bergerak naik bersama dengan harga.

Analisis Kelebihan

  • Pendekatan yang jelas dan boleh dipercayai untuk menggunakan CCI untuk menjumpai zon yang terlalu banyak dijual
  • Reka bentuk penyesuaian tahap kemasukan membolehkan strategi untuk menyesuaikan diri secara automatik dengan persekitaran pasaran yang berbeza
  • Mengekalkan stop loss membantu mengunci keuntungan dengan berkesan

Dibandingkan dengan tahap kemasukan tetap, reka bentuk dinamik sedemikian membolehkan masa kemasukan yang dioptimumkan. Mengikuti kemasukan yang lebih konservatif semasa aliran menurun yang kuat mengurangkan risiko, sementara kemasukan yang lebih rendah semasa pasaran terhad julat membolehkan menangkap lebih banyak peluang. Ini meningkatkan kemampuan penyesuaian strategi.

CCI itu sendiri adalah penunjuk yang jelas dan boleh dipercayai untuk mengenal pasti tahap overbought / oversold. Logik menilai pembalikan trend berdasarkan CCI terbukti. Digabungkan dengan reka bentuk entri dinamik, kelebihan keseluruhan strategi ini adalah penting.

Analisis Risiko

  • CCI tidak sempurna dan mempunyai beberapa sifat yang tertinggal. Penghakiman mungkin gagal apabila harga keluar dengan cepat dari bacaan CCI.
  • Penyesuaian dinamik tahap kemasukan juga tidak dapat sesuai dengan perubahan dalam persekitaran pasaran.
  • Volatiliti tinggi di pasaran komoditi.

Logik untuk mengesan titik pembalikan trend mempunyai beberapa atribut yang tertinggal. Waktu kemasukan mungkin tidak tepat semasa lonjakan harga tiba-tiba atau kemalangan. Juga, mekanisme penyesuaian mungkin tidak sesuai dengan persekitaran pasaran semasa, yang membawa kepada kemasukan yang tidak optimum. Akhirnya, turun naik yang tinggi di pasaran komoditi boleh menyebabkan kerugian besar jika parameter stop loss tidak ditetapkan dengan betul.

Arahan Penambahbaikan

  • Mengoptimumkan parameter CCI dan tempoh pelunturan, kesannya ujian panjang CCI yang berbeza
  • Uji lebih banyak jenis tahap kemasukan, cari nilai lalai yang lebih baik atau reka bentuk adaptif
  • Uji parameter stop loss yang berbeza, menaikkan julat stop loss dengan betul untuk sepadan dengan sifat turun naik yang tinggi di pasaran komoditi

Terutamanya CCI itu sendiri, reka bentuk peringkat permulaan dan parameter stop loss boleh ditingkatkan.

Ringkasan

Strategi ini menggabungkan logik menggunakan CCI untuk melihat zon overbought / oversold dan reka bentuk tahap kemasukan adaptif dinamik untuk menangkap pembalikan trend. Berbanding dengan parameter tetap, tahap kemasukan dinamik meningkatkan fleksibiliti dengan ketara. Model penangkapan pembalikan kemasukan ini dengan stop loss yang tertinggal dapat merebut peluang dengan momentum yang kuat dan memotong kerugian dalam masa. Dengan parameter yang dikonfigurasikan dengan betul, strategi ini menunjukkan daya maju dan ketahanan. Penambahbaikan lanjut boleh dibuat dengan terus mengoptimumkan parameter CCI dan peraturan tahap kemasukan untuk mencapai kestabilan dan keuntungan 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 lanjut