Stratégie d'inversion de l'élan de CK

Auteur:ChaoZhang est là., Date: 2023-11-27 18h13 et 58 min
Les étiquettes:

img

Résumé

Cette stratégie utilise le canal CK pour déterminer les tendances des prix et définit des lignes de stop loss dynamiques pour effectuer des opérations inverses lorsque l'inversion des prix se produit.

Principe de stratégie

La stratégie utilise le canal CK pour déterminer les tendances des prix et le support / résistance. Elle calcule les lignes supérieures et inférieures du canal. Lorsque le prix traverse les lignes du canal, des signaux de trading sont générés. En outre, la stratégie suit également le mouvement des lignes du canal et prend des positions inverses lorsque les lignes du canal s'inversent, ce qui appartient aux stratégies de trading d'inversion.

Plus précisément, la stratégie calcule les lignes supérieures et inférieures du canal en fonction des prix les plus élevés et les plus bas. Si la ligne supérieure du canal commence à baisser et que la ligne inférieure du canal commence à augmenter, elle est déterminée comme un renversement de prix pour aller court. Au contraire, si la ligne inférieure du canal commence à baisser et la ligne supérieure du canal commence à augmenter, elle est déterminée comme un renversement de prix pour aller long.

Les avantages de la stratégie

  1. Utiliser des canaux doubles pour déterminer les points d'inversion des prix pour des opérations inverses précises
  2. Adopter un stop loss dynamique pour contrôler les risques et réaliser un stop loss rapide
  3. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre

Risques liés à la stratégie

  1. Lorsque les prix du marché fluctuent violemment, la ligne stop-loss peut être rompue, ce qui entraîne des pertes plus importantes
  2. Des transactions plus fréquentes peuvent augmenter les coûts de transaction
  3. Besoin de choisir des paramètres appropriés pour contrôler la ligne de stop-loss, éviter trop lâche ou trop serré

Optimisation de la stratégie

  1. Optimiser les paramètres de la ligne stop-loss pour la rendre plus raisonnable et efficace
  2. Incorporer des indicateurs de tendance pour juger de la fiabilité des signaux d'inversion, éviter les opérations inverses pendant la tendance
  3. Augmenter les modules de négociation automatique et de stop loss automatiques pour réduire les coûts de transaction

Résumé

L'idée générale de la stratégie est claire et facile à comprendre. Elle utilise des canaux doubles pour déterminer les renversements de prix et effectuer des opérations inverses. Et elle définit un stop loss dynamique pour contrôler les risques. Elle appartient aux stratégies de trading à court terme typiques. L'effet de la stratégie peut être encore optimisé, principalement en ajustant les paramètres de stop loss et en aidant d'autres indicateurs techniques à déterminer le moment d'entrée et de sortie.


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



Plus de