In diesem Artikel wird eine quantitative Handelsstrategie detailliert erläutert, die sowohl Mittelumkehr- als auch Trendfolgetechniken kombiniert.
I. Strategische Logik
Die Strategie verwendet hauptsächlich den einfachen gleitenden Durchschnitt und den RSI-Indikator, um Handelssignale zu generieren:
Wenn der Preis unter der 200-Perioden-SMA liegt, wird der aktuelle Markt als Abwärtstrend beurteilt.
Wenn der RSI unter 20 liegt, werden Gegentrend-Reversionsgeschäfte durchgeführt.
Wenn der Preis über der 200-Perioden-SMA liegt, beurteilt er den aktuellen Markt als Aufwärtstrend.
Wenn der Preis über der SMA steigt, müssen Trends gefolgt werden.
Ausgänge werden ausgelöst, wenn der RSI 80 übersteigt oder der Preis um einen bestimmten Prozentsatz unter den SMA fällt.
Die Positionsdimensionierung für die mittlere Umkehrung und den Trend kann separat angepasst werden.
Die Strategie kombiniert mittlere Umkehr- und Trendfolgetechniken und wendet sie in verschiedenen Marktstadien an.
II. Vorteile der Strategie
Die wichtigsten Vorteile sind:
Die Kombination zweier Techniken verbessert die Anpassungsfähigkeit der Strategie.
Es kann Handelsmöglichkeiten in Trend- und Schwellenmärkten finden.
Die Risiken können durch Anpassung der Positionsgröße kontrolliert werden.
Einfache Parameter-Einstellungen erleichtern die Implementierung.
III. Potenzielle Risiken
Die Risiken sind jedoch:
Indikatoren wie SMA und RSI sind anfällig für falsche Ausbrüche.
Der Wechsel zwischen zwei Moden kann verzögert sein.
Für langfristige Gewinne müssen gewisse Abzüge ertragen werden.
IV. Zusammenfassung
Zusammenfassend wird in diesem Artikel eine quantitative Strategie erklärt, die mittlere Umkehrung und Trendfolgetechniken verwendet. Es kann in verschiedenen Marktstadien gehandelt werden, um die Anpassungsfähigkeit zu verbessern.
/*backtest start: 2022-09-07 00:00:00 end: 2023-04-05 00:00:00 period: 1d basePeriod: 1h 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/ // © I11L //@version=5 strategy("Mean Reversion and Trendfollowing", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false) // Input for the starting date start_date = input(timestamp("1 Feb 2000 12:00"), title="Starting Date") enableMeanReversion = input.bool(true) enableTrendfollowing = input.bool(true) trendPositionFactor = input.float(1) meanReversionPositionFactor = input.float(0.5) // Convert the input string to a timestamp start_ts = timestamp(year(start_date), month(start_date), dayofmonth(start_date), 0, 0) // Check if the current bar's time is greater than or equal to the start timestamp start_condition = time >= start_ts var tradeOrigin = "" sma200 = ta.sma(close,200) rsi2 = ta.rsi(close,2) isMeanReversionMode = close < sma200 or not(enableTrendfollowing) isTrendfollowingMode = close > sma200 or not(enableMeanReversion) isRsiBuy = rsi2 < 20 and enableMeanReversion isRsiClose = rsi2 > 80 and enableMeanReversion isSmaBuy = close > sma200 and enableTrendfollowing isSmaClose = close < sma200 * 0.95 and enableTrendfollowing isBuy = (isMeanReversionMode and isRsiBuy) or (isTrendfollowingMode and isSmaBuy) positionSizeFactor = isSmaBuy ? trendPositionFactor : meanReversionPositionFactor // Only execute the strategy after the starting date if (start_condition) if (isBuy and strategy.opentrades == 0) tradeOrigin := isSmaBuy ? "SMA" : "RSI" strategy.entry("My Long Entry Id", strategy.long, qty=(strategy.equity / close) * positionSizeFactor, comment=str.tostring(positionSizeFactor)) isClose = tradeOrigin == "SMA" ? isSmaClose : isRsiClose if (isClose) strategy.exit("Exit", limit = close) plot(sma200) plot(sma200 * 0.95, color=color.orange)