Estrategia de negociación mejorada de Sakkoulas para la media móvil cruzada

El autor:¿ Qué pasa?, Fecha: 2024-02-21 15:14:19
Las etiquetas:

img

Resumen general

Esta estrategia de negociación combina la divergencia de convergencia promedio móvil (MACD), el índice de fuerza relativa (RSI), la media móvil simple (SMA), el oscilador estocástico y las bandas de Bollinger para identificar los puntos de entrada y salida del mercado.

Estrategia lógica

Se hace largo cuando la línea MACD DIF cruza por encima de la línea DEA en la zona alcista; o cuando el RSI cae por debajo de 30 en el territorio de sobreventa; o cuando las líneas estocásticas %K y %D caen por debajo de 20 mostrando un estado de sobreventa.

Por el contrario, se queda corto cuando la línea MACD DIF cruza por debajo de la línea DEA hacia la zona bajista; o cuando el RSI se eleva por encima de 70 en el área de sobrecompra; o cuando las líneas estocásticas %K y %D suben por encima de 80 indicando una condición de sobrecompra.

El stop loss se establece en función del ATR multiplicado por un coeficiente.

Análisis de ventajas

Esta estrategia combina múltiples indicadores para juzgar el estado del mercado, evitando errores por una sola métrica y mejorando la precisión.

Análisis de riesgos

Los indicadores técnicos se calculan a partir de datos históricos y no pueden predecir los precios futuros, lo que conduce a ciertos retrasos. La combinación de múltiples indicadores también puede introducir algunas señales falsas. Además, la configuración incorrecta de stop loss puede resultar en pérdidas más grandes.

Para abordar el problema del retraso del indicador, los parámetros se pueden ajustar para acortar el ciclo de computación. Para señales falsas, se pueden agregar indicadores auxiliares adicionales para la confirmación. Además, el stop loss debe establecerse de manera más amplia y más razonable.

Direcciones de optimización

La estrategia puede mejorarse en los siguientes aspectos:

  1. Incorporar indicadores de modelos estadísticos basados en el análisis de tendencias y correlación para la entrada;
  2. Añadir un modelo de aprendizaje automático para juzgar la fiabilidad de las señales de indicadores;
  3. Optimizar la gestión del dinero para un stop loss más automatizado e inteligente y obtener ganancias.

Resumen de las actividades

Esta estrategia combina múltiples indicadores técnicos para una mayor precisión y controla el riesgo mediante el stop loss y el take profit, por lo que es un sistema de seguimiento de tendencias confiable.


/*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)

Más.