Estrategia de inversión en acciones basada en medias móviles duales y volatilidad


Fecha de creación: 2023-12-20 14:54:41 Última modificación: 2023-12-20 14:54:41
Copiar: 0 Número de Visitas: 661
1
Seguir
1621
Seguidores

Estrategia de inversión en acciones basada en medias móviles duales y volatilidad

Descripción general

Esta estrategia se basa en dos indicadores de mediana y de fuerza relativa, combinados con la volatilidad histórica de las acciones, para permitir la compra y venta automática de acciones. La ventaja de la estrategia es que se combina la línea larga y la línea corta, lo que permite controlar el riesgo de manera efectiva.

Principio de estrategia

La estrategia utiliza un sistema de doble línea de equilibrio compuesto por una media linea de 150 semanas y una media rápida de 50 días, y una media más rápida de 20 días. Cuando el precio cruza la línea de 150 semanas, se considera que el mercado comienza a subir, y cuando el precio cruza la línea de 50 días, se considera que el mercado comienza a bajar.

Además, la estrategia utiliza el precio máximo de la volatilidad anual y el indicador de la fuerza relativa para determinar el momento de compra específico. La señal de compra se emite solo cuando el precio de cierre supera el precio máximo calculado por la volatilidad anual y el indicador de la fuerza relativa es positivo.

Ventajas estratégicas

  1. El uso de un sistema de doble línea para determinar los cambios en las principales tendencias y lograr el seguimiento de las caídas
  2. La inclusión de indicadores de fluctuación y de intensidad evita el fluctuación de ondas en situaciones de crisis
  3. La inclusión de la línea media rápida de 20 días puede detener los pérdidos más rápido

Riesgo estratégico

  1. Hay un cierto retraso y no se puede detener rápidamente.
  2. No hay un límite de pérdidas, por lo que es más probable que se produzcan grandes pérdidas
  3. Falta de optimización de parámetros, configuración de los parámetros es más subjetiva

Para resolver el riesgo, se puede establecer un nivel de stop loss, o usar el múltiplo del indicador ATR como amplitud de stop loss. Además, los parámetros se pueden optimizar con una retroalimentación más rigurosa.

Dirección de optimización de la estrategia

  1. Aumentar el mecanismo de suspensión de pérdidas
  2. Encuentra los parámetros óptimos usando la optimización de parámetros
    1. Considere la inclusión de otros indicadores para filtrar la señal, por ejemplo, el indicador de volumen de negocios.
  3. Se puede considerar la creación de un modelo multifactorial de la estrategia, que incluya más indicadores

Resumir

En general, esta estrategia es una estrategia de inversión en acciones más conservadora. Se utiliza una línea de doble par para determinar las tendencias principales y, en combinación con la volatilidad y la intensidad de los indicadores de entrada, se puede filtrar eficazmente las rupturas fraudulentas. La adición de una línea de par rápida también hace que el stop loss sea más rápido.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap",  title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)

//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)

fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)

fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)

monitorStrategy = close < close[20]


// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA  and volume> 1.5* vol1 
selltradecondition1  = close< 0.95 * fastEMA 
selltradecondition2  = close< 0.90 * open

if (buytradecondition1)
    strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
    alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
    
if (buytradecondition2)
    strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
    alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
    
if (selltradecondition1)
    strategy.close("long",alert_message ="Seems ready to Sell")
    alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
    
if (selltradecondition2)
    strategy.close("long",alert_message ="Seems ready to Sell")
    alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price  ",alert.freq_all)

//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")

plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)