En la carga de los recursos... Cargando...

Estrategia de inversión de impulso de CK para detener pérdidas

El autor:¿ Qué pasa?, Fecha: 2023-11-27 18:13:58
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el canal CK para determinar las tendencias de precios y establece líneas de stop loss dinámicas para realizar operaciones invertidas cuando se produce una inversión de precios. Pertenece a las estrategias comerciales a corto plazo.

Principio de la estrategia

La estrategia utiliza el canal CK para determinar las tendencias de precios y soporte / resistencia. Cálcula las líneas superiores e inferiores del canal. Cuando el precio rompe las líneas del canal, se generan señales comerciales. Además, la estrategia también rastrea el movimiento de las líneas del canal y toma posiciones invertidas cuando las líneas del canal se invierten, lo que pertenece a las estrategias de negociación de inversión.

Específicamente, la estrategia calcula las líneas de canal superior e inferior basadas en los precios más altos y más bajos. Si la línea de canal superior comienza a caer y la línea de canal inferior comienza a subir, se determina como una inversión de precio para ir corto. Por el contrario, si la línea de canal inferior comienza a caer y la línea de canal superior comienza a subir, se determina como una inversión de precio para ir largo.

Ventajas de la estrategia

  1. Utilice canales dobles para determinar los puntos de inversión de precios para operaciones invertidas precisas
  2. Adoptar un stop loss dinámico para controlar los riesgos y realizar un stop loss oportuno
  3. La lógica de la estrategia es simple y clara, fácil de entender e implementar

Riesgos de la estrategia

  1. Cuando los precios del mercado fluctúan violentamente, la línea de stop loss puede romperse, lo que lleva a mayores pérdidas
  2. Las operaciones más frecuentes pueden aumentar los costes de transacción
  3. Necesidad de elegir parámetros apropiados para controlar la línea de pérdida de parada, evitar demasiado suelto o demasiado apretado

Optimización de la estrategia

  1. Optimizar los parámetros de la línea de stop loss para que sea más razonable y eficaz
  2. Incorporar indicadores de tendencia para juzgar la fiabilidad de las señales de reversión, evitar operaciones de reversión durante la tendencia
  3. Aumentar el número de módulos de operaciones automáticas y de stop loss automáticos para reducir los costes de transacción

Resumen de las actividades

La idea general de la estrategia es clara y fácil de entender. Utiliza canales dobles para determinar las reversiones de precios y realizar operaciones inversas. Y establece un stop loss dinámico para controlar los riesgos. Pertenece a las estrategias comerciales típicas a corto plazo. El efecto de la estrategia se puede optimizar aún más, principalmente ajustando los parámetros de stop loss y ayudando a otros indicadores técnicos para determinar el momento de entrada y salida.


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



Más.