Esta estrategia calcula la línea de media móvil rápida ma_fast y la línea de media móvil lenta ma_slow primero, y luego se combina con la línea de media móvil adaptativa FRAMA. Se va largo cuando ma_fast cruza sobre ma_slow, y cierra la posición cuando ma_slow cruza por debajo de ma_fast o FRAMA cae por debajo del precio de cierre.
Calcule la media móvil simple de 13 días ma_fast y la media móvil simple de 26 días ma_slow.
La fórmula FRAMA es compleja, la idea principal es ajustar dinámicamente la suavidad α de la media móvil en función del más alto, el más bajo y la volatilidad de los precios.
Ir largo cuando ma_fast cruza ma_slow. Esto indica que la media móvil a corto plazo comienza a subir y se ejecuta más rápido que la a largo plazo, coincidiendo con las características de tendencia.
Posición cerrada cuando ma_slow cruza por debajo de ma_fast o FRAMA cae por debajo del precio de cierre.
Combina las ventajas del sistema de media móvil dual y el sistema de media móvil adaptativa.
El indicador FRAMA ajusta automáticamente los parámetros, evitando la subjetividad del ajuste manual de parámetros.
El uso de dos señales de salida permite detectar oportunamente las inversiones de tendencia.
Los cruces de media móvil doble pueden tener flecos, lo que resulta en pérdidas intermitentes.
Las medias móviles adaptativas introducen más parámetros, con el riesgo de sobreajuste.
Solo considera los factores de precios sin filtro de volumen de negociación, por lo que puede perder oportunidades.
Probar diferentes períodos de admisión máxima para encontrar la combinación óptima.
Añadir confirmación de volumen para evitar señales falsas, por ejemplo, que requieran picos de volumen.
Optimizar las reglas de entrada y salida para que la estrategia sea más robusta, por ejemplo, tomando solo señales en patrones de continuación.
Esta estrategia combina el doble cruce de promedios móviles y el promedio móvil adaptativo FRAMA, adaptándose automáticamente a las condiciones del mercado ajustando dinámicamente los parámetros.
/*backtest start: 2023-01-14 00:00:00 end: 2024-01-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Fractal Adaptive Moving Average",shorttitle="FRAMA",overlay=true) ma_fast = sma(close,13) ma_slow = sma(close,26) plot(ma_fast,color = green) plot(ma_slow, color = yellow) price = input(hl2) len = input(defval=16,minval=1) FC = input(defval=1,minval=1) SC = input(defval=198,minval=1) len1 = len/2 w = log(2/(SC+1)) H1 = highest(high,len1) L1 = lowest(low,len1) N1 = (H1-L1)/len1 H2 = highest(high,len)[len1] L2 = lowest(low,len)[len1] N2 = (H2-L2)/len1 H3 = highest(high,len) L3 = lowest(low,len) N3 = (H3-L3)/len dimen1 = (log(N1+N2)-log(N3))/log(2) dimen = iff(N1>0 and N2>0 and N3>0,dimen1,nz(dimen1[1])) alpha1 = exp(w*(dimen-1)) oldalpha = alpha1>1?1:(alpha1<0.01?0.01:alpha1) oldN = (2-oldalpha)/oldalpha N = (((SC-FC)*(oldN-1))/(SC-1))+FC alpha_ = 2/(N+1) alpha = alpha_<2/(SC+1)?2/(SC+1):(alpha_>1?1:alpha_) out = (1-alpha)*nz(out[1]) + alpha*price plot(out,title="FRAMA",color=purple,transp=0) entry() => crossover(ma_fast, ma_slow) and (out < close) exit() => crossover(ma_slow, ma_fast) or crossunder(out, close) strategy.entry(id= "MA cross", long = true, when = entry()) strategy.close(id= "MA cross", when = exit())