Estrategia cuantitativa a corto plazo de Ichimoku Cloud


Fecha de creación: 2023-12-21 11:13:15 Última modificación: 2023-12-21 11:13:15
Copiar: 1 Número de Visitas: 1010
1
Seguir
1623
Seguidores

Estrategia cuantitativa a corto plazo de Ichimoku Cloud

Descripción general

La estrategia Ichimoku Cloud Quant Scalping es una estrategia de escalping de líneas cortas que combina una tabla de equilibrio de primera mano y un índice de dirección promedio. La estrategia utiliza el indicador de la nube Ichimoku para determinar la dirección de la tendencia, junto con el indicador ADX para filtrar los mercados no tendenciales y realizar operaciones de línea corta en situaciones de tendencia.

Principio de estrategia

La estrategia tiene dos partes principales:

  1. El indicador de la nube Ichimoku para determinar la dirección de la tendencia

    • Línea de conversión: la línea media de los últimos 7 ciclos
    • Línea base: la línea media de los últimos 26 ciclos
    • Leading Span A: punto medio entre la línea de conversión y la línea base
    • Leading Span B: la línea media de los últimos 52 ciclos

Cuando el precio está por encima de la nube, es una tendencia de varios extremos, y por debajo de la tendencia de la cabeza. La estrategia de la ruptura de la línea de conversión para juzgar el giro de la tendencia.

  1. El ADX filtra los mercados fuera de tendencia

ADX mayor a 20 indica tendencia, cuando la estrategia genera una señal de negociación. Menos de 20 indica liquidación, cuando la estrategia no se negocia.

Las reglas de negociación:

  • Entrada múltiple: el precio se rompe por encima de la línea de conversión y el ADX es mayor que 20
  • Entrada en blanco: el precio se rompe por debajo de la línea de conversión y el ADX es mayor que 20
  • Detener el daño: 150 puntos
  • - ¿Qué es eso?

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. El indicador de la nube de Ichimoku puede determinar con precisión la dirección de la tendencia y el punto de inflexión, en combinación con el indicador de ADX para filtrar el mercado de la corrección de la tendencia y evitar falsas rupturas.

  2. El control de retiro. El control de pérdidas se establece en 150 puntos, lo que permite un control efectivo de las pérdidas individuales.

  3. La tasa de ganancias y pérdidas es alta. El stop loss es de 200 puntos, el stop loss es de 150 puntos, la tasa de ganancias y pérdidas es de hasta 1.33, fácil de ganar.

  4. La frecuencia de las operaciones es moderada. Las operaciones se realizan solo en situaciones de tendencia y no con una alta frecuencia de entrada.

Análisis de riesgos

La estrategia también tiene los siguientes riesgos:

  1. Riesgo de fallo en el juicio de tendencias. El indicador de la nube Ichimoku produce una señal errónea cuando el juicio de tendencias se vuelve un fracaso. Se puede extender el ciclo de parámetros para optimizar adecuadamente.

  2. El stop loss es el riesgo de ser perseguido. El stop loss de la marcha rápida puede ser superado. Se puede establecer un stop loss móvil o considerar aumentar el rango de stop loss.

  3. El riesgo de negociación en el mercado nocturno y antes del cierre. La estrategia por defecto solo se opera en el mercado diurno, y el juicio de la tendencia en el mercado nocturno y antes del cierre puede no ser válido. Se puede configurar para negociar durante 24 horas o para establecer una estrategia de negociación por separado después del cierre.

Dirección de optimización

La estrategia puede ser optimizada en las siguientes direcciones:

  1. Optimización de los parámetros de los indicadores de la nube Ichimoku. Se pueden probar diferentes parámetros de línea de conversión, línea de referencia y línea de reserva para encontrar la combinación óptima de parámetros.

  2. Optimización de parámetros de ADX y de los umbrales. Se pueden probar los parámetros de ciclo y los umbrales de filtro de ADX para encontrar los parámetros óptimos.

  3. Optimización de la pérdida de frenado. Se puede determinar el punto óptimo de frenado de frenado basándose en la retroalimentación de datos históricos.

  4. Estrategia de stop-loss móvil. Establezca un stop-loss flotante para seguir mejor la tendencia y obtener ganancias.

  5. Indicadores auxiliares para determinar la tendencia. La adición de indicadores auxiliares para determinar la tendencia, como MACD, KD, mejora la precisión de la señal.

  6. Optimización de la adaptabilidad. Para las variedades con grandes diferencias, los parámetros de la estrategia de negociación se desarrollan por separado.

Resumir

La estrategia de corto plazo de la cuantificación de la nube de Ichimoku integra las ventajas del indicador de la nube de Ichimoku y el indicador de ADX, tanto para determinar con precisión el punto de inflexión de la tendencia como para eliminar eficazmente el mercado de liquidación y evitar falsas señales. La estrategia tiene una alta tasa de pérdidas y retrocesos controlables, adecuada para operaciones de corto plazo de seguimiento de la tendencia.

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

//@version=2
strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD)
//  ||  Adapted from:
//  ||      http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh

//  ||  Ichimoku cloud:
conversionPeriods = input(title='Conversion Periods:',  defval=7, minval=1),
basePeriods = 26//input(title='Base Periods',  defval=26, minval=1)
laggingSpan2Periods = 52//input(title='Lagging Span:',  defval=52, minval=1),
displacement = 26//input(title='Displacement:',  defval=26, minval=1)

f_donchian(_len) => avg(lowest(_len), highest(_len))

f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=>
    _conversion_line = f_donchian(_conversion_periods)
    _base_line = f_donchian(_base_periods)
    _lead_line1 = avg(_conversion_line, _base_line)
    _lead_line2 = f_donchian(_lagging_span)
    [_conversion_line, _base_line, _lead_line1, _lead_line2]

[conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods)

//ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2)
//ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2)
//fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80)
//plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement)
plot(title='Conversion', series=conversionLine, color=blue, linewidth=1)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  ADX
len = input(title="Length",  defval=14)
th = input(title="threshold",  defval=20)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Trade session:
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Strategy:
trade_size = input(title='Trade Size:',  defval=1)
stop_loss_in_ticks = input(title='Stop Loss in ticks:',  defval=150)
take_profit_in_ticks = input(title='Take Profit in ticks:',  defval=200)

buy_icloud_signal = open < conversionLine and close > conversionLine
buy_adx_signal = DIPlus > 20
buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal

sel_icloud_signal = open > conversionLine and close < conversionLine
sel_adx_signal = DIMinus > 20
sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal


strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal)
strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal)

strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)
strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)