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.
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.
Esta estrategia combina múltiples indicadores para juzgar el estado del mercado, evitando errores por una sola métrica y mejorando la precisión.
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.
La estrategia puede mejorarse en los siguientes aspectos:
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)