Strategi Henti Kerugian Pembalikan Momentum CK


Tarikh penciptaan: 2023-11-27 18:13:58 Akhirnya diubah suai: 2023-11-27 18:13:58
Salin: 1 Bilangan klik: 674
1
fokus pada
1617
Pengikut

Strategi Henti Kerugian Pembalikan Momentum CK

Gambaran keseluruhan

Strategi ini menggunakan saluran CK untuk menentukan trend harga, dan menetapkan garis hentian dinamik, melakukan operasi terbalik apabila berlaku pembalikan harga, termasuk dalam strategi perdagangan garis pendek.

Prinsip Strategi

Strategi menggunakan saluran CK untuk menentukan trend harga dan rintangan sokongan. Ia mengira saluran atas dan saluran bawah, menghasilkan isyarat perdagangan apabila harga menembusi saluran. Selain itu, strategi juga mengesan pergerakan saluran, mengambil kedudukan terbalik ketika saluran berbalik, termasuk strategi perdagangan terbalik.

Secara khusus, strategi ini berdasarkan harga tertinggi, harga terendah untuk mengira saluran atas ke bawah. Jika saluran atas mula turun, saluran bawah mula naik, maka ia akan dianggap sebagai pembalikan harga, membuat kedudukan kosong. Sebaliknya, jika saluran bawah mula turun, saluran atas mula naik, maka ia akan dianggap sebagai pembalikan harga, membuat kedudukan lebih banyak.

Kelebihan Strategik

  1. Menggunakan dua saluran untuk menentukan titik reversal harga, dengan tepat melakukan operasi reversal
  2. Mengambil langkah beransur-ansur untuk mengawal risiko, anda boleh berhenti pada masa yang tepat
  3. Strategi logik mudah difahami dan mudah dilaksanakan

Risiko Strategik

  1. Apabila harga pasaran berubah-ubah dengan ketara, barisan penangguhan boleh ditembusi, menyebabkan kerugian meningkat
  2. Mungkin lebih banyak transaksi dan kos yang lebih tinggi
  3. Pilih parameter yang sesuai untuk mengawal garis henti dan mengelakkan terlalu longgar atau terlalu ketat

Pengoptimuman Strategi

  1. Mengoptimumkan parameter garis henti untuk menjadikannya lebih munasabah dan berkesan
  2. Menerusi indikator trend untuk menilai kebolehpercayaan isyarat pembalikan, mengelakkan operasi pembalikan dalam trend
  3. Tambah modul perdagangan automatik dan stop loss automatik untuk mengurangkan kos perdagangan

ringkaskan

Strategi ini secara keseluruhannya jelas dan mudah difahami, menggunakan dua saluran untuk menentukan harga berbalik, mengambil tindakan berbalik; dan menetapkan hentian dinamik untuk mengawal risiko, merupakan strategi perdagangan garis pendek yang tipikal. Kesan strategi juga dapat dioptimumkan lebih jauh, terutamanya dengan menyesuaikan parameter hentian, dan membantu indikator teknikal lain untuk menentukan masa operasi.

Kod sumber strategi
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//

//study(title="Chande Kroll Stop", shorttitle="CK Stop", overlay=true)
strategy(title="Chande Kroll Stop", shorttitle="Chande Kroll Stop回測", overlay=true, initial_capital=100000, calc_on_every_tick=true,default_qty_type=strategy.percent_of_equity, default_qty_value=10)
br_red = #e91e63,Red = #f41818,n_green = #91dc16,dk_green = #004d40,lt_green = #16dc78,lt_blue = #0dbdd8,dk_blue = #0a3577,Blue = #034fed,br_orange = #f57c00,dk_orange = #e65100,dk_gray = #434651,dk_pink = #7c1df0,lt_pink = #e743f5,Purple = #5b32f3,lt_purple = #6b5797

hiP = input(9, "",inline="h")
hix = input(1,"" ,inline="h", step=0.1)
hiQ = input(7,"" ,inline="h")
loP = input(9,"" ,inline="h1")
lox = input(1,"" ,inline="h1", step=0.1)
loQ = input(5,"" ,inline="h1")
Xr=input(false,"反向操作:買/賣",inline="T"),
first_high_stop = highest(high, hiP) - hix * atr(hiP)
first_low_stop = lowest(high, loP) + lox * atr(loP)

stop_short = highest(first_high_stop, hiQ)
stop_long = lowest(first_low_stop, loQ)

cklow = stop_short
ckhigh = stop_long


Xdn = cklow < cklow[1] and ckhigh < ckhigh[1]
Xup = cklow > cklow[1] and ckhigh > ckhigh[1]
longcol = Xup ? lt_green : Xdn ? br_red : #2a2e39
shortcol = Xup? lt_green : Xdn ? br_red : #2a2e39
plot(stop_long, color=longcol)
plot(stop_short, color=shortcol)


plotshape(Xup and not Xup[1] , title="CK Stop Buy", text='CK', style=shape.triangleup, size=size.tiny, location=location.belowbar, color=lt_green, textcolor=lt_green,display=display.none)
plotshape(Xdn and not Xdn[1], title="CK Stop Sell", text='CK', style=shape.triangledown, size=size.tiny, location=location.abovebar, color=br_red, textcolor=br_red,display=display.none)

//       , default_qty_type=strategy.percent_of_equity, default_qty_value=10, calc_on_every_tick=true)

tl=input(true,"Sig",inline="T"), sbg=input(true,"Bgtrend",inline="T"), vbuild="FIREHORSE XRPUSDT"
Xp = 0.0, Xp:=Xdn? -1 : Xup? 1 : Xp[1], Xdf = Xr? Xup and Xp[1] == -1 : Xdn and Xp[1] == 1 ,Xuf = Xr?  Xdn and Xp[1] == 1: Xup and Xp[1] == -1 
FY=input(2021,"年",inline="btf"),FM=input(9,"月",inline="btf"),FD=input(01,"日",inline="btf"),
TY = input(2032,"年",inline="to"),TM=input(01,"月",inline="to"),TDy=input(01,"日",inline="to"), 
testTF = time>=timestamp(FY,FM,FD,00,00) and time <= timestamp(TY,TM,TDy,23,59)?  true:false


plotchar(tl? Xuf:na,vbuild+" 生門","△",location.bottom, #14e540,10,0," " ,#14e540,1,size.tiny)// ︽  ︾
plotchar(tl? Xdf:na,vbuild+" 傷門","▽",location.top,  #9b0842,10,0," ", #9b0842,1,size.tiny)  
bgcolor(sbg ? Xp==1 ? #0d47a1 :na: na, transp=90),
alertcondition(Xuf,vbuild+ "Buy", "Long 💹 \n"+vbuild),  alertcondition(Xdf, vbuild+ " Sell","Short 🈹\n"+vbuild)

if Xuf
    alert("Long " + tostring(close)+"\nLong "+input("My Long  Msg","Long Alert Msg")+vbuild, alert.freq_once_per_bar) 
if Xdf
    alert("Short " + tostring(close)+"\nShort"+input("My Short Msg","Short Alert Msg")+vbuild, alert.freq_once_per_bar) 


if testTF
    strategy.entry("Long ", strategy.long,  comment=" Long ",when=Xuf), strategy.entry("Short", strategy.short, comment=" Short",when=Xdf )