Esta estrategia utiliza ampliamente indicadores técnicos como Ichimoku Kinko Hyo, Macd, Chaikin Money Flow y Tsi Oscillator para juzgar con precisión la dirección de las tendencias del mercado para el comercio a corto plazo.
La estrategia utiliza la línea Tenkan-sen, la línea Kijun-sen, las líneas Senkou Span A y Senkou Span B en Ichimoku para juzgar las tendencias de precios intradiarios. Al mismo tiempo, combina las señales cruzadas de las líneas de promedio móvil rápido y lento de Macd y el indicador de flujo de dinero y el indicador de oscilación para determinar la entrada y salida de fondos. Después del juicio integral de múltiples indicadores, se toman las decisiones de compra y venta.
Cuando la línea Tenkan-sen cruza por encima de la línea Kijun-sen, el Chikou Span está por encima del eje 0, y el precio de cierre está por encima de la nube Ichimoku, es una señal alcista. Por el contrario, cuando la línea Tenkan-sen cruza por debajo de la línea Kijun-sen, el Chikou Span está por debajo del eje 0, y el precio de cierre está por debajo de la nube, es una señal bajista. Al mismo tiempo, la estrategia detecta si el histograma MACD es positivo y si el indicador Chaikin Money Flow y el oscilador TSI son positivos en la misma dirección. Si los indicadores son alcistas en la misma dirección, se abre la posición larga comprando, y si los indicadores son bajistas en la misma dirección, se abre la posición corta vendiendo.
Cuando el indicador emite una señal opuesta a la anterior, se realiza una operación inversa para aplanar la posición anterior.
El uso de una combinación de múltiples indicadores mejora la precisión del juicio.
Las operaciones a corto plazo rastrean las fluctuaciones del mercado en tiempo real.
No hay intervención manual, trading algorítmico totalmente automatizado.
El juicio combinado de múltiples indicadores que son alcistas o bajistas al mismo tiempo tiene el riesgo de error de juicio.
Las operaciones a corto plazo de alta frecuencia tienen comisiones relativamente altas y es difícil detectar las tendencias.
No se puede configurar un stop loss para generar mayores pérdidas. Se pueden configurar puntos de stop loss apropiados o movimientos de stop loss en función del ATR.
Optimizar las combinaciones de parámetros, ajustar los parámetros de la media móvil para adaptarse a los diferentes ciclos y variedades.
Aumentar el mecanismo de stop loss y establecer líneas de stop loss dinámicas combinadas con el indicador ATR.
Aumentar la gestión de posiciones, ajustar dinámicamente las proporciones de volumen de negociación.
Combinar tecnología de aprendizaje automático para optimizar indicadores y señales.
Esta estrategia utiliza ampliamente múltiples indicadores técnicos para determinar las fluctuaciones de tendencia en tiempo real para el comercio a corto plazo de alta frecuencia. Aunque hay algunos riesgos, se puede mejorar a través de la optimización.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0) //Inputs ts_bars = input(10, minval=1, title="Tenkan-Sen Bars") ks_bars = input(30, minval=1, title="Kijun-Sen Bars") ssb_bars = input(52, minval=1, title="Senkou-Span B Bars") cs_offset = input(26, minval=1, title="Chikou-Span Offset") ss_offset = input(26, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") middle(len) => avg(lowest(len), highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = avg(tenkan, kijun) senkouB = middle(ssb_bars) ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Entry/Exit Signals fast_length = input(title="Fast Length", type=input.integer, defval=17) slow_length = input(title="Slow Length", type=input.integer, defval=28) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true) // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = mom(close, cs_offset-1) > 0 cs_cross_bear = mom(close, cs_offset-1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low //CMF lengthA = input(8, minval=1, title="CMF Length") ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume mf = sum(ad, lengthA) / sum(volume, lengthA) //TSI long = input(title="Long Length", type=input.integer, defval=8) short = input(title="Short Length", type=input.integer, defval=8) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0 bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0 and mf < -0.1 and tsi_value < 0 strategy.entry("Long", strategy.long, when=bullish and long_entry) strategy.entry("Short", strategy.short, when=bearish and short_entry) strategy.close("Long", when=bearish and not short_entry) strategy.close("Short", when=bullish and not long_entry)