Strategi mengikut arah aliran berdasarkan penunjuk CCI


Tarikh penciptaan: 2023-11-24 10:53:07 Akhirnya diubah suai: 2023-11-24 10:53:07
Salin: 0 Bilangan klik: 747
1
fokus pada
1621
Pengikut

Strategi mengikut arah aliran berdasarkan penunjuk CCI

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend berdasarkan indikator CCI. Ia menggunakan indikator CCI dari dua kitaran yang berbeza untuk menghasilkan isyarat perdagangan. Secara khusus, ia akan memantau sama ada indikator CCI dari kitaran yang lebih pendek menembusi indikator CCI dari kitaran yang lebih lama dan membuat keputusan untuk melakukan over atau under berdasarkan arah penembusan.

Prinsip Strategi

Logik utama strategi ini ialah:

  1. Tentukan dua penunjuk CCI, ci1 untuk 14 kitaran dan ci2 untuk 56 kitaran
  2. Apabila ci1 ke atas menembusi ci2, lakukan lebih banyak.
  3. Apabila ci1 ke bawah menembusi ci2, kosongkan
  4. Selepas isyarat perdagangan, kedudukan kosong untuk memegang kedudukan ditentukan oleh nilai ci1 dan ci2

Peraturan untuk melakukan lebih adalah:

  1. Ci1 melalui ci2, iaitu CCI jangka pendek melalui CCI jangka panjang
  2. Syarat hentian kerugian: ci1<-50 dan kadar perubahan atau ci1 turun ke-100

Peraturan-peraturan khusus yang perlu dipatuhi ialah:

  1. Ci1 melalui ci2, iaitu CCI jangka pendek melalui CCI jangka panjang
  2. Keadaan berhenti: ci1> 100 dan kadar perubahan > 0 atau ci2 di atas 100

Seperti yang dapat dilihat, strategi ini memanfaatkan sensitiviti CCI jangka pendek dan kestabilan CCI jangka panjang untuk mengenal pasti dan mengesan trend.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan Indeks CCI untuk mengenal pasti trend
  2. Reka bentuk CCI berganda boleh menapis sebahagian daripada bising transaksi
  3. Mengendalikan risiko sambil mengesan trend melalui gabungan CCI jangka panjang dan pendek
  4. Peraturan-peraturan strategi mudah difahami dan dilaksanakan
  5. Kebolehkonfigurasi yang kuat, kitaran CCI dan keadaan berhenti boleh disesuaikan

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Indeks CCI lemah dalam mengenal pasti pergerakan berlawanan arah dan bergolak
  2. CCI jangka pendek yang panjang mungkin berlaku dan menyebabkan isyarat perdagangan yang salah
  3. Tetapan terhad yang tidak betul boleh menyebabkan kerugian yang lebih besar
  4. Penetapan parameter yang tidak betul juga memberi kesan besar kepada keuntungan strategi

Penyelesaian untuk menghadapi risiko:

  1. Anda boleh menggunakan indikator lain untuk menilai pergerakan dan mengelakkan dagangan dalam keadaan goncangan.
  2. Menambah syarat penapisan untuk mengelakkan isyarat silap yang disebabkan oleh CCI jangka pendek
  3. Mengoptimumkan dan menguji pelbagai keadaan berhenti
  4. Memilih kombinasi parameter yang sesuai melalui pengulangan dan pengoptimuman parameter

Arah pengoptimuman strategi

Strategi ini juga boleh dioptimumkan di antara lain:

  1. Menambah penilaian indikator lain untuk membentuk sistem dagangan yang lebih SYSTEM
  2. Uji perbezaan pendapatan pada hari minggu dan sesi
  3. Kaedah pembelajaran mesin untuk mencari parameter yang lebih baik
  4. Parameter penyesuaian mengikut ciri-ciri varieti yang berbeza
  5. Optimumkan keadaan untuk membuka dan menyimpan.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang mudah berdasarkan penembusan indikator CCI jangka pendek. Ia dapat mengenal pasti arah trend dengan berkesan dan mengikuti trend.

Kod 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)