Diese Strategie berechnet die Veränderungsrate im Laufe der Zeit, um Kauf-/Verkaufssignale zu bestimmen.
Die Strategie stützt sich hauptsächlich auf folgende Indikatoren:
Besondere Vorschriften für die Einfuhr:
Besondere Ausstiegsregeln:
Positionsgröße ist der Prozentsatz (Standard 96%) des Eigenkapitals für Hebelwirkung.
Die Strategie weist folgende Vorteile auf:
Die Verwendung von ROC zur Erkennung von Schwankungen ermöglicht die Erfassung von Aufwärts-/Abwärtsbewegungen für höhere Renditen.
Die Kombination von schneller/langsamer SMA hilft, Tiefpunkte/Hochpunkte genauer zu erkennen.
Die Referenz-SMA liefert eine allgemeine Richtung, um Ablenkung durch kurzfristige Geräusche zu vermeiden.
Ein Trailing Stop-Loss schließt die Gewinne ein und verringert das Abwärtsrisiko.
Der Hebel der Positionsgröße verstärkt den Gewinn.
Insgesamt nutzt die Strategie ROC, SMA und andere Instrumente effektiv, um von Kursschwankungen zu profitieren.
Die Strategie birgt außerdem folgende Risiken:
Falsche ROC- und SMA-Parameter können zu verpassten Signalen oder schlechten Trades führen.
Eine übermäßige Positionsgröße erhöht das Risiko. Der Auftragsanteil sollte getestet und abgestimmt werden.
Der Stopp-Loss kann in unruhigen Märkten zu früh beendet werden.
Sie sollten Trendfilter und Risikomanagement beinhalten.
Die Robustheit sollte durch den Live-Handel über Märkte hinweg überprüft werden.
Risiken können durch Parameteroptimierung, Positionsgrößen, Stop-Loss-Anpassungen, Robustheitstests usw. verwaltet werden.
Die Strategie kann in folgenden Bereichen verbessert werden:
Fügen Sie andere technische Indikatoren wie Volatilität, Volumen hinzu, um die Signalgenauigkeit zu verbessern.
Optimieren Sie die Anzahl der Trades, indem Sie die Handelsfrequenz reduzieren, um die Auswirkungen von Whipsaws zu minimieren.
Einbeziehung von Breakout-Techniken rund um die wichtigsten Preisniveaus.
Verwenden Sie maschinelles Lernen, um Parameter automatisch zu optimieren.
Überprüfen Sie die Robustheit auf verschiedenen Märkten und Zeitrahmen.
Spezialisierte Parameter für verschiedene Produkte wie Aktien, Devisen usw.
Weiterhin werden Signale und Risikokontrollen auf der Grundlage von Live-Ergebnissen verfeinert.
Diese Strategie identifiziert Handelschancen rund um kurzfristige Schwankungen mit Hilfe von ROC und SMA-Analyse. Es hilft, auf schnelle Schwankungen zu profitieren, erfordert aber auch eine angemessene Risikokontrolle. Feine Einstellparameter, Positionsgröße, Stop-Losses und Robustheitstests können seine Stabilität und Anpassungsfähigkeit verbessern. Die Strategie dient als Referenzvorlage für quantifizierten Handel, muss aber für verschiedene Märkte angepasst werden.
/*backtest start: 2022-09-21 00:00:00 end: 2023-09-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // Author: Sonny Parlin (highschool dropout) // Best if run on 5m timeframe strategy(shorttitle="ROC+Strategy", title="Rate of Change Strategy", overlay=true, currency=currency.USD, initial_capital=10000) // Inputs and variables ss = input(14, minval=10, maxval=50, title="SMA Fast (days)") ff = input(100, minval=55, maxval=200, title="SMA Slow (days)") ref = input(30, minval=20, maxval=50, title="SMA Reference (days)") lowOffset = input(0.023, "ROC Low (%)", minval=0, step=0.01) highOffset = input(0.047, "ROC High (%)", minval=0, step=0.01) orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01) lookback = input(12, "Lookback Candles", minval=1, step=1) // SMA smaFast = sma(close, ss) smaSlow = sma(close, ff) smaRef = sma(close, ref) ROC = (max(close[lookback],close) - min(close[lookback],close)) / max(close[lookback],close) // Set up SMA plot but don't show by default plot(smaFast, "smaFast", color=#00ff00, display = 0) plot(smaSlow, "smaSlow", color=#ff0000, display = 0) plot(smaRef, "smaRef", color=#ffffff, display = 0) // The buy stratey: // Guard that the low is under our SMA Reference line // Guard that the rate of change over the lookback period is greater than our // ROC lowOffset %, default is 0.023. (low < smaRef) and (ROC > lowOffset) // SMA fast is on the rise and SMA slow is falling and they are very likely // to cross. (rising(smaFast,1)) and (falling(smaSlow, 1)) enterLong = (low < smaRef) and (ROC > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow,1)) // The sell Strategy: // Guard that close is higher than our SMA reference line and that the rate of // change over the lookback period is greater than our highOffset %, default // is 0.047. (close > smaRef) and (ROC > highOffset) // Guard that close has risen by 3 candles in a row (rising(close,3)) // Guard that we currently have profit (strategy.openprofit > 0) // Guard that SMA fast is higher than smaSlow (smaFast > smaSlow) // If it keeps going up past our close position the trailing stoploss will kick in! enterShort = (close > smaRef) and (ROC > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow) // Order size is based on total equity // Example 1: // startingEquity = 2000 // close = 47434.93 // orderStake = 0.45 // (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900 // Example 2: // startingEquity = 2000 // close = 1.272 // orderStake = 0.45 // (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900 orderSize = (strategy.equity * orderStake) / close // Trailing Stoploss // I'm using 2.62 as my default value, play with this for different results. longTrailPerc = input(title="Trailing Stoploss (%)", type=input.float, minval=0.0, step=0.1, defval=3.62) * 0.01 longStopPrice = 0.0 longStopPrice := if (strategy.position_size > 0) stopValue = close * (1 - longTrailPerc) max(stopValue, longStopPrice[1]) else 0 if (enterLong) strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0) if (enterShort) strategy.exit(id="Close Long Position", stop=longStopPrice) //plot(strategy.equity)