Indicador TSI de ventana deslizante doble Momentum


Fecha de creación: 2024-01-08 11:20:35 Última modificación: 2024-01-08 11:20:35
Copiar: 1 Número de Visitas: 654
1
Seguir
1617
Seguidores

Indicador TSI de ventana deslizante doble Momentum

Una visión general de la estrategia

Esta estrategia se llamaEstrategia para el índice TSI de las ventanas de doble deslizamientoLa idea central de la estrategia es utilizar el doble de la ventana de deslizamiento EMA para suavizar los cambios de precio, y luego combinar los cambios de dirección de la tendencia, para construir un indicador de la dinámica que refleja la fuerza de compra y venta en el mercado, es decir, el indicador TSI, y utilizarlo como una señal de negociación para tomar decisiones de compra y venta.

2. Principios de estrategia

Esta estrategia utiliza una doble ventana de deslizamiento de la media móvil binaria para calcular el movimiento de los precios. La ventana exterior es más larga y la ventana interior es más corta.

En primer lugar, se calcula el cambio en la unidad de precio:

pc = change(price)

Luego, se utiliza una doble ventana deslizante para el doble deslizamiento de los cambios de precio:

double_smoothed_pc = double_smooth(pc, long, short)

Calcule de nuevo el valor absoluto de la variación del precio, también usando una doble ventana deslizante para el doble suavizado:

double_smoothed_abs_pc = double_smooth(abs(pc), long, short)

Finalmente, el cambio de precio después de la suavización dividido por el valor absoluto del cambio de precio después de la suavización, se obtiene el indicador TSI que refleja la fuerza de compra y venta:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

Mediante la configuración de períodos de ventana más largos y más cortos, se puede filtrar el ruido del mercado a corto plazo hasta cierto punto, lo que hace que el TSI refleje mejor la fuerza de compra y venta en las tendencias a medio y largo plazo. Se produce una señal de compra cuando se cruza su media móvil en el TSI y una señal de venta cuando se cruza su media móvil debajo del TSI.

Tres, las ventajas estratégicas.

  1. Utiliza ventanas de doble deslizamiento para filtrar eficazmente el ruido del mercado a corto plazo y hacer que el indicador reaccione con mayor precisión
  2. El cálculo de los cambios en los precios también se realiza con doble fluctuación, lo que hace que el índice TSI sea más estable y confiable.
  3. Utilizando la relación entre el cambio de precio y el valor absoluto del cambio de precio, la estandarización automática, más comparabilidad
  4. La dirección y la intensidad de los movimientos de los precios se consideran de manera integral como indicadores de calidad para la toma de decisiones comerciales
  5. Configuración de diferentes parámetros para ajustar la sensibilidad del indicador según sea necesario

Cuatro, los riesgos estratégicos

  1. El índice TSI puede emitir señales erróneas cuando el mercado se tambalea por mucho tiempo
  2. La configuración incorrecta de los parámetros también puede afectar la calidad del indicador y la señal
  3. A pesar de la doble ventana deslizante, el indicador tiene cierta sensibilidad al ruido del mercado a corto plazo
  4. Cuando la brecha entre ventanas es demasiado larga, los indicadores y las señales pueden retrasarse.

Se puede optimizar ajustando los parámetros de período de la ventana, reduciendo la longitud de la media de la señal de manera adecuada; cuando el mercado se tambalea, se puede suspender temporalmente el comercio para controlar el riesgo.

Cinco, la dirección de la optimización

  1. Prueba diferentes combinaciones de parámetros de tiempo de ventana larga y corta para encontrar el parámetro óptimo
  2. Intentar otros tipos de medias móviles, como las medias móviles linealmente ponderadas.
  3. Aumentar la suavidad de los indicadores y construir ventanas de deslizamiento triple o múltiple
  4. Optimización de la selección de puntos de venta en combinación con otros indicadores auxiliares
  5. Establezca una estrategia de stop loss y controle las pérdidas individuales

VI. Conclusión

Esta estrategia se basa en el cálculo de doble suavizado del índice de movimiento TSI que refleja la fuerza de compra y venta, el ruido de filtro de doble ventana deslizante, los cambios en el cambio de precio también son doblemente suavizados, el indicador es más estable y confiable; adopta un índice estandarizado, tiene comparabilidad; el indicador integra la dirección y la intensidad del cambio de precio, como una señal de alta calidad; la sensibilidad del indicador se puede controlar libremente mediante el ajuste de parámetros. En caso de optimización de parámetros y control del riesgo, es una opción de estrategia de negociación cuantitativa muy práctica.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("True Strength Indicator BTCUSD 2H", shorttitle="TSI BTCUSD 2H",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)

//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe",  defval="120" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)

length = input(title="Период",  defval=300)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"

price = request.security(syminfo.tickerid,resCustom,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)
tsi2=ema(tsi_value, signal)
plot(tsi_value, color=lime,linewidth=2)
plot(tsi2, color=red,linewidth=2)

hline(30, title="Zero")
hline(50, title="Zero",linewidth=2)
hline(70, title="Zero")

buy = crossover(tsi_value, tsi2)
sell = crossunder(tsi_value, tsi2)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

//greentsi =tsi_value
//redtsi = tsi2

//bgcolor( greentsi>redtsi and rsiserie > 50 ? lime : na, transp=90)
//bgcolor( greentsi<redtsi and rsiserie < 50 ? red : na, transp=90)

//yellow1= redtsi > greentsi and rsiserie > 50 
//yellow2 = redtsi < greentsi and rsiserie < 50 
//bgcolor( yellow1 ? yellow : na, transp=80)
//bgcolor( yellow2  ? yellow : na, transp=50)

//bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
//bgcolor( yellow2  and yellow2[2] ? yellow : na, transp=70)

//bgcolor( rsiserie > 70 ? lime : na, transp=60)
//bgcolor( rsiserie < 30  ? red : na, transp=60)