
Esta es una estrategia de comercio cuantitativa que solo hace múltiples cabezas, que combina las ventajas de la estrategia de inversión de puntos centrales y la estrategia de mínimos de dos veces el promedio móvil. La estrategia entra en juego siguiendo la tendencia principal en un mercado alcista, y hace más señales de reversión después de observar la formación de trayectorias en los puntos centrales; al mismo tiempo, requiere que el precio de cierre sea superior al mínimo de dos veces el promedio móvil para abrir más posiciones, lo que hace que la estrategia sea más estable.
La estrategia combina la estrategia de inversión de puntos centrales y la estrategia de mínimos de doble movimiento. La estrategia de inversión de puntos centrales calcula los precios más altos y más bajos de los últimos días de negociación, obteniendo subidas y bajadas.
Concretamente, la estrategia calcula primero los precios más altos de las últimas 3 líneas K y los precios más bajos de las últimas 16 líneas K, obteniendo el punto de eje de la subida y bajada. Al formarse la subida, abre más posiciones; al formarse la bajada, baja las posiciones. Al mismo tiempo, requiere que el precio de cierre sea superior a la media móvil mínima multiplicada por dos de los últimos 20 días.
La combinación de las ventajas de las dos estrategias para una toma de decisiones más estable y confiable
La estrategia de puntos centrales permite determinar el punto de inflexión, minimizar las brechas falsas de filtración de promedios móviles por doble mínimo y reducir el riesgo de transacción
La mayoría de las personas tienen expectativas psicológicas de que el trabajo sea más complejo.
Las estrategias son simples, claras, fáciles de entender y optimizar
Frecuencia de transacción moderada, adecuada para operaciones de línea media larga
No aprovechar la oportunidad de una rápida caída del mercado
Hay un cierto retraso y se puede perder parte de la oportunidad de ganar dinero
El cambio en el toro y el oso produce mayores pérdidas
La solución:
Reducir adecuadamente el ciclo de cálculo y reducir los retrasos
Ajustar los parámetros de las medias móviles para optimizar la participación
Aumentar las estrategias de detener las pérdidas y reducir las pérdidas individuales
Incorporación de un conjunto de indicadores de tendencias para mejorar la precisión de los juicios
Aumentar las predicciones de los modelos de aprendizaje automático para guiar la toma de decisiones
Indicadores de volatilidad para controlar el tamaño de las posiciones
Optimización de los parámetros para mejorar la estrategia
Prueba de datos de ciclo más largo para verificar la estabilidad
Esta estrategia integra las ventajas de la estrategia de inversiones de puntos centrales y la estrategia de mínimos de dos veces el promedio móvil, mientras que el control de riesgo en el juicio de la tendencia de inversión, es una estrategia de tipo robusto. Es una estrategia de estructura simple, fácil de entender y probar, muy adecuado para el aprendizaje y la práctica de los principiantes de comercio cuantitativo.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author exlux99
strategy(title = "Pivot Reversal Upgraded long only", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)
/////////////
//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//
length = input(title="Length MA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, length, offset)
//LSMA
leftBars = input(3)
rightBars = input(16)
swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)
swh_cond = not na(swh)
hprice = 0.0
hprice := swh_cond ? swh : hprice[1]
le = false
le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1])
//leverage
multiplier=input(1.0, step=0.5)
g(v, p) => round(v * (pow(10, p))) / pow(10, p)
risk = input(100)
leverage = input(1.0, step = 0.5)
c = g((strategy.equity * leverage / open) * (risk / 100), 4)
//entry
strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier)
swl_cond = not na(swl)
lprice = 0.0
lprice := swl_cond ? swl : lprice[1]
se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])
strategy.close("long", when=se)