Stratégie de stop loss de renversement de la dynamique CK


Date de création: 2023-11-27 18:13:58 Dernière modification: 2023-11-27 18:13:58
Copier: 1 Nombre de clics: 674
1
Suivre
1617
Abonnés

Stratégie de stop loss de renversement de la dynamique CK

Aperçu

Cette stratégie utilise le canal CK pour déterminer la tendance des prix et définir des lignes de stop-loss dynamiques pour effectuer des opérations inverses en cas de revers des prix, ce qui fait partie de la stratégie de négociation en ligne courte.

Principe de stratégie

La stratégie utilise le canal CK pour déterminer la tendance des prix et la résistance au support. Elle calcule les lignes de la voie supérieure et inférieure, et génère un signal de transaction lorsque les prix franchissent la ligne de la voie supérieure. En outre, la stratégie suit le mouvement de la ligne de la voie supérieure et prend des positions inversées lorsque la ligne de la voie supérieure est inversée.

En particulier, la stratégie est basée sur le prix le plus élevé et le prix le plus bas pour calculer la ligne de canal supérieur et inférieur. Si la ligne de canal supérieur commence à baisser et la ligne de canal inférieur commence à monter, il est jugé comme un renversement de prix, faire une position vide. Inversement, si la ligne de canal inférieur commence à baisser et la ligne de canal supérieur commence à monter, il est jugé comme un renversement de prix, faire une position plus.

Avantages stratégiques

  1. Utilisez les deux canaux pour déterminer le point de basculement des prix et effectuez une inversion de précision.
  2. Le risque est contrôlé par un arrêt dynamique qui permet de stopper les pertes en temps opportun.
  3. La logique de la stratégie est simple, claire et facile à comprendre.

Risque stratégique

  1. La ligne de stop-loss peut être franchie lorsque les prix du marché fluctuent fortement, ce qui entraîne des pertes accrues.
  2. Le nombre de transactions peut être plus élevé et les coûts de transaction augmenter
  3. Il faut choisir les paramètres appropriés pour contrôler la ligne d’arrêt et éviter d’être trop lâche ou trop serrée

Optimisation de la stratégie

  1. Optimiser les paramètres de la ligne de rupture pour les rendre plus raisonnables et efficaces
  2. Combiner les indicateurs de tendance pour juger de la fiabilité des signaux de retournement et éviter les opérations de retournement dans la tendance
  3. Ajout de modules de trading automatique et de stop loss automatique pour réduire les coûts de trading

Résumer

L’idée générale de la stratégie est claire et compréhensible. Elle utilise deux canaux pour déterminer le renversement des prix et effectuer des opérations inverses. La stratégie peut également être optimisée, principalement en ajustant les paramètres de stop loss et en aidant d’autres indicateurs techniques à déterminer le moment de l’opération.

Code source de la stratégie
/*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 )