
La estrategia es una estrategia de seguimiento de tendencias que combina un indicador de gráfico en la nube y varios indicadores auxiliares. Se utiliza principalmente un gráfico en la nube para determinar la dirección de la tendencia, complementada con indicadores como MACD, CMF y TSI para filtrar para mejorar la calidad de la señal.
La estrategia utiliza principalmente la variación de un mapa de nubes para determinar la dirección de la tendencia. Cuando la antena pasa por la banda de nubes, se hace más, y cuando la banda de nubes baja, queda vacía. Al mismo tiempo, se combina con la línea de neumáticos de repuesto, el gráfico de columnas MACD, el indicador de flujo de capital CMF y el índice de fuerza real TSI para realizar filtraciones en varias capas, para garantizar la calidad de la señal.
En concreto, las condiciones de activación para hacer múltiples señales son:
Las condiciones de activación de las señales de vacío son lo contrario de las condiciones anteriores. De esta manera, a través de un juicio integral de varios indicadores, se puede filtrar eficazmente la mayoría de las señales falsas y bloquear las principales tendencias del mercado.
La mayor ventaja de esta estrategia es que la combinación de varios indicadores elimina las señales falsas y capta las tendencias fuertes. En concreto, las principales ventajas son las siguientes:
A través de los juicios generales mencionados anteriormente, la estrategia puede capturar de manera efectiva los sectores calientes de la línea media y larga de la bolsa de valores, hacer arbitraje de seguimiento de tendencias y obtener un gran beneficio adicional.
La estrategia se enfrenta a los siguientes riesgos:
Los métodos para reducir el riesgo son:
La estrategia se puede optimizar principalmente en los siguientes aspectos:
Optimización de parámetros. Se pueden optimizar los parámetros con más datos de retroalimentación para encontrar una mejor combinación de parámetros.
Aumentar el mecanismo de suspensión de pérdidas. Relajar adecuadamente las condiciones de entrada, pero configurar el bloqueo de pérdidas para controlar el riesgo.
Aumentar el Stop Loss móvil. Utilice el Stop Loss de seguimiento de tendencias para bloquear ganancias y evitar pérdidas de reversión.
Optimización de los indicadores de filtración. Se pueden probar más indicadores para encontrar una mejor combinación de señales de filtración.
Aumentar las reglas para reconocer automáticamente las brechas de autenticidad. Evitar el riesgo de persecución.
La estrategia de aplicación integral de un mapa de la nube con varios indicadores auxiliares para juzgar el efecto es notable. A través de la optimización de los parámetros, la mejora de los mecanismos de detención de pérdidas y la optimización de los indicadores, se puede mejorar aún más la estabilidad de la estrategia, mejorar la calidad de la señal y obtener mayores ganancias estables. La estrategia tiene una gran utilidad.
/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-13 14:00:00
period: 1m
basePeriod: 1m
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)