Una estrategia de equilibrio

El autor:¿ Qué pasa?, fecha: 2023-10-13 16:48:22
Las etiquetas:

Resumen

La estrategia de equilibrio de primera vista utiliza la idea de la línea media, que utiliza la relación entre la línea media y el precio para determinar la dirección de la tendencia, y pertenece a la estrategia de seguimiento de tendencias.

El análisis original

La estrategia se basa principalmente en la idea de una línea recta de un solo ojo, y su aplicación central es:donchian()La función calcula la media de los precios más altos y más bajos durante un determinado período, como una línea de media; y luego decide si el precio rompe esa línea de media, lo que genera una señal de negociación.

En concreto, la estrategia comienza con el cálculo.TenLa primera línea recta del cicloTS, como referencia. Cuando el precio cruza la línea media arriba, se cree que entra en el mercado de tendencia, generando más señales de hacer; cuando el precio cruza la línea media abajo, se cree que la tendencia se invierte, generando señales de hacer.

Además, las estrategias también calculanKijLíneas de medias del cicloKS, yTSLas líneas se unen, formando condiciones de filtración, evitando señales falsas.TSEn líneaKSLa línea es la que dispara más señales.

El código también traza mapas de nubes, determina las relaciones de ubicación de los mapas de nubes, ayuda a determinar la dirección de la tendencia y calcula la dirección de la nube.ChikouLa línea, juzgar su relación con el precio, como condición auxiliar.

Análisis de ventajas

  • Usar una línea uniforme para determinar la tendencia, el principio es simple y fácil de entender.
  • La combinación de mapas en la nube aumenta la base de los juicios y mejora la precisión
  • AumentoChikouLos cables como condición auxiliar para filtrar aún más la señal
  • Se puede ajustar con flexibilidad con combinaciones de diferentes parámetros.

Análisis de riesgos

  • Las estrategias uniformes son sensibles a los parámetros, y los efectos de los parámetros de diferentes ciclos son muy diferentes.
  • Seguimiento puro de la línea media, incapacidad para determinar tendencias y intervalos, riesgo de pérdida
  • No puede procesar ciclos completos, es fácil emitir señales erróneas
  • El mapa de nubes ayuda a la discernimiento inestable y puede ser engañoso.

Se puede considerar la combinación de indicadores de tendencia, como el juicio MACD, para generar señales; el uso de un sistema de combinación múltiple uniforme para mejorar la estabilidad; o la incorporación de estrategias de control de riesgos para detener los daños.

Dirección de optimización

  • Aumentar la combinación de indicadores de impulso para determinar la tendencia fuerte o débil
  • Considerar sistemas de múltiples líneas uniformes, como el cruce de oro de múltiples líneas uniformes
  • Aumentar los indicadores de canal y fluctuación para determinar el rango de balance
  • Optimizar los parámetros para encontrar la mejor combinación de ciclos
  • Incorporar una estrategia de stop loss para controlar las pérdidas individuales

Resumen

En general, la estrategia de equilibrio inicial es más simple y directa, adecuada para principiantes, para comprender las tendencias a través de la línea uniforme; al mismo tiempo, también se puede realizar una combinación de múltiples indicadores para enriquecer los efectos del sistema. Pero los efectos de la estrategia en el mercado real aún están por comprobarse y aún se necesitan pruebas continuas de optimización para su uso en el mercado real. La clave es controlar el riesgo, no seguir ciegamente la línea uniforme, y aplicar la auditoría en el mercado real cuando sea necesario.


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

Más contenido