
La estrategia determina la tendencia y la volatilidad de los precios mediante el cálculo de las medias y diferencias de los diferentes períodos y permite identificar los puntos altos y bajos.
La lógica central de esta estrategia es calcular las medias y diferencias de los diferentes períodos recientes. En concreto, calcular las medias ((ma, mb, mc) y diferencias ((da,db,dc) de los últimos 5 días, 4 y 3 días respectivamente. Luego, comparar las de mayor tamaño y seleccionar el período con la mayor diferencia de diferencias que represente la tendencia actual. Finalmente, utilizar la mediana de los períodos que representan la tendencia multiplicada por el cuadrado de su diferencia de diferencias como la curva de salida final.
De esta manera, cuando el precio se rompe hacia arriba o hacia abajo, el ciclo y la diferencia que representan la tendencia cambian mucho. Esto hace que la salida final de WG también cambie mucho, lo que permite identificar los puntos altos y bajos.
Esta metodología, basada en el análisis de tendencias en diferentes períodos, es eficaz para identificar claramente los puntos de inflexión de los precios. En comparación con el análisis de un solo ciclo, este método de combinación de varios ciclos puede mejorar la precisión y la puntualidad del juicio.
El cálculo de medias y diferencias es muy sencillo y efectivo, no requiere mucho código, y es muy sensible a los cambios bruscos en los precios, lo que permite detectar rápidamente las rupturas.
La estrategia utiliza periodos más cortos, y puede no ser lo suficientemente precisa y completa para las líneas medianas y largas. Las fluctuaciones de precios en el corto plazo pueden conducir a errores de juicio.
Además, la configuración de los pesos de la mediana y la diferencia cuadrada también puede afectar el efecto del juicio, y si el peso es incorrecto, la señal puede ser errónea.
Se puede intentar agregar más cálculos de diferentes períodos para formar un conjunto de períodos, lo que hace que el juicio sea más completo. Por ejemplo, agregar un juicio de períodos medianos y largos como 10 días, 20 días.
También se puede probar diferentes opciones de configuración de pesas, lo que aumenta la flexibilidad de la configuración de pesas. Se añade la optimización de los parámetros, lo que permite que los pesos se ajusten automáticamente según el entorno del mercado, lo que reduce la probabilidad de error.
Además, se puede combinar con otros indicadores, como la anormalidad del volumen de transacciones, para evitar el arbitraje.
La estrategia general es clara y fácil de entender, utiliza la mediana y la diferencia para determinar la tendencia y la volatilidad de los precios, y luego la salida de la combinación permite identificar claramente la curva de los puntos altos y bajos. Este método basado en el juicio de la combinación de múltiples períodos, puede obtener de manera efectiva las características a largo plazo del mercado y mejorar la precisión de los puntos de inflexión. El espacio de optimización también es amplio y se puede ajustar en varios aspectos, como el peso del ciclo y los indicadores, para que la estrategia sea más estable y completa.
/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 12h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("x²", overlay=false)
a1=(close[2]-close[3])/1
a2=(close[1]-close[3])/4
a3=(close[0]-close[3])/9
b1=(close[3]-close[4])/1
b2=(close[2]-close[4])/4
b3=(close[1]-close[4])/9
b4=(close[0]-close[4])/16
c1=(close[4]-close[5])/1
c2=(close[3]-close[5])/4
c3=(close[2]-close[5])/9
c4=(close[1]-close[5])/16
c5=(close[0]-close[5])/25
ma=(a1+a2+a3)/3
da=(a1-ma)*(a1-ma)
da:=da+(a2-ma)*(a2-ma)
da:=da+(a3-ma)*(a3-ma)
da:=sqrt(da)
da:=min(2, da)
da:=1-da/2
da:=max(0.001, da)
mb=(b1+b2+b3+b4)/4
db=(b1-mb)*(b1-mb)
db:=db+(b2-mb)*(b2-mb)
db:=db+(b3-mb)*(b3-mb)
db:=db+(b4-mb)*(b4-mb)
db:=sqrt(db)
db:=min(2, db)
db:=1-db/2
db:=max(0.001, db)
mc=(c1+c2+c3+c4+c5)/5
dc=(c1-mc)*(c1-mc)
dc:=dc+(c2-mc)*(c2-mc)
dc:=dc+(c3-mc)*(c3-mc)
dc:=dc+(c4-mc)*(c4-mc)
dc:=dc+(c5-mc)*(c5-mc)
dc:=sqrt(dc)
dc:=min(2, dc)
dc:=1-dc/2
dc:=max(0.001, dc)
g=close
if(da>db and da>dc)
g:=da*da*ma
else
if(db > da and db > dc)
g:=db*db*mb
else
g:=dc*dc*mc
wg=wma(g, 2)
plot(wg)
plot(0, color=black)
longCondition = true //crossover(sma(close, 14), sma(close, 28))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = true //crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)