Strategi pelacakan pembalikan berdasarkan osilator pita volatilitas


Tanggal Pembuatan: 2023-11-23 13:42:03 Akhirnya memodifikasi: 2023-11-23 13:42:03
menyalin: 0 Jumlah klik: 670
1
fokus pada
1617
Pengikut

Strategi pelacakan pembalikan berdasarkan osilator pita volatilitas

Ringkasan

Strategi ini didasarkan pada indikator CCT Bollinger Band Oscillator yang dikembangkan oleh Steve Karnish, yang memungkinkan perdagangan reversal dengan mengidentifikasi harga yang melanggar garis rata-rata dan menggabungkan mekanisme penarikan balik.

Prinsip Strategi

Strategi ini menggunakan harga tinggi sebagai data sumber, lalu menghitung nilai dari CCT Band oscillator. Nilai dari oscillator berfluktuasi antara -200 dan -200, 0 mewakili harga rata-rata dikurangi 2 kali selisih standar, dan 100 mewakili harga rata-rata ditambah 2 kali selisih standar. Strategi ini menghasilkan sinyal perdagangan ketika oscillator melintasi atau melintasi rata-rata EMA-nya. Secara khusus, jika oscillator melintasi rata-rata EMA di atasnya dan jarak antara keduanya lebih besar dari margin yang ditetapkan, lakukan lebih banyak; jika oscillator melintasi rata-rata EMA di bawahnya dan jarak antara keduanya kurang dari margin yang ditetapkan negatif, lakukan kosong.

Analisis Keunggulan

  • Menggunakan indikator oscillator pita CCT dengan pengaruh pasar tertentu, dapat mengurangi sinyal palsu
  • Kombinasi EMA rata-rata dan sinyal filter kondisi marginal untuk menghindari terlalu banyak transaksi yang tidak valid dalam proses getaran
  • Menggunakan mekanisme penarikan kerugian, dapat menghentikan kerugian pada saat kerugian terlalu besar

Analisis risiko

  • CCT oscillator sendiri akan menghasilkan beberapa lag, sehingga kehilangan titik waktu terbaik untuk membalikkan harga
  • Margin setting terlalu besar dan EMA cycle setting terlalu pendek akan meningkatkan frekuensi dan risiko perdagangan
  • Penghapusan setelan stop loss yang terlalu longgar akan meningkatkan risiko kerugian

Metode pengendalian risiko:

  • Penyesuaian siklus rata-rata EMA, menggunakan filter siklus yang lebih panjang
  • Margin yang disesuaikan untuk menyeimbangkan risiko dan keuntungan
  • Menurunkan rasio posisi untuk mengendalikan kerugian tunggal
  • Mempercepat Stop Loss dengan Memperkecil Jangkauan Penarikan Stop Loss

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menggantikan indikator lain yang berfluktuasi, seperti indikator Brin Belt, Keltner Channel, dan lain-lain, untuk menentukan titik jual beli
  2. Menambahkan indikator penyaringan lainnya, seperti MACD, RSI, dan lain-lain, untuk memastikan keandalan sinyal perdagangan
  3. Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara otomatis, seperti siklus EMA, nilai margin, dan lain-lain
  4. Menambahkan mekanisme manajemen posisi, seperti posisi rasio tetap, Martingale, dan lain-lain, untuk mengendalikan risiko perdagangan
  5. Mengoptimalkan mekanisme penarikan kerugian, menggunakan stop loss berfluktuasi atau stop loss ATR

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan kuantitatif yang didasarkan pada indikator CCT untuk menentukan harga berbalik. Strategi ini memiliki beberapa kelebihan, tetapi juga ada ruang untuk perbaikan. Dengan cara mengoptimalkan parameter, menambahkan indikator penyaringan, menggunakan teknik fitur, dan memperkenalkan pembelajaran mesin, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 11:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// This strategy is based on the CCT Bollinger Band Oscillator (CCTBO) 
// developed by Steve Karnish of Cedar Creek Trading and coded by LazyBear.
// Indicator is available here https://www.tradingview.com/v/iA4XGCJW/

strategy("Strategy CCTBBO v2 | Fadior", shorttitle="Strategy CCTBBO v2", pyramiding=0, precision=2, calc_on_order_fills=false, initial_capital=1000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)

length_stddev=input(title="Stddev loopback period",defval=20)
length_ema=input(title="EMA period", defval=2)
margin=input(title="Margin", defval=0, type=float, step=0.1)
price = input(title="Source", defval=high)
digits= input(title="Number of digits",defval=2,step=1,minval=2,maxval=6)
offset = input(title="Trailing offset (0.01 = 1%) :", defval=0.013, type=float, step=0.01)
pips= input(title="Offset in ticks ?",defval=false,type=bool)

src=request.security(syminfo.tickerid, "1440", price)

cctbbo=100 * ( src + 2*stdev( src, length_stddev) - sma( src, length_stddev ) ) / ( 4 * stdev( src, length_stddev ) )

ul=hline(150, color=gray, editable=true)
ll=hline(-50, color=gray)
hline(50, color=gray)
fill(ul,ll, color=green, transp=90)
plot(style=line, series=cctbbo, color=blue, linewidth=2)
plot(ema(cctbbo, length_ema), color=red)

d = digits == 2 ? 100 : digits == 3 ? 1000 : digits == 4 ? 10000 : digits == 5 ? 100000 : digits == 6 ? 1000000 : na

TS = 1
TO = pips ? offset : close*offset*d
CQ = 100
TSP = TS
TOP = (TO > 0) ? TO : na

longCondition = crossover(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) > margin
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Close Long", "Long", qty_percent=CQ, trail_points=TSP, trail_offset=TOP)


shortCondition = crossunder(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) < -margin
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Close Short", "Short", qty_percent=CQ, trail_points=TSP, trail_offset=TOP)