Tabla de equilibrio mixto de Ichimoku Macd y Tsi estrategia combinada

El autor:¿ Qué pasa?, Fecha: 2023-11-27 11:50:43
Las etiquetas:

img

I. Resumen de la estrategia

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.

II. Principio de la estrategia

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.

III. Ventajas de la Estrategia

  1. El uso de una combinación de múltiples indicadores mejora la precisión del juicio.

  2. Las operaciones a corto plazo rastrean las fluctuaciones del mercado en tiempo real.

  3. No hay intervención manual, trading algorítmico totalmente automatizado.

IV. Riesgos de la estrategia y soluciones

  1. El juicio combinado de múltiples indicadores que son alcistas o bajistas al mismo tiempo tiene el riesgo de error de juicio.

  2. Las operaciones a corto plazo de alta frecuencia tienen comisiones relativamente altas y es difícil detectar las tendencias.

  3. 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.

V. Direcciones para la optimización de la estrategia

  1. Optimizar las combinaciones de parámetros, ajustar los parámetros de la media móvil para adaptarse a los diferentes ciclos y variedades.

  2. Aumentar el mecanismo de stop loss y establecer líneas de stop loss dinámicas combinadas con el indicador ATR.

  3. Aumentar la gestión de posiciones, ajustar dinámicamente las proporciones de volumen de negociación.

  4. Combinar tecnología de aprendizaje automático para optimizar indicadores y señales.

VI. Conclusión

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)

Más.