Strategi Dagangan Komoditi Penangkapan Bawah CCI Disesuaikan Jarak Jauh


Tarikh penciptaan: 2023-12-21 14:30:03 Akhirnya diubah suai: 2023-12-21 14:30:03
Salin: 0 Bilangan klik: 726
1
fokus pada
1623
Pengikut

Strategi Dagangan Komoditi Penangkapan Bawah CCI Disesuaikan Jarak Jauh

Gambaran keseluruhan

Strategi ini adalah berdasarkan kepada Indeks Saluran Komoditi (CCI) yang menggunakan entries adaptif dinamik untuk menentukan masa perubahan trend, dan menggunakan tracking stop loss untuk mengunci keuntungan. Nama strategi ini bercita-cita untuk menyesuaikan diri dengan bahagian bawah CCI. Strategi perdagangan komoditi yang menangkap bahagian bawah CCI merangkumi inti strategi ini: menggunakan indikator CCI untuk menentukan kawasan oversold untuk menangkap peluang perubahan, dan menggunakan entries adaptif dinamik untuk mengoptimumkan entries secara horizontal.

Prinsip Strategi

Indikator teras adalah CCI, yang digunakan untuk menentukan kawasan oversold yang memberi isyarat kepada peluang untuk membalikkan trend. Selain itu, mengikut pelbagai parameter dan keadaan pasaran, luasnya kawasan oversold CCI juga akan berbeza-beza. Oleh itu, strategi ini menggunakan cara yang tidak menentu untuk menilai kedudukan CCI terendah pada beberapa waktu lalu dan secara dinamik menetapkan tahap pembelian CCI. Jika CCI terendah dalam 40 hari terakhir lebih besar daripada -90, maka -90 sebagai tahap kawasan oversold baru; Jika CCI terendah dalam 50 hari terakhir lebih besar daripada -70, maka -70 sebagai tahap kawasan oversold baru, dan sebagainya.

Khususnya, tahap CCI untuk isyarat pembelian lalai adalah -145. Kemudian menilai kedudukan titik terendah CCI dalam masa 40 hari, 50 hari dan seterusnya. Jika titik terendah lebih tinggi daripada tahap lalai seterusnya, misalnya -90, maka -90 sebagai tahap entri baru. Jika titik terendah lebih tinggi daripada -90, maka -70 sebagai tahap entri baru, dan seterusnya.

Selain itu, strategi ini juga menggunakan tracking stop loss untuk mengunci keuntungan, dengan tahap stop loss bergerak ke atas mengikut pergerakan harga.

Analisis kelebihan

  • Penjelasan yang jelas dan boleh dipercayai untuk menentukan kawasan oversold dengan menggunakan CCI
  • Entries Reka bentuk adaptasi dinamik yang mendatar yang membolehkan strategi menyesuaikan diri secara automatik dengan pelbagai jenis persekitaran pasaran
  • Reka bentuk tracking stop loss membolehkan strategi untuk mengunci keuntungan dengan baik

Perancangan dinamik seperti ini membolehkan masa entri dioptimumkan berbanding dengan entries yang tetap. Mencari standard entries yang lebih tinggi dapat mengurangkan risiko di pasaran yang lebih rendah; dan menurunkan standard entries dapat merebut lebih banyak peluang di pasaran yang disusun di antara zon yang bergolak.

CCI itu sendiri sebagai penunjuk untuk menilai overbought dan oversold juga lebih jelas dan boleh dipercayai, berdasarkan CCI, kaedah pembalikan trend adalah berkesan. Digabungkan dengan reka bentuk entri dinamik, kelebihan keseluruhan strategi ini adalah ketara.

Analisis risiko

  • Indeks CCI tidak sempurna, ia mempunyai ketinggalan tertentu. Penghakiman mungkin tidak berkesan apabila harga menembusi bacaan CCI dengan cepat
  • Penyesuaian dinamik yang mendatar tidak dapat menyesuaikan diri dengan perubahan keadaan pasaran, dan penyesuaian yang lambat akan kehilangan masa terbaik
  • Ketidaktentuan pasaran komoditi yang besar, dan penyetempatan kerugian yang tidak betul boleh menyebabkan kerugian yang besar

Pada masa yang sama, entries mungkin tidak tepat ketika harga naik atau turun dengan cepat. Selain itu, entries mempunyai mekanisme penyesuaian dinamik yang tidak sesuai dengan keadaan pasaran semasa, yang menyebabkan entries tidak semestinya menjadi masa terbaik. Akhir sekali, pasaran komoditi itu sendiri bergelombang, walaupun dengan menetapkan stop loss, tetapi parameter tertentu yang tidak ditetapkan pada masa itu juga boleh menyebabkan kerugian besar.

Arah pengoptimuman

  • Mengoptimumkan parameter CCI dan kitaran kelancaran, menguji kesan CCI untuk tempoh masa yang berbeza
  • Uji lebih banyak jenis entri untuk mencari reka bentuk yang lebih baik atau reka bentuk yang lebih mudah diterima
  • Menguji parameter hentian yang berbeza, meningkatkan markah hentian yang sesuai untuk menyesuaikan diri dengan ciri-ciri pasaran komoditi yang bergelombang tinggi

Ia boleh dioptimumkan dari beberapa aspek, terutamanya dari parameter CCI itu sendiri, penetapan tahap Entries dan parameter stop loss. Parameter yang lebih baik untuk menentukan lokasi yang lebih tepat untuk sasaran tertentu dapat meningkatkan kesan strategi.

ringkaskan

Strategi ini menggabungkan penggunaan petunjuk CCI untuk menilai kelebihan beli dan kelebihan jual serta reka bentuk tahap Entries yang beradaptasi secara dinamik untuk menangkap tren yang pecah. Berbanding parameter tetap, tahap Entries yang dinamik meningkatkan kebolehpasaran strategi dengan ketara. Berdasarkan pada model penangkapan terbalik Entries dan pengesanan berhenti, peluang untuk merebut momentum yang lebih kuat dan berhenti tepat pada masanya.

Kod sumber strategi
/*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)")