Estrategia de Ichimoku Kinko Hyo para largo y corto plazo


Fecha de creación: 2023-12-28 12:12:51 Última modificación: 2023-12-28 12:12:51
Copiar: 0 Número de Visitas: 664
1
Seguir
1623
Seguidores

Estrategia de Ichimoku Kinko Hyo para largo y corto plazo

Descripción general

La estrategia se desarrolló sobre la base de un sistema de negociación de equilibrio a la vista. La idea principal es la combinación de un indicador de equilibrio a la vista y reglas de gestión de fondos para la identificación de oportunidades de negociación de líneas cortas y múltiples.

Principio de estrategia

La estrategia utiliza el clásico sistema de equilibrio a primera vista como referencia básica. Los componentes principales incluyen:

Líneas de giro: Líneas intermedias. Reflejan tendencias intermedias.

Línea de referencia: Línea de largo plazo.

Líneas de vanguardia: Líneas de predicción futuras que reflejan tendencias futuras.

Líneas de retraso: líneas pasadas.

En base a esto, la estrategia ha sido mejorada de la siguiente manera:

  1. La elección de los parámetros de tiempo sigue la teoría del cuadrado de números impares, lo que lo hace más acorde con las leyes del mercado.

  2. Incrementar las reglas de gestión de fondos, incluidos los límites de pérdidas y pérdidas y el tamaño de las posiciones, para controlar el riesgo de las transacciones.

  3. Se puede ajustar el alcance de la respuesta para que las pruebas de estrategia sean más completas.

En concreto, las condiciones de entrada de múltiples cabezas incluyen el cruce de la línea de referencia en la línea de giro, la línea de retraso por encima del precio, el precio por encima del gráfico de la nube, el gráfico de la nube para predecir el futuro del mercado alcista, etc. Las condiciones de entrada de cabezas vacías requieren el cruce de la línea de referencia en la línea de giro, la línea de retraso por debajo del precio, etc.

Las reglas de administración de fondos requieren un 30% de stop-loss de más de un cabeza, y un 5% de stop-loss; el stop-loss de cabeza vacía se detiene cuando supera el triple de ATR de la línea de giro.

Análisis de las ventajas

Las ventajas de esta estrategia, combinada con indicadores de línea de paridad y administración de fondos, se reflejan principalmente en:

  1. El sistema de equilibrio a primera vista refleja tendencias a corto, medio y largo plazo.

  2. Parámetros de optimización de la teoría del cuadrado de números impares, de acuerdo con las leyes estadísticas del mercado.

  3. Las reglas de administración de fondos controlan eficazmente los pérdidas individuales y aseguran que las ganancias sean mayores que las pérdidas.

  4. El rango de detección es ajustable y la prueba es más completa.

En resumen, la estrategia tiene en cuenta la tendencia, la selección de parámetros y el control de riesgos, entre otros factores.

Análisis de riesgos

Los principales riesgos de esta estrategia provienen de los siguientes aspectos:

  1. El sistema de equilibrio de un ojo es fácil de engañar con falsas brechas, lo que provoca una entrada innecesaria. Se puede combinar con más señales de filtración de indicadores.

  2. Las reglas de parada de pérdidas fijas son fáciles de ajustar y se pueden introducir paradas de pérdidas dinámicas

  3. Los datos de retroalimentación son incompletos y pueden sobreestimar la eficacia de la estrategia. Se requiere más tiempo y más mercados para retroalimentar.

  4. Esta estrategia es más adecuada para mercados de tendencia, donde la liquidación puede ser un mal resultado. Se pueden optimizar las condiciones de entrada para identificar tendencias.

Dirección de optimización

La estrategia se puede optimizar principalmente en los siguientes aspectos:

  1. Aumentar el filtrado de indicadores para mejorar la calidad de la admisión. Indicadores de juicio auxiliares como MACD, KDJ, etc.

  2. Detención dinámica de la parada. Por ejemplo, se detiene para romper la línea media N veces ATR y se detiene para caer por debajo de la posición de soporte.

  3. Verificación de la retroalimentación de múltiples variedades. Verificación de la estabilidad de la estrategia en más mercados y con datos más largos.

  4. Distinguir las tendencias y el balance del mercado. Optimizar el mecanismo de entrada para adaptarlo a las diferentes situaciones.

Resumir

La estrategia tiene en cuenta factores como la tendencia, la gestión de fondos y otros factores, utiliza un indicador de equilibrio de primera línea para identificar oportunidades de comercio de múltiples líneas cortas; y utiliza reglas de control de riesgo para controlar las pérdidas individuales. La estrategia es una gran mejora en comparación con el sistema de equilibrio de primera línea original.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Author Obarut
//@version=5
strategy("İchimoku Strategy With MM Short-Long",overlay=true,process_orders_on_close=true)

//Ichimoku Inputs
ts_period = input.int(8, minval=1, title="Tenkan-Sen Period")
ks_period = input.int(16, minval=1, title="Kijun-Sen Period")
ssb_period = input.int(24, minval=1, title="Senkou-Span B Period")
cs_offset = input.int(16, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(8, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

// Back Testing Period Inputs

fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31) 
frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12)
fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100)
today = input.int(defval=1,title="En Date",minval=1,maxval=31)
tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12)
toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200)
start=timestamp(fromyear,frommonth,fromday,00,00)
finish=timestamp(toyear,tomonth,today,00,00)
timewindow= time>=start and time<=finish

//Ichimoku Componenets Calculation Function
middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components

tenkan = middle(ts_period)
kijun = middle(ks_period)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_period)
//Senkou Span Lines slopes
slopetenkan=(tenkan-tenkan[2])/tenkan
slopekijun= (kijun-kijun[2])/kijun
//Avarage True Range 
atr = ta.atr(14)
//Senkou Span Lines
ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Price Distance From Tenkan
distance = close - tenkan

// Price Distance from Kijun
distancek = close - kijun

// Entry/Exit Signals

tk_cross_kijun_bull = tenkan >= kijun//Tenkan Sen is greater than or equal to  Kijun Sen
tk_cross_kijun_bear = tenkan <= kijun//Tenkan Sen is smaller than or equal to Kijun Sen
cs_cross_bull = close > high[cs_offset-1]//Chikou is above the price
cs_cross_bear = close < close[cs_offset-1]//Chikou is below the price
price_above_kumo = close > ss_above//Price is above the Kumo cloud
pbsenkA = close < ss_above // Price is below the Senkou Span which is higher
pasenkB = close > ss_below// Price is above the Senkou span which is lower
price_below_kumo = close < ss_below // Price is below Kumo cloud
future_kumo_bull = senkouA > senkouB and (ta.roc(senkouA,3)>0) and (ta.roc(senkouB,3)>=0) // Future Kumo cloud is bullish
pbtenkan=close<tenkan
tkbelowkij=tenkan<kijun
future_kumo_bear = senkouA < senkouB//Future Kumo cloud is bearish
// Price Distance From Tenken
disbull = distance < 2*atr
//Price Distance From Kijun
disbullk = distancek < 3*atr
//Price Above Tenkan Condition
patk = close > tenkan
// Kijun Above Senkou Span Condition
kjasenkA = kijun > ss_above
// Price Below Kijun Condition
pbkijun = close < kijun
//Consolidation Tenkan and Kijun are inside Kumo cloud
kijuninsidekumo= kijun<ss_above and kijun>ss_below
tenkaninsidekumo= tenkan<ss_above and tenkan>ss_below
consolidation=kijuninsidekumo and tenkaninsidekumo

//Bullish Entry Condition

bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and disbull and patk 
     and not consolidation
//Bullish exit
bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear  and future_kumo_bear
      or price_below_kumo     
// Bearish Entry Condition

bearish2=tk_cross_kijun_bear and pbtenkan and tkbelowkij and tkbelowkij and cs_cross_bear and future_kumo_bear

if(bullish and timewindow and long_entry )
    strategy.entry("Long Entry", strategy.long)


if(bearish2 and timewindow and short_entry)
    strategy.entry("Short Entry",strategy.short)
// Bearish Condition



lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1)

// Take Profit or Stop Loss in Bearish

exit1= (close-tenkan)>3*atr and slopetenkan<=0
exit2= (close-lastentryprice)>5*atr and close<(tenkan-0.04*atr)

if(bearish and timewindow and not short_entry or exit1 or exit2  or (close>1.30*lastentryprice  ) or (close< 0.95*lastentryprice))
    strategy.close("Long Entry")
if(bullish and timewindow and not long_entry)
    strategy.close("Short Entry")
if(time>finish)
    strategy.close_all("time up")

plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")