Strategi mengikuti tren berdasarkan indikator CCI


Tanggal Pembuatan: 2023-11-24 10:53:07 Akhirnya memodifikasi: 2023-11-24 10:53:07
menyalin: 0 Jumlah klik: 745
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan indikator CCI

Ringkasan

Strategi ini adalah strategi pelacakan tren yang didasarkan pada indikator CCI. Strategi ini menggunakan indikator CCI dari dua periode yang berbeda untuk menghasilkan sinyal perdagangan. Secara khusus, strategi ini memantau apakah indikator CCI dari periode yang lebih pendek menembus indikator CCI dari periode yang lebih lama dan memutuskan untuk melakukan over atau under berdasarkan arah penembusannya.

Prinsip Strategi

Logika inti dari strategi ini adalah:

  1. Tentukan dua indikator CCI, ci1 = 14 siklus, ci2 = 56 siklus
  2. Ketika ci1 ke atas melampaui ci2, lakukan lebih banyak.
  3. Ketika ci1 ke bawah menembus ci2, kosongkan
  4. Setelah sinyal perdagangan, posisi kosong yang dipegang ditentukan oleh nilai ci1 dan ci2

Peraturan khusus untuk melakukan lebih banyak adalah:

  1. ci1 melewati ci2, yaitu periode pendek CCI melewati periode panjang CCI
  2. Kondisi Stop Loss: ci1<-50 dan tingkat perubahan atau ci1 turun di bawah-100

Peraturan khusus yang berlaku adalah:

  1. ci1 melewati ci2, yaitu CCI periode pendek melewati CCI periode panjang
  2. Kondisi stop loss: ci1>100 dan rasio perubahan >0 atau ci2 di atas 100

Seperti yang dapat dilihat, strategi ini memanfaatkan sensitivitas CCI periode yang lebih pendek dan stabilitas CCI periode yang lebih panjang untuk mengidentifikasi dan melacak tren.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan Indeks CCI untuk Mengidentifikasi Tren
  2. Desain CCI ganda dapat memfilter beberapa transaksi noise
  3. Mengontrol risiko sambil mengikuti tren dengan kombinasi indikator CCI jangka panjang dan pendek
  4. Aturan kebijakan sederhana, jelas, mudah dipahami dan diterapkan
  5. Konfigurasi yang kuat, siklus CCI dan kondisi stop loss dapat disesuaikan

Risiko Strategis

Strategi ini juga memiliki beberapa risiko:

  1. Indeks CCI memiliki kemampuan yang lemah untuk mendeteksi pergerakan horizontal dan bergoyang
  2. CCI jangka panjang dapat menyimpang dan menyebabkan sinyal perdagangan yang salah
  3. Kondisi Stop Loss yang tidak tepat dapat menyebabkan kerugian yang lebih besar
  4. Pengaturan parameter yang tidak tepat juga dapat berdampak besar pada pendapatan strategi

Solusi untuk menghadapi risiko:

  1. Anda dapat mengevaluasi perdagangan dengan indikator lain untuk menghindari perdagangan di tengah-tengah situasi yang bergejolak
  2. Menambahkan kondisi penyaringan untuk menghindari kesalahan sinyal yang disebabkan oleh CCI yang menyimpang dari siklus yang panjang
  3. Mengoptimalkan dan menguji berbagai kondisi stop loss
  4. Memilih kombinasi parameter yang tepat melalui retesting dan optimasi parameter

Arah optimasi strategi

Strategi ini juga dapat dioptimalkan lebih lanjut di beberapa tempat, seperti:

  1. Menambahkan penilaian indikator lainnya, membentuk sistem perdagangan yang lebih SYSTEM
  2. Uji perbedaan pendapatan pada hari kerja dan sesi yang berbeda
  3. Mencari parameter yang lebih baik dengan metode pembelajaran mesin
  4. Parameter yang disesuaikan dengan karakteristik varietas yang berbeda
  5. Optimalkan kondisi posisi terbuka dan aman

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan tren sederhana yang didasarkan pada terobosan indikator CCI jangka pendek. Ini dapat secara efektif mengidentifikasi arah tren dan melacak tren.

Kode Sumber Strategi
/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="my work",calc_on_order_fills=true,currency=currency.USD, default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent)


source = close
shortlength=input(14)
longlength=input(56)
aa=input(2)
Ss=input(75)

//Cci part
ci1=cci(source,shortlength)   //4시간봉의 기본 cci
ci2=cci(source,longlength)   //4시간봉에서 12시봉의 cci 무빙측정

//오린간 선생님의 WT + ichimoku
len = input(10)
lenTurn = input(9)
lenStd = input(26)

wtm_e(so, l) =>
    esa = ema(so, l)
    d = ema(abs(so - esa), l)
    ci = (so - esa) / (0.015 * d)
    ema(ci, l*2+1)

alh(len) => avg(lowest(len), highest(len))
alh_src(src, len) => avg(lowest(src, len), highest(src, len))

wt = wtm_e(close,len)
turn = alh_src(wt, lenTurn)
std = alh_src(wt, lenStd)

cnt = 0
if wt > turn
    cnt:=cnt+1
if wt > std
    cnt:=cnt+1


//100,-100선
h0 = hline(100)
h1 = hline(-100)

//plot(ci,color=green)
// plot(k,color=green)
// plot(d,color=red)
plot(ci1,color=green)
plot(ci2,color=red)

plot(0,color=black)
plot(100,color=black)
plot(-100,color=black)

fill(h0,h1,color=purple,transp=95)

bgcolor(cnt==0 ? red : cnt==1 ? blue : cnt == 2 ? green : na, transp = Ss)

//기간조정

Fromday = input(defval=1, title="from day", minval=1, maxval=31)
FromMonth = input(defval=1, title="from month", minval=1, maxval=12)
FromYr = input(defval=2019, title="from yr", minval=1970)

Today = input(defval=13, title="to day", minval=1, maxval=31)
ToMonth = input(defval=12, title="to month", minval=1, maxval=12)
ToYr = input(defval=2019, title="to yr", minval=1970)

startDate = timestamp(FromYr, FromMonth, Fromday, 00, 00)
finishDate = timestamp(ToYr, ToMonth, Today, 00, 00)
Time_cond = true


/////롱

if  crossover(ci1,ci2) and change(ci2)>0 and Time_cond
    strategy.entry("go", strategy.long, comment="go")
    
strategy.close("go", (ci2<0 and ci1 <-50 and change(ci1)<0) or (crossunder(ci1,-100) and strategy.openprofit<0) and change(cnt)<0)



/////숏

if  (crossunder(ci1,ci2) and change(ci2)<0 and falling(ci1,aa)) and Time_cond
    strategy.entry("die", strategy.short, comment="die")
    
strategy.close("die", (ci2>0 and ci1 > 100 and change(ci1)>0) or (crossover(ci2,100) and strategy.openprofit<0) and change(cnt)>0)