Diese Strategie verwendet die Überquerung von zwei gleitenden Durchschnitten mit unterschiedlichen Perioden, um Handelssignale zu generieren.
Die Strategie verwendet einen 9-Perioden-Kurzzeit-MA (SMA) und einen 50-Perioden-Langzeit-MA (LMA). Wenn der SMA über den LMA überschreitet, wird ein Kaufsignal generiert. Wenn der SMA unter den LMA überschreitet, wird ein Verkaufssignal generiert.
Die Strategie beinhaltet auch den RSI-Indikator, um die Stärke des Trends zu messen. Handelssignale werden nur generiert, wenn der RSI über einem Schwellenwert liegt (Standard 55). Dies vermeidet falsche Signale, wenn der RSI in Überkaufzonen liegt.
Die Strategie handelt jedes Mal mit 30% des Gesamtkapitals, wobei jeweils nur eine Position geöffnet ist.
Die Risiken können durch Parameteroptimierung, Verwendung anderer Indikatoren, strenges Kapitalmanagement und Stop-Loss reduziert werden.
Die Strategie erfasst Trendchancen mit einem einfachen MA-Crossover-System. Standardparameter werden mit stetigen Renditen optimiert, geeignet für den algorithmischen Handel. Weitere Verbesserungen können durch Hinzufügen anderer Indikatoren, Optimierung von Parametern und Implementierung von Stop Loss erzielt werden. Insgesamt ist es eine effektive Trend-Folge-Strategie für Trendmärkte mit Crossover-Signalen.
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © relevantLeader16058 //@version=4 strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" //MA inputs and calculations inlong=input(50, title='MA long period') inshort=input(9, title='MA short period') MAlong = sma(close, inlong) MAshort= sma(close, inshort) // RSI inputs and calculations lengthRSI = (14) RSI = rsi(close, lengthRSI) RSI_Signal = input(55, title = 'RSI Trigger', minval=1) //Entry and Exit bullish = crossover(MAshort, MAlong) bearish = crossunder(MAshort, MAlong) strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window()) strategy.close(id="long", when = bearish and window()) plot(MAshort, color=color.purple, linewidth=2) plot(MAlong, color=color.red, linewidth=2)