Indicador de la ETI de ventanas de doble movimiento de impulso

El autor:¿ Qué pasa?, Fecha: 2024-01-08 11:20:35
Las etiquetas:

img

I. Resumen de la estrategia

Esta estrategia se llamaEstrategia de indicadores de la ETI de ventana móvil doble de impulsoLa idea central de esta estrategia consiste en utilizar dos ventanas móviles de la EMA para suavizar las fluctuaciones de precios y, a continuación, combinar los cambios direccionales de la tendencia para construir un indicador de impulso que refleje el poder de compra y venta en el mercado, a saber, el indicador TSI, y utilizarlo como señal de negociación para tomar decisiones de compra y venta.

II. Principio de la estrategia

Esta estrategia utiliza dos ventanas móviles exponenciales para calcular los cambios de precios. El período de ventana exterior es más largo y el período de ventana interior es más corto.

Primero calcule el cambio unitario en el precio:

pc = change(price)

Luego use dos ventanas correderas para suavizar el doble de los cambios de precios:

double_smoothed_pc = double_smooth(pc, long, short)

Luego, calcule el valor absoluto de la variación de precios, que también se suaviza dos veces mediante dos ventanas deslizantes:

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

Por último, utilizar la variación de precios suavizada dividida por la variación de precios absolutos suavizados para obtener el indicador de la ETI que refleja el poder de compra y venta:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

Mediante el establecimiento de períodos de ventanas largos y cortos de duración diferente, el ruido del mercado a corto plazo puede filtrarse hasta cierto punto, de modo que el indicador de la ETI pueda reflejar mejor el poder de compra y venta en las tendencias a medio y largo plazo.

III. Ventajas estratégicas

  1. El uso de ventanas corredizas dobles filtra eficazmente el ruido del mercado a corto plazo para reacciones de indicadores más precisas
  2. La variación de los precios también se suaviza en doble medida, lo que hace que el indicador de la ETI sea más estable y fiable
  3. Se utiliza la relación entre el cambio de precio y el cambio de precio absoluto, que se normaliza automáticamente y es más comparable.
  4. Considerar de forma exhaustiva la dirección y la magnitud de los cambios de precios como indicador de calidad para las decisiones comerciales
  5. El ajuste de diferentes parámetros permite un ajuste flexible de la sensibilidad del indicador

IV. Riesgos estratégicos

  1. El indicador de la ETI puede dar señales erróneas cuando el mercado sufre fluctuaciones a largo plazo
  2. La configuración incorrecta de los parámetros también puede afectar a la calidad de los indicadores y señales
  3. Aunque hay dos ventanas móviles, el indicador sigue siendo sensible al ruido del mercado a corto plazo
  4. Cuando la diferencia entre los períodos de ventana larga y corta es demasiado grande, los indicadores y señales pueden retrasarse

Se puede optimizar ajustando los parámetros del período de ventana y acortando adecuadamente la longitud media móvil de la señal.

V. Direcciones de optimización

  1. Combinaciones de ensayos de diferentes parámetros de período de ventana larga y corta para encontrar parámetros óptimos
  2. Pruebe otros tipos de promedios móviles, tales como promedio móvil lineal ponderado
  3. Aumentar la suavidad de los indicadores mediante la construcción de ventanas deslizantes triples o múltiples
  4. Combinar otros indicadores auxiliares para optimizar la selección de puntos de compra/venta
  5. Establecer estrategias de stop loss para controlar estrictamente las pérdidas individuales

VI. Resumen

Esta estrategia calcula el indicador de impulso TSI que refleja el poder de compra y venta basado en la doble suavización de los cambios de precios. Las ventanas de doble deslizamiento filtran el ruido. La doble suavización de las variaciones de los precios también hace que el indicador sea más estable y confiable. La relación estandarizada lo hace comparable. El indicador combina la dirección y la magnitud de los cambios de precios como una fuente de señal de alta calidad. A través del ajuste de parámetros, la sensibilidad del indicador se puede controlar libremente. Con la optimización de parámetros y el control de riesgos, es una opción de estrategia comercial cuantitativa muy práctica.


/*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)

Más.