Estrategia de negociación de Sakkoulas para cruce de medias móviles de impulso


Fecha de creación: 2024-02-21 15:14:19 Última modificación: 2024-02-21 15:14:19
Copiar: 0 Número de Visitas: 553
1
Seguir
1617
Seguidores

Estrategia de negociación de Sakkoulas para cruce de medias móviles de impulso

Descripción general

Esta estrategia de negociación combina varios indicadores técnicos, como el cruce de medias móviles (MACD), el indicador de fuerza relativa (RSI), el promedio móvil simple (SMA), el indicador aleatorio (Stochastic) y las bandas de Bollinger (Bollinger Bands), para identificar los puntos de entrada y salida del mercado. Haga más cuando el indicador muestre una señal de cabeza múltiple; Haga vacío cuando muestre una señal de cabeza vacía.

Principio de estrategia

Hacer más cuando la línea DIF del MACD atraviesa la línea DEA y entra en un estado múltiple; o cuando el RSI está por debajo de 30 y entra en un estado de sobreventa; o cuando la línea% K y la línea% D del indicador aleatorio están por debajo de 20 y entran en un estado de sobreventa.

Por el contrario, cuando la línea DIF del MACD cruza la línea DEA y entra en un estado de vacío; o cuando el RSI es superior a 70 y entra en un estado de sobreventa; o cuando la línea% K y la línea% D del indicador aleatorio son superiores a 80 y entran en un estado de sobreventa.

El stop loss se establece por un factor multiplicado por el indicador ATR, y el stop loss por la relación de retorno al riesgo.

Análisis de las ventajas

La estrategia combina varios indicadores para determinar el estado del mercado, evita la probabilidad de error en un solo indicador, mejora la precisión de la toma de decisiones. Al mismo tiempo, los paros y paradas se establecen de manera razonable y efectiva para controlar el riesgo de una sola operación.

Análisis de riesgos

Los indicadores técnicos se calculan a partir de datos históricos, no pueden predecir los precios futuros, y hay un cierto retraso. El uso de una combinación de indicadores múltiples también puede generar una cierta señal falsa. Además, la configuración incorrecta del punto de parada también puede generar mayores pérdidas.

Para los problemas de retraso en los indicadores técnicos, se pueden ajustar los parámetros adecuadamente y reducir el ciclo de cálculo. Para las señales falsas, se pueden agregar otros indicadores auxiliares de juicio para la confirmación. Además, el punto de parada debe configurarse de manera más flexible y razonable.

Dirección de optimización

La estrategia puede ser optimizada en los siguientes aspectos:

  1. Aumentar los indicadores de modelos estadísticos, combinados con tendencias y correlaciones en el juicio de adquisición;
  2. Aumentar la fiabilidad de las señales de indicadores mediante modelos de aprendizaje automático.
  3. Optimizar la gestión de los fondos para que el Stop Loss sea más automático e inteligente.

Resumir

Esta estrategia, combinada con varios indicadores técnicos, puede mejorar la precisión de la toma de decisiones, y es una estrategia de seguimiento de tendencias fiable mediante el control de riesgos de stop loss. A continuación, se espera que el rendimiento de la estrategia se mejore aún más mediante la introducción de métodos como estadística y aprendizaje automático.

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

//@version=5
strategy("Enhanced Moving Average Crossover sakkoulas with ATR and SAR", overlay=true)

// Παράμετροι MACD
fastLength = input.int(16, title="Fast Length")
slowLength = input.int(6, title="Slow Length")
signalSmoothing = input.int(5, title="Signal Smoothing")

// Παράμετροι RSI
rsiLength = input.int(6, title="RSI Length")
upperBound = input.int(70, title="Upper Bound")
lowerBound = input.int(30, title="Lower Bound")

// Παράμετροι SMA
smaPeriod = input.int(10, title="SMA Period")

// Παράμετροι Stochastic
stoLength = input.int(5, title="Stochastic Length")
stoSmoothK = input.int(3, title="Stochastic %K Smoothing")
stoSmoothD = input.int(10, title="Stochastic %D Smoothing")

// Παράμετροι Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(1, title="Bollinger Bands StdDev")

// Παράμετροι ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")

// Παράμετροι Parabolic SAR
sarAcceleration = input.float(0.02, title="SAR Acceleration")
sarMaximum = input.float(0.2, title="SAR Maximum")

// Διαχείριση κινδύνου
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")

// Υπολογισμοί δεικτών
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
atr = ta.atr(atrLength)

// Παράμετροι και κλήση του Parabolic SAR
sar = ta.sar(sarAcceleration, sarMaximum, 15) // Διορθωμένη κ
// Υπολογισμός Stop Loss με βάση το ATR
longStopLoss = close - atrMultiplier * atr 
shortStopLoss = close + atrMultiplier * atr

// Συνθήκες για είσοδο και έξοδο
longCondition = ta.crossover(macdLine, signalLine) and close > sar
shortCondition = ta.crossunder(macdLine, signalLine) and close < sar

// Εκτέλεση εντολών συναλλαγής με διαχείριση κινδύνου
if (longCondition)
    strategy.entry("Long Position", strategy.long)
    strategy.exit("Exit Long", "Long Position", stop=longStopLoss)
    
if (shortCondition)
    strategy.entry("Short Position", strategy.short)
    strategy.exit("Exit Short", "Short Position", stop=shortStopLoss)

// Συνθήκες για είσοδο και έξοδο
 
// Εμφάνιση βελών για σημεία εισόδου
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Short Entry")


// Εμφάνιση δεικτών
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(sma, color=color.orange, title="SMA")
plot(series=sar, color=color.fuchsia, style=plot.style_circles, title="Parabolic SAR")
hline(upperBound, "Upper Bound", color=color.red)
hline(lowerBound, "Lower Bound", color=color.green)