Strategi Stop Loss Pembalikan Momentum CK

Penulis:ChaoZhang, Tarikh: 2023-11-27 18:13:58
Tag:

img

Ringkasan

Strategi ini menggunakan saluran CK untuk menentukan trend harga dan menetapkan garis stop loss dinamik untuk membuat operasi terbalik apabila pembalikan harga berlaku.

Prinsip Strategi

Strategi ini menggunakan saluran CK untuk menentukan trend harga dan sokongan / rintangan. Ia mengira garis saluran atas dan bawah. Apabila harga memecahkan garis saluran, isyarat perdagangan dihasilkan. Di samping itu, strategi ini juga mengesan pergerakan garis saluran dan mengambil kedudukan terbalik apabila garis saluran terbalik, yang tergolong dalam strategi perdagangan pembalikan.

Secara khusus, strategi ini mengira garis saluran atas dan bawah berdasarkan harga tertinggi dan terendah. Jika garis saluran atas mula jatuh dan garis saluran bawah mula naik, ia ditentukan sebagai pembalikan harga untuk pergi pendek. Sebaliknya, jika garis saluran bawah mula jatuh dan garis saluran atas mula naik, ia ditentukan sebagai pembalikan harga untuk pergi panjang.

Kelebihan Strategi

  1. Gunakan saluran berganda untuk menentukan titik pembalikan harga untuk operasi pembalikan yang tepat
  2. Mengambil stop loss dinamik untuk mengawal risiko dan merealisasikan stop loss tepat pada masanya
  3. Logik strategi adalah mudah dan jelas, mudah difahami dan dilaksanakan

Risiko Strategi

  1. Apabila harga pasaran turun naik dengan ganas, garis stop loss boleh dilanggar, membawa kepada kerugian yang lebih besar
  2. Perdagangan yang lebih kerap boleh meningkatkan kos transaksi
  3. Perlu memilih parameter yang sesuai untuk mengawal garis stop loss, mengelakkan terlalu longgar atau terlalu ketat

Pengoptimuman Strategi

  1. Mengoptimumkan parameter garis stop loss untuk menjadikannya lebih munasabah dan berkesan
  2. Menggabungkan penunjuk trend untuk menilai kebolehpercayaan isyarat pembalikan, mengelakkan operasi pembalikan semasa trend
  3. Meningkatkan perdagangan automatik dan modul stop loss automatik untuk mengurangkan kos urus niaga

Ringkasan

Idea keseluruhan strategi adalah jelas dan mudah difahami. Ia menggunakan saluran berganda untuk menentukan pembalikan harga dan mengambil operasi terbalik. Dan ia menetapkan stop loss dinamik untuk mengawal risiko. Ia adalah sebahagian daripada strategi perdagangan jangka pendek biasa. Kesan strategi boleh dioptimumkan lebih lanjut, terutamanya dengan menyesuaikan parameter stop loss dan membantu penunjuk teknikal lain untuk menentukan masa masuk dan keluar.


/*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 )



Lebih lanjut