La estrategia de la línea de equilibrio de Ichimoku

El autor:¿ Qué pasa?, Fecha: 2023-12-26 16:13:42
Las etiquetas:

img

Resumen general

La estrategia de la línea de balance de Ichimoku es una estrategia de seguimiento de tendencias que determina la dirección de la tendencia mediante el cálculo de promedios móviles combinados con el indicador Ichimoku Kinko Hyo para el comercio de tendencias de bajo riesgo.

Principio de la estrategia

La estrategia utiliza principalmente el indicador Ichimoku Kinko Hyo para determinar la dirección de la tendencia. Ichimoku Kinko Hyo, también conocido como Ichimoku Cloud, consiste en el Tenkan-sen (línea de conversión), Kijun-sen (línea de base), Senkou Span A (línea de conversión), y Senkou Span B (línea de conversión). Forma una zona de equilibrio entre el frente y la parte posterior llamada Kumo Cloud. Cuando el precio está por encima de la nube, indica una tendencia al alza. Una brecha debajo de la nube indica una tendencia a la baja.

La estrategia combina la relación del precio con los promedios móviles para determinar la dirección de la tendencia. Genera una señal de compra cuando el precio cruza por encima de la Línea de Base y la Línea de Conversión. Una señal de venta se genera cuando el precio se rompe por debajo de la nube. Esta combinación ayuda a filtrar las fallas y bloquear la dirección de la tendencia.

Análisis de ventajas

  • Utiliza Ichimoku Kinko Hyo para determinar la tendencia y evitar falsas rupturas en mercados variados
  • Parámetros de media móvil personalizables para la optimización a través de los períodos
  • La combinación con las medias móviles ayuda a fijar eficazmente la dirección de la tendencia
  • Las bandas en la nube permiten el comercio de tendencias de bajo riesgo

Análisis de riesgos

  • Es propenso a generar señales falsas en condiciones de mercado inestables
  • La configuración incorrecta de los parámetros puede dar lugar a señales comerciales demasiado frecuentes o retrasadas
  • Se requiere una evaluación manual de la dirección de la tendencia y un ajuste de parámetros

Direcciones de optimización

La estrategia puede optimizarse de varias maneras:

  1. Optimice los parámetros de Ichimoku para adaptarse a más marcos de tiempo
  2. Incorporar el stop loss para limitar las pérdidas por operación
  3. Añadir indicadores para medir tendencias fuertes y débiles para evitar problemas
  4. Añadir más condiciones de entrada para evitar la apertura de posiciones en condiciones extremas de mercado

Conclusión

En conclusión, la Estrategia de Línea de Balance de Ichimoku utiliza la Nube de Ichimoku para determinar la dirección de la tendencia, bloquear las tendencias de manera efectiva y generar señales comerciales combinando la relación de precios con promedios móviles, lo que permite un comercio de tendencias de bajo riesgo.


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Credit for the initial code to nathanhoffer - I simply added the ability to select a time period
//
strategy("Cloud Breakout", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Component Code Start ///////////////
testStartYear = input(2016, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

Ten = input(18, minval=1, title="Tenkan")
Kij = input(60, minval=1, title="Kijun")
LeadSpan = input(30, 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")
sc = input(true, title="Show Chikou")

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(sc and KS ? KS : na, title="Chikou", linewidth = 2, color = orange)
p5 = plot(sc and Displace ? close: na, 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

Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))

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

Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))

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

Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

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

if testPeriod()
    strategy.entry("long", strategy.long, when=Long_Breakout)
    strategy.entry("short", strategy.short, when=Short_Breakout)

Más.