Estrategia de seguimiento de tendencias de gráficos de nubes a escala equilibrada


Fecha de creación: 2024-02-01 11:34:23 Última modificación: 2024-02-01 11:34:23
Copiar: 3 Número de Visitas: 634
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias de gráficos de nubes a escala equilibrada

Nombre de la estrategia: estrategia de seguimiento de tendencias en el gráfico de nubes de escala equilibrada

La estrategia es muy simple.

Esta estrategia utiliza una variedad de señales proporcionadas por el indicador de la nube de escala de equilibrio y diseña una estrategia de seguimiento de tendencias pura, cuyo objetivo es capturar tendencias de mediano y largo plazo, filtrar los ajustes de oscilación y seguir la dirección de las tendencias fuertes.

Tres, las estrategias.

La estrategia utiliza la línea de conversión, la línea de referencia y la línea de retraso en los indicadores de la nube de escala de equilibrio como señales principales. En el juicio de tendencias a largo plazo, se centra en la relación de cambio ascendente y descendente de la nube anterior y la nube posterior para juzgar la tendencia; en la selección de la hora de entrada y salida específica, el cruce de la línea de conversión y la línea de referencia y el cambio en la relación de precios con la nube son la base principal.

En general, la lógica central de la estrategia es: confirmar la dirección de la tendencia a medio y largo plazo - > esperar la oportunidad de reiniciar una tendencia fuerte - > seguir la tendencia de entrada - > seguir la salida de la parada.

Concretamente, para determinar la tendencia a medio y largo plazo, se determina la relación de cambio entre la nube anterior y la nube posterior (si la nube anterior está arriba y es verde, representa una tendencia alcista, lo contrario representa una tendencia descendente). Cuando se confirma la tendencia a medio y largo plazo, se reinicia la tendencia a través de la cruce de la línea de conversión y la línea de referencia y la señal de la nube de ruptura de precios, se envía la señal de entrada; después de la entrada, se usa la línea de referencia como línea de parada para seguir la salida de pérdidas.

De esta manera, se pueden filtrar las fluctuaciones a corto y medio plazo y aprovechar las oportunidades de tendencias fuertes para obtener ganancias adicionales estables a largo plazo en los mercados de valores.

Cuatro, ventajas estratégicas

(i) El uso de gráficos de nubes de escala de equilibrio para determinar la dirección de las tendencias a medio y largo plazo, es favorable para ubicar las principales direcciones

(ii) La intersección de la línea de conversión y la línea de referencia, así como los cambios en la relación entre el precio y el gráfico de la nube para determinar el momento de entrada, pueden filtrar eficazmente las oscilaciones y capturar las tendencias fuertes

(iii) Mecanismos de seguimiento de la suspensión de pérdidas y salidas que permiten obtener ganancias de grandes tendencias y controlar eficazmente las pérdidas individuales

(D) la integración de múltiples señales de gráficos de nubes de escala de equilibrio, la formación de una estrategia de seguimiento de tendencias sistemática, un buen desempeño estable

Cinco, el riesgo estratégico.

(a) El riesgo sistemático de error de juicio a medio y largo plazo. Si la tendencia a medio y largo plazo es un error de juicio, las operaciones posteriores estarán expuestas al riesgo de error de dirección.

(ii) El riesgo de la elección incorrecta de la hora de entrada. Si la hora de entrada es incorrecta, es fácil de engañar.

(III) Seguimiento de los riesgos que conlleva un alto de pérdidas demasiado cercano. Si el alto de pérdidas está demasiado cerca, la situación extrema puede romper el alto de pérdidas y causar pérdidas.

(D) La carga de las tarifas de transacción causada por la frecuencia de transacción excesiva. Si la configuración de los parámetros hace que la frecuencia de transacción sea excesiva, las tarifas de transacción también aumentan.

Seis: Optimizar las estrategias

(I) Prueba de diferentes combinaciones de parámetros de la escala de equilibrio para encontrar el parámetro óptimo

(ii) Optimizar las condiciones de ingreso, diseñar filtros más estrictos para garantizar una ingreso eficaz

(III) Ajuste de la distancia de parada para encontrar el equilibrio óptimo entre el riesgo y los beneficios

(d) La adición de objetivos de precios de ganancias, en combinación con la distancia entre los precios y los indicadores clave de equilibrio, para formar un mecanismo de ganancias dinámicas

VII. Conclusión

Esta estrategia de seguimiento de tendencias de la nube de escala de equilibrio, la nube de escala de equilibrio integral de varias señales para determinar la dirección de la tendencia, el momento de entrada y la salida de la parada. La práctica ha demostrado que la estrategia puede capturar de manera efectiva la tendencia a medio y largo plazo, filtrar las oscilaciones y obtener ganancias excedentarias de manera estable. En el futuro, mediante pruebas de optimización continua, se espera mejorar aún más el rendimiento de la estrategia y obtener mejores ganancias.

Código Fuente de la Estrategia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2)

//***************************
//  INPUT BACKTEST RANGE    *
//***************************
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000) 
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

//***************
//*  ICHIMOKU   *
//***************
//inizializzazione parametri,,
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen")
kinjunPeriods = input(26, minval=1, title="Kinjun-Sen")
senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B")
displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A")

//definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
averageHighLow(period) => avg(lowest(period), highest(period))
tenkan= averageHighLow(tenkanPeriods)
kinjun = averageHighLow(kinjunPeriods)
senkouSpanA = avg(tenkan, kinjun)
senkouSpanB = averageHighLow(senkouSpanBPeriods)

//definisco il colore della kumo in base al trend.
senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na
senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na

span1plotU = senkouSpan1Above ? senkouSpanA : na
span2plotU = senkouSpan1Above ? senkouSpanB : na
span1plotD = senkouSpan2Below ? senkouSpanA : na
span2plotD = senkouSpan2Below ? senkouSpanB : na

col = senkouSpanA >= senkouSpanB ? lime : red

//plots Ichimoku
plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue)
plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red)
plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua)
plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime)
plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red)

//Cloud Lines Plot 
p1 = plot(span1plotU ? span1plotU  : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col)
p2 = plot(span2plotU ? span2plotU  : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p3 = plot(span1plotD ? span1plotD  : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p4 = plot(span2plotD ? span2plotD  : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
//Fills that color cloud based on Trend.
fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')

//***********************************************
//*     condizioni ingresso ed uscita mercato   *
//***********************************************
isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false
isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement]))
isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement]))
isChinkouSpanSopra = high[displacement]<close
isChinkouSpanSotto = low[displacement]>close

filtroLong=isSopraKumo and isChinkouSpanSopra
filtroShort=isSottoKumo and isChinkouSpanSotto

//rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era già in atto(tenkan >kijun x entrare long
isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun) 
isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and  (close<kinjun) 

//Breackout Kumo
isBreackoutKumoEntryLong =  crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun) 
isBreackoutKumoEntryShort =  crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun)

ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong
ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort

isExitLong = close<kinjun
isExitShort = close>kinjun

//ingressi ed uscite Mercato
strategy.entry ("Long",long=true, when = window() and ConditionEntryLong)
strategy.entry ("Short",long=false, when = window() and ConditionEntryShort)

strategy.close(id="Long", when=isExitLong)
strategy.close(id="Short", when=isExitShort)
strategy.close_all(when=not window())