Ichimoku estrategia a corto y largo plazo con la gestión del dinero

El autor:¿ Qué pasa?, Fecha: 2023-12-28 12:12:51
Las etiquetas:

img

Resumen general

Esta estrategia es una mejora basada en el sistema de negociación Ichimoku. La idea principal es combinar el indicador Ichimoku y las reglas de gestión de dinero para identificar oportunidades comerciales cortas y largas.

Principios de estrategia

La estrategia utiliza el clásico sistema Ichimoku como referencia básica.

Tenkan-Sen: Línea de conversión que refleja las tendencias a mediano plazo.

Kijun-Sen: Línea de base, que refleja las tendencias a largo plazo.

Senkou Span: Línea de liderazgo, que refleja las tendencias futuras.

Chikou Span: Línea de retraso, que refleja las tendencias del pasado.

Sobre esta base, la estrategia ha realizado las siguientes mejoras:

  1. Los parámetros de tiempo siguen la teoría del cuadrado impar para que coincida mejor con los patrones del mercado.

  2. Se agregan reglas de gestión de dinero, incluidas las reglas de stop loss, take profit, dimensionamiento de posiciones, etc., para controlar los riesgos comerciales.

  3. Período de prueba posterior ajustable para pruebas más completas.

Específicamente, las condiciones de entrada larga incluyen tenkan cross kijun up, chikou por encima del precio, precio por encima de kumo, futuro kumo alcista, etc. La entrada corta requiere tenkan cross kijun down, chikou por debajo del precio, etc.

Las reglas de gestión de dinero requieren una toma de ganancias del 30% y un stop loss del 5% para los comprados; stop loss si es superior a 3 ATR de tenkan para los cortos.

Análisis de ventajas

Las principales ventajas de combinar Ichimoku y la gestión del dinero son:

  1. Ichimoku en sí mismo refleja tendencias a corto, mediano y largo plazo, entradas/salidas razonables.

  2. La teoría cuadrada impar optimiza los parámetros para que coincidan con las estadísticas del mercado.

  3. La gestión del dinero controla eficazmente la parada de pérdida de una sola operación mientras las ganancias exceden.

  4. El período de prueba posterior ajustable permite pruebas más completas.

En resumen, esta estrategia tiene en cuenta la tendencia, la selección de parámetros, el control de riesgos, etc., y es eficaz para identificar oportunidades a corto y largo plazo y controlar los riesgos comerciales, con una gran practicidad.

Análisis de riesgos

Los principales riesgos de esta estrategia provienen de:

  1. Ichimoku es propenso a falsas fugas causando entradas innecesarias.

  2. La toma de ganancias fijas y el stop loss pueden ser vulnerables a las trampas.

  3. Los datos incompletos de backtesting pueden sobreestimar el rendimiento. Se necesitan pruebas más largas en más mercados.

  4. La estrategia se ajusta más a los mercados de tendencia. Puede tener un rendimiento inferior en los mercados de rango. Las condiciones de entrada se pueden optimizar para la identificación de tendencias.

Direcciones de mejora

Las principales áreas de mejora incluyen:

  1. Añadir filtros de indicadores para mejorar la calidad de entrada, como MACD, KDJ, etc.

  2. Las pérdidas de los activos financieros derivados de operaciones de inversión en el mercado de divisas, incluidas las pérdidas de los activos financieros derivados de operaciones de inversión en el mercado de divisas, incluidas las pérdidas de los activos financieros derivados de operaciones de inversión.

  3. Pruebas de activos múltiples en datos más largos para verificar la estabilidad.

  4. Diferenciar las tendencias y el rango de los mercados.

Conclusión

Esta estrategia considera de manera integral la tendencia, la gestión del dinero, etc., utiliza Ichimoku para identificar oportunidades largas y aplica reglas de control de riesgos para limitar la pérdida de una sola operación.


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

Más.