Estrategia de optimización de compra a bajo precio: MA200


Fecha de creación: 2024-01-08 16:54:21 Última modificación: 2024-01-08 16:54:21
Copiar: 0 Número de Visitas: 695
1
Seguir
1617
Seguidores

Estrategia de optimización de compra a bajo precio: MA200

Descripción general

La estrategia combina el método de negociación inversa (comprar los puntos bajos) con la lógica de seguimiento de tendencias (sólo cuando el precio está por encima de la MA200). La estrategia busca encontrar el mejor momento para comprar los puntos bajos de los activos y obtener ganancias. Los precios por encima de la media móvil a largo plazo indican una mayor probabilidad de obtener ganancias de la compra de activos con precios débiles a corto plazo.

Principio de estrategia

La estrategia calcula el porcentaje de cambio general en el precio durante el período de referencia para determinar si el precio está en un punto bajo relativo. Cuando el porcentaje de cambio general es inferior al 3%, se considera que el precio está en un punto bajo. Además, la estrategia también establece una media móvil simple de 200 días como indicador para juzgar la tendencia.

Análisis de las ventajas

Esta estrategia combina las ventajas de las operaciones de tendencia y de inversión. Por un lado, se utiliza una media móvil a largo plazo para determinar la tendencia y evitar la compra ciega durante la caída de la tendencia. Por otro lado, la compra inversa de puntos bajos también le permite obtener una mejor oportunidad de entrada en el momento de ajuste a corto plazo. La combinación de ambos, garantiza la seguridad de la operación y aumenta la probabilidad de obtener ganancias.

Análisis de riesgos

El mayor riesgo de esta estrategia es que los precios pueden seguir bajando después de que se emita la señal de compra, lo que genera pérdidas. Además, si el mercado se mantiene horizontal durante mucho tiempo y los precios no pueden romper las medias móviles, la estrategia también puede fallar. Para reducir estos riesgos, se puede acortar adecuadamente el ciclo de las medias móviles y optimizar las condiciones de compra para garantizar un margen de seguridad suficiente.

Dirección de optimización

La estrategia se puede optimizar en los siguientes aspectos: 1) optimizar el ciclo de las medias móviles para adaptarse a los diferentes mercados; 2) optimizar las condiciones de compra para garantizar que haya suficiente margen; 3) aumentar las estrategias de stop loss para controlar las pérdidas; 4) mejorar la precisión de las tendencias y los puntos bajos en combinación con otros indicadores.

Resumir

La estrategia en su conjunto es una estrategia típica que combina el seguimiento de tendencias y la idea de negociación inversa. Garantiza la seguridad de las operaciones y aumenta la probabilidad de obtener ganancias. Tiene un gran valor de batalla.

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

//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)

//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)

//Percent change
inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA) 
strategy.close(id="long", when = window() and overall>1)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90) 
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)