Estrategia de Ichimoku Kinko Hyo


Fecha de creación: 2023-10-13 16:48:22 Última modificación: 2023-10-13 16:48:22
Copiar: 0 Número de Visitas: 764
1
Seguir
1617
Seguidores

Descripción general

La estrategia de equilibrio a simple vista utiliza el concepto de la línea media, la relación entre la línea media y el precio para determinar la dirección de la tendencia, pertenece a la estrategia de seguimiento de la tendencia. Cuando el precio cruza la línea media, haz más, y cuando baja, haz hueco, sigue la tendencia.

Análisis de la interpretación original

La estrategia se basa principalmente en la idea de la línea de un solo vistazo, el uso centraldonchian()La función calcula el promedio de los precios más altos y más bajos en un período determinado como la línea media. Luego, se determina si el precio supera esa línea media, lo que genera una señal de negociación.

En concreto, las estrategias primero calculanTenLínea promedio del cicloTS, como línea de referencia. Cuando el precio cruza la línea media por encima, se considera que entra en una situación de tendencia y produce una señal de cambio; cuando el precio cruza la línea media por debajo, se considera que la tendencia se invierte y produce una señal de cambio.

Además, la estrategia también calculaKijLínea media del cicloKSyTSLas líneas se unen para crear condiciones de filtración y evitar señales falsas.TSEn líneaKSCuando se conecta, se dispara la señal de multiplicación.

El código también traza un mapa de la nube para determinar la relación de posición del mapa de la nube, ayudando a determinar la dirección de la tendencia.ChikouLa línea, como condición auxiliar para juzgar su relación con el precio.

Análisis de las ventajas

  • El uso de la línea media para juzgar las tendencias es sencillo y fácil de entender
  • La combinación de los mapas en la nube aumenta la base de juicio y la precisión
  • AumentoChikouLa línea como condición auxiliar para filtrar aún más la señal
  • Utiliza una combinación lineal de diferentes parámetros para un ajuste flexible

Análisis de riesgos

  • La estrategia de línea media es sensible a los parámetros, y los parámetros de diferentes períodos tienen un efecto diferente
  • El seguimiento de la línea media no permite determinar tendencias y rangos, con riesgo de pérdidas
  • No puede procesar el ciclo de recomposición y puede emitir señales erróneas
  • La ayuda de los mapas en la nube es inestable y puede ser engañosa

Se puede considerar la combinación de indicadores de tendencia como el juicio MACD para generar señales; la adopción de un sistema de combinación múltiple homogéneo para mejorar la estabilidad; o la adición de una estrategia de control de riesgo de stop loss.

Dirección de optimización

  • Aumentar el conjunto de indicadores de dinámica para determinar la fortaleza de la tendencia
  • Considere sistemas de líneas medias como el cruce de oro
  • Aumentar los indicadores de canal y fluctuación para determinar el intervalo de convergencia
  • Parámetros de optimización para encontrar la combinación óptima de ciclos
  • Adherirse a una estrategia de stop loss para controlar las pérdidas individuales

Resumir

La estrategia de equilibrio a primera vista es más sencilla y directa en general, es adecuada para principiantes, entiende las tendencias a través de la línea de equilibrio; al mismo tiempo, también puede realizar una combinación de indicadores múltiples para enriquecer el efecto del sistema. Pero el efecto en el mercado real de esta estrategia aún está por ser verificado, y aún se necesita una prueba de optimización continua para poder utilizarla en el mercado real. La clave es controlar el riesgo, no seguir ciegamente la línea de equilibrio, y en el mercado real se necesita el uso de la oportunidad de auditoría.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Ichimoku Crypto Breakout", shorttitle="Ichimoku Breakout", overlay=true)

Ten = input(18, minval=1, title="Tenkan")
Kij = input(52, minval=1, title="Kijun")
LeadSpan = input(104, minval=1, title="Senkou B")
Displace = input(52, minval=1, title="Senkou A")
SpanOffset = input(52, minval=1, title="Span Offset")

sts = input(true, title="Show Tenkan")
sks = input(true, title="Show Kijun")
ssa = input(true, title="Show Span A")
ssb = input(true, title="Show Span B")

source = close

//Script for Ichimoku Indicator
donchian(len) => avg(lowest(len), highest(len))
TS = donchian(Ten)
KS = donchian(Kij)
SpanA = avg(TS, KS)
SpanB = donchian(LeadSpan)

CloudTop = max(TS, KS)

Chikou = source[Displace]
SpanAA = avg(TS, KS)[SpanOffset]
SpanBB = donchian(LeadSpan)[SpanOffset]

//Kumo Breakout (Long)
SpanA_Top = SpanAA >= SpanBB ? 1 : 0
SpanB_Top = SpanBB >= SpanAA ? 1 : 0

SpanA_Top2 = SpanA >= SpanB ? 1 : 0
SpanB_Top2 = SpanB >= SpanA ? 1 : 0

SpanA1 = SpanA_Top2 ? SpanA : na
SpanA2 = SpanA_Top2 ? SpanB : na

SpanB1 = SpanB_Top2 ? SpanA : na
SpanB2 = SpanB_Top2 ? SpanB : na

//plot for Tenkan and Kijun (Current Timeframe)
p1= plot(sts and TS ? TS : na, title="Tenkan", linewidth = 2, color = gray)
p2 = plot(sks and KS ? KS : na, title="Kijun", linewidth = 2, color = black)
p5 = plot(close, title="Chikou", linewidth = 2, offset=-Displace, color = orange)

//Plot for Kumo Cloud (Dynamic Color)
p3 = plot(ssa and SpanA ? SpanA : na, title="SpanA", linewidth=2, offset=Displace, color=green)
p4 = plot(ssb and SpanB ? SpanB : na, title="SpanB", linewidth=2, offset=Displace, color=red)

p8 = plot(ssa and SpanA1 ? SpanA1 : na, title="Span A1 above", style=linebr, linewidth=1, offset=Displace, color=green)
p9 = plot(ssa and SpanA2 ? SpanA2 : na, title="Span A2 above", style=linebr, linewidth=1, offset=Displace, color=green)
p10 = plot(ssb and SpanB1 ? SpanB1 : na, title="Span B1 above", style=linebr, linewidth=1, offset=Displace, color=red)
p11 = plot(ssb and SpanB2 ? SpanB2 : na, title="Span B2 above", style=linebr, linewidth=1, offset=Displace, color=red)

fill(p8, p9, color = lime, transp=70, title="Kumo Cloud Up")
fill (p10, p11, color=red, transp=70, title="Kumo Cloud Down")

LongSpan = (SpanA_Top and source[1] < SpanAA[1] and source > SpanAA) or (SpanB_Top and source[1] < SpanBB[1] and source > SpanBB) ? 1 : 0
cupSpan = LongSpan  == 1 ? LongSpan : 0

//Kumo Breakout (Long)
//plotarrow(cupSpan, title="Kumo Breakout Long", colorup=green, maxheight=50)

//Kumo Breakout (Long) Alerts
Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))
//Long_Breakout = ((SpanA_Top ==1 and crossover(KS, SpanAA)) or (SpanB_Top ==1 and crossover(KS, SpanBB))) and TS >= KS
//alertcondition(Long_Breakout, title="Kumo Breakout Long", message="Kumo Long")

//Kumo Breakout (Short)
ShortSpan = (SpanB_Top and source[1] > SpanAA[1] and source < SpanAA) or (SpanA_Top and source[1] > SpanBB[1] and source < SpanBB) ? 1 : 0
cdnSpan = ShortSpan == 1 ? ShortSpan : 0

//Kumo Breakout (Short)
//plotarrow(cdnSpan*-1, title="Kumo Breakout Short", colordown=red, maxheight=50)

//Kumo Breakout (Short) Alerts
Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))
//alertcondition(Short_Breakout, title="Kumo Breakout Short", message="Kumo Short")

//Kumo Twist
Kumo_Twist_Long = SpanA[1] < SpanB[1] and SpanA > SpanB ? 1 : 0
Kumo_Twist_Short = SpanA[1] > SpanB[1] and SpanA < SpanB ? 1 : 0

cupD = Kumo_Twist_Long == 1 ? Kumo_Twist_Long : 0
cdnD = Kumo_Twist_Short == 1 ? Kumo_Twist_Short : 0

//Kumo Twist (Long/Short)
//plotarrow(cupD, title="Kumo Twist Long", colorup=green, maxheight=50)
//plotarrow(cdnD*-1, title="Kumo Twist Short", colordown=red, maxheight=50)

//Kumo Twist (Long/Short) Alerts
KumoTwistLong_Cross = crossover(SpanA, SpanB)
//alertcondition(KumoTwistLong_Cross, title="Kumo Twist Long", message="Kumo Twist Long")
KumoTwistShort_Cross = crossunder(SpanA, SpanB)
//alertcondition(KumoTwistShort_Cross, title="Kumo Twist Short", message="Kumo Twist Short")

//Kumo Twist (Long/Short) - Bar Color
BarColor = Kumo_Twist_Long ? green : Kumo_Twist_Short ? red : na
barcolor(BarColor)

//Chikou above/below Price
Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

//Kumo Twist (Long/Short) - Plot Character on location of Chikou to Price & Price to Kumo
//plotchar(Kumo_Twist_Long and Chikou_Above, title="Kumo Twist Long and Chikou above Price", char="A", location=location.abovebar, color=green)
//plotchar(Kumo_Twist_Long and Chikou_Below, title="Kumo Twist Long and Chikou below Price", char="B", location=location.abovebar, color=red)
//plotchar(Kumo_Twist_Short and Chikou_Above, title="Kumo Twist Short and Chikou above Price", char="A", location=location.belowbar, color=green)
//plotchar(Kumo_Twist_Short and Chikou_Below, title="Kumo Twist Short and Chikou below Price", char="B", location=location.belowbar, color=red)

//Base and Conversion Line Cross
//long = cross(TS, KS) and TS>KS

long = (cross(TS, SpanA) or cross(TS, SpanB)) and TS>SpanA and TS>SpanB and TS>=KS
short = cross(TS, KS) and KS >= TS

strategy.entry("long", strategy.long, when=Long_Breakout)
strategy.entry("short", strategy.short, when=Short_Breakout)
//strategy.exit("bracket", when=short)