La estrategia de escalping de la nube de Ichimoku es una estrategia cuantitativa a corto plazo que integra la nube de Ichimoku y el índice direccional promedio (ADX). Utiliza la nube de Ichimoku para determinar la dirección de la tendencia y el ADX para filtrar los mercados no de tendencia para escalpar durante las condiciones de tendencia.
La estrategia consta de dos componentes principales:
Nube Ichimoku para juzgar la dirección de la tendencia
El precio por encima de la nube indica una tendencia alcista, mientras que por debajo significa una tendencia bajista.
ADX para filtrar el mercado no de tendencia
Solo toma señales cuando el ADX es mayor de 20, lo que sugiere un mercado de tendencia.
Reglas comerciales:
Las ventajas de esta estrategia:
Siguiendo la tendencia, evitando los rangos. Ichimoku Cloud puede determinar con precisión la dirección de la tendencia y los puntos de inflexión. ADX filtra el mercado limitado por el rango para evitar una falsa ruptura.
Control de extracción. 150 ticks para detener la pérdida efectivamente límites por pérdida comercial.
Factor de ganancia alto. 200 ticks tomar ganancia contra 150 ticks stop loss da un factor de ganancia de 1.33, fácil de obtener ganancias.
La frecuencia de negociación adecuada. Sólo la negociación cuando surge una tendencia evita el exceso de negociación.
Los riesgos son:
Riesgo de falla en la determinación de tendencias. Se produce una señal incorrecta cuando Ichimoku Cloud no detecta la inversión de tendencias. Se pueden optimizar los parámetros para mejorar la precisión.
El riesgo de pérdida de stop puede ser alcanzado durante el mercado rápido.
Riesgo de negociación durante la noche y antes del mercado. La configuración predeterminada solo permite el comercio diurno. El juicio puede fallar durante horas extendidas. Puede habilitar el comercio 24H o personalizar estrategias para sesiones extendidas.
Las posibles direcciones de optimización:
Ajuste de parámetros de la Nube Ichimoku para encontrar el ajuste óptimo.
Parámetro ADX y optimización del umbral para determinar los mejores valores.
Objetivo de ganancia y optimización de stop loss basado en datos históricos.
Detener la pérdida para seguir mejor la tendencia.
Indicadores adicionales como el MACD y el KD para ayudar a determinar la tendencia.
Optimización adaptativa para diferentes productos.
La estrategia de escalping de Ichimoku Cloud Quant integra las ventajas de Ichimoku Cloud y ADX para determinar con precisión los puntos de inversión de tendencia y filtrar los mercados de rango. Tiene un alto factor de ganancia, una reducción controlable y es adecuada para escalpar a lo largo de la tendencia.
/*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)