Dies ist eine Handelsstrategie, die auf einem doppelten gleitenden Durchschnitts-Crossover basiert. Es erzeugt Kauf- und Verkaufssignale, wenn sich zwei gleitende Durchschnittswerte unterschiedlicher Länge kreuzen.
Die Kernlogik dieser Strategie liegt in den Crossover-Prinzipien zwischen zwei gleitenden Durchschnitten. Ein gleitender Durchschnitt ist der arithmetische Durchschnittspreis über einen bestimmten Zeitraum. Er hilft, Marktlärm zu filtern und deutliche Preistrends aufzudecken.
In dieser Strategie erfasst die kurzfristige MA kurzfristige Trends, während die längerfristige MA langfristige Trends erfasst.
Insbesondere berechnet die Strategie die MA mit ta.sma über die von den Benutzern definierten long_period und short_period. Sie verwendet dann ta.crossover und ta.crossunder, um den goldenen Crossover und den Death Crossover zwischen den beiden MA zu erkennen. Wenn der kurze MA über den langen MA überschreitet, gehen Sie lang. Wenn der kurze MA unterhalb überschreitet, gehen Sie kurz.
Zu den Hauptvorteilen dieser Strategie gehören:
Es gibt auch mehrere Risiken:
Zur Verringerung der Risiken können Parameter angepasst, Stop-Loss und Take-Profit eingeführt oder andere technische Indikatoren hinzugefügt werden.
Es gibt Raum für weitere Optimierungen:
Zusammenfassend ist dies eine ideale Starterstrategie für den algorithmischen Handel, dank seiner Einfachheit in Logik und Parametern, während es immer noch in der Lage ist, Marktumkehrungen effektiv zu erfassen.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true) // User-defined input for moving averages long_period = input(20, title="Long Period") short_period = input(5, title="Short Period") type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"]) // Calculating moving averages long_ma = ta.sma(close, long_period) short_ma = ta.sma(close, short_period) // Plot moving averages plot(long_ma, title="Long Moving Average", color=color.red) plot(short_ma, title="Short Moving Average", color=color.green) // Strategy logic for crossing of moving averages longCondition = ta.crossover(short_ma, long_ma) shortCondition = ta.crossunder(short_ma, long_ma) // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stop_loss_perc = input(1, title="Stop Loss (%)") / 100 take_profit_perc = input(2, title="Take Profit (%)") / 100 strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc)) strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))