Strategi penjejakan pembalikan berdasarkan pengayun jalur turun naik


Tarikh penciptaan: 2023-11-23 13:42:03 Akhirnya diubah suai: 2023-11-23 13:42:03
Salin: 0 Bilangan klik: 670
1
fokus pada
1617
Pengikut

Strategi penjejakan pembalikan berdasarkan pengayun jalur turun naik

Gambaran keseluruhan

Strategi ini berdasarkan kepada indikator CCT Bollinger Band Oscillator yang dibangunkan oleh Steve Karnish, yang membolehkan perdagangan berbalik dengan mengenal pasti harga yang melanggar garis purata dan menggabungkan mekanisme penarikan balik.

Prinsip Strategi

Strategi ini menggunakan harga tinggi sebagai data sumber, dan kemudian mengira nilai CCT band oscillator. Nilai oscillator berfluktuasi antara 200 dan 200, 0 mewakili harga purata tolak 2 kali selisih piawai, dan 100 mewakili harga purata ditambah 2 kali selisih piawai. Ia menghasilkan isyarat perdagangan apabila oscillator melintasi atau menembusi rata-rata EMA.

Analisis kelebihan

  • Menggunakan penunjuk penyokong gelombang CCT yang mempunyai pengaruh pasaran tertentu dapat mengurangkan isyarat palsu
  • Gabungan antara EMA rata-rata dan isyarat penapisan keadaan marginal untuk mengelakkan terlalu banyak perdagangan yang tidak sah semasa kejatuhan
  • Menggunakan mekanisme penangguhan kerugian untuk menghentikan kerugian yang terlalu besar pada masa yang tepat

Analisis risiko

  • CCT oscillator sendiri akan menghasilkan beberapa kelewatan, sehingga kehilangan titik waktu terbaik untuk harga berbalik
  • Margin yang terlalu tinggi dan kitaran EMA yang terlalu pendek akan meningkatkan kekerapan dan risiko dagangan
  • Kemudahan penangguhan kerugian yang berlebihan boleh meningkatkan risiko kerugian

Kaedah untuk mengawal risiko:

  • Menyesuaikan kitaran purata EMA, menggunakan penapis kitaran yang lebih panjang
  • Pengesuaian margin yang sesuai untuk mengimbangi risiko dan faedah
  • Menurunkan peratusan kedudukan untuk mengawal kerugian tunggal
  • Memperkecil jangkauan penangguhan dan mempercepatkan penangguhan

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menggantikan indikator lain yang tidak menentu, seperti BRI, Keltner Channel, dan lain-lain, untuk menentukan titik jual beli
  2. Menambah penapis lain seperti MACD, RSI dan lain-lain untuk memastikan kebolehpercayaan isyarat perdagangan
  3. Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik, seperti kitaran EMA, nilai margin, dan sebagainya
  4. Menambah mekanisme pengurusan kedudukan, seperti kedudukan peratusan tetap, Martingale, dan lain-lain, untuk mengawal risiko perdagangan
  5. Mengoptimumkan mekanisme penangguhan balik, menggunakan penangguhan turun naik atau penangguhan ATR dan sebagainya

ringkaskan

Strategi ini secara keseluruhannya adalah strategi perdagangan kuantitatif berdasarkan indikator CCT yang menilai harga berbalik. Ia mempunyai kelebihan tertentu, tetapi juga terdapat ruang untuk penambahbaikan. Dengan cara mengoptimumkan parameter, menambah indikator penapisan, menggunakan kejuruteraan ciri, memperkenalkan pembelajaran mesin, dan lain-lain, anda dapat meningkatkan kestabilan dan keuntungan strategi ini.

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