Estrategia de oscilación aleatoria

El autor:¿ Qué pasa?, Fecha: 2023-11-06 09:30:27
Las etiquetas:

img

Resumen general

La estrategia de oscilación aleatoria integra múltiples indicadores técnicos, incluidos Ichimoku Kinko Hyo, MACD y Hull Moving Average, para formar un sistema sistemático de decisión comercial.

Estrategia lógica

En primer lugar, se adoptan el Tenkan-sen y el Kijun-sen de Ichimoku Kinko Hyo. El Tenkan-Sen se calcula como la media del más alto y el más bajo de los últimos 9 períodos.

En segundo lugar, el indicador MACD se incorpora como un importante indicador de impulso de tendencia. Muestra la relación entre dos EMA de precios. Los cruces del MACD y su línea de señal generan señales comerciales.

En tercer lugar, el promedio móvil de Hull se introduce para mejorar la cuestión de retraso de las medias móviles y aumentar la sensibilidad de la captura de inversiones de precios.

Por último, la estrategia combina todos los indicadores anteriores para formar un sistema de negociación robusto.

Ventajas

  • La diversificación a través de múltiples indicadores reduce el fallo de un solo punto.

  • La integración proporciona un poder de decisión más fuerte a través de un modelo holístico.

  • Disminución de las señales falsas, ya que cada señal es verificada por otras.

  • Mejora de la eficiencia actuando sólo en señales de alta convicción.

  • Parámetros personalizables para adaptar la estrategia a los mercados cambiantes.

  • Reducción del retraso y respuesta más rápida del Hull Moving Average.

Los riesgos

  • Un mayor riesgo en los mercados de rango, agitados con un aumento de señales falsas.

  • Ineficaz si los parámetros del indicador no están adecuadamente optimizados.

  • Potencialmente pierde movimientos de tendencia al centrarse en las reversiones.

  • Hull MA es relativamente nuevo y no probado a largo plazo.

  • El comercio infrecuente podría perder algunas oportunidades.

Mejoramiento

  • Agregar más indicadores como las bandas de Bollinger podría optimizar aún más el sistema.

  • Ajuste de parámetros para encontrar la combinación óptima para diferentes activos y plazos.

  • Introduzca paradas dinámicas para controlar la pérdida de una sola operación.

  • Incorporar filtros de tendencia para evitar perder los paseos de tendencia.

  • Optimizar el tamaño de las posiciones ajustando la frecuencia y el tamaño en función de las condiciones del mercado.

Conclusión

La estrategia de oscilación aleatoria combina múltiples técnicas de análisis técnico para capturar oportunidades en mercados de rango. Ofrece las ventajas de la integración de indicadores, reduce las señales falsas y mejora la eficiencia. Pero también conlleva riesgos inherentes que requieren una mayor optimización y adaptación.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Ichimoku Kinko Hyo + HULL-MA_X + MacD", shorttitle="@m", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)

keh=input(title="Double HullMA",defval=12, minval=1)

n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green

TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
LS=close, offset = -displacement

MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(24)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength)
aMACD = ema(MACD, MACD_Length)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
p1=plot (SenkouSpanA, offset = displacement, color=green,  title="Senkou Span A", linewidth = 2)
p2=plot (SenkouSpanB, offset = displacement, color=red,  title="Senkou Span B", linewidth = 3)
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

closelong = n1<n2 and close<n2 and (MACD<aMACD or TenkanSen<KijunSen or close<KijunSen)
if (closelong)
    strategy.close("Long")

closeshort = n1>n2 and close>n2 and (MACD>aMACD or TenkanSen>KijunSen or close>KijunSen)
if (closeshort)
    strategy.close("Short")

longCondition = n1>n2 and close>n2 and MACD>aMACD and (TenkanSen>KijunSen or close>KijunSen) 
if (longCondition)
    strategy.entry("Long",strategy.long)

shortCondition = n1<n2 and close<n2 and MACD<aMACD and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
    strategy.entry("Short",strategy.short)

Más.