
Descripción general
La estrategia se basa en el punto de tiempo al final del mes, para determinar si el precio de las acciones ha roto la media móvil de 200 días, para capturar la dirección de la tendencia del precio de las acciones.
Principio de estrategia
- Utilizando el promedio móvil simple de 200 días dma200 como indicador para juzgar la tendencia de los precios
- En el último día de negociación de cada mes, determinar si el cierre del día es superior a dma200
- Si el precio de cierre supera la línea media de 200 días, se establece una posición de más de la posición completa en la apertura del día de negociación siguiente
- Si el precio de cierre cae por debajo de la línea media de 200 días, se abre la liquidación en el siguiente día de negociación
- De esta forma se puede lograr el efecto de seguimiento de tendencias, y se puede hacer una posición cuando el precio de las acciones entra en una tendencia alcista para evitar una tendencia bajista.
Análisis de las ventajas
- La ventaja de las estrategias es que son simples, efectivas, fáciles de entender e implementar.
- El uso de puntos en el fin de mes puede reducir la frecuencia de las transacciones, los costos de las transacciones y el impacto de los puntos de deslizamiento
- La línea de la media de 200 días es un indicador de tendencias de mediano y largo plazo muy utilizado y es válido para la mayoría de las acciones
- El retiro estratégico y la caída máxima son menores y el riesgo es controlado
Análisis de riesgos
- La línea de la media diaria de 200 días puede no ser lo suficientemente sensible para algunas acciones como para capturar el cambio de precio a tiempo
- El mercado de valores de la Bolsa de Nueva York (NYSE: BNY) se ha visto afectado por la crisis financiera de la última semana, que ha provocado una caída de los precios.
- La estrategia puede no ser correcta cuando la tendencia general de la bolsa es incierta.
- Los riesgos deben ser reducidos mediante la combinación de otros indicadores.
Dirección de optimización
- Se puede considerar la posibilidad de aumentar los puntos de venta a principios o mediados de mes para aumentar la frecuencia de las estrategias
- Aumentar los indicadores como las bandas de Brin para juzgar las fluctuaciones de los precios y evitar errores en las operaciones
- Evaluar el efecto de la combinación de diferentes parámetros de la línea media para diferentes acciones, buscando la combinación óptima de parámetros
- Se puede establecer un mecanismo de gestión de posiciones dinámicas, que detiene los pérdidas activamente cuando se retira demasiado
Resumir
La estrategia en general es más sencilla y práctica, y capta de manera efectiva las tendencias de precios a medio y largo plazo de las acciones a través de la ruptura de la línea media de 200 días a finales de mes, con menos retrocesiones y riesgos. Al combinar más criterios de indicadores y optimización dinámica, se puede aumentar aún más la estabilidad de la estrategia y la rentabilidad.
Código Fuente de la Estrategia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © muscleriot
//200 dma
//2000-2016 backtested
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of equity always
dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)
to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)
time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and
time < timestamp(to_year, to_month, to_day, 23, 59)
xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)
plotchar(xSell, "Sell","S", color=color.red)
if (xLong == true) and time_cond
strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
strategy.close("long")