Diese Strategie hilft dem Händler, kurzfristige Preisbewegungen zu erfassen, indem er die Veränderungsrate über einen bestimmten Zeitraum berechnet.
Die Strategie basiert auf folgenden Kennzahlen:
Regeln für den Kauf:
Die Regeln für den Verkauf:
Die Auftragsgröße wird als Prozentsatz der Gesamtbeteiligung eingestellt (standardmäßig 96%), um einen Leverage-Effekt zu erzielen.
Diese Strategie hat folgende Vorteile:
Insgesamt nutzt die Strategie Instrumente wie Preisänderungsraten und SMA-Indikatoren, um in schwankenden Zeiten besser zu funktionieren.
Die Strategie birgt auch folgende Risiken:
Unkorrekt eingestellte Rate of Change- und SMA-Parameter können zu fehlerhaften oder falschen Handelssignalen führen. Die Parameter müssen für verschiedene Märkte angepasst werden.
Die Auftragsgröße erhöht das Risiko. Es wird empfohlen, das Auftragsanteil in der Testphase zu optimieren.
Verfolgung von Stop-Losses: Bei Erschütterungen kann ein vorzeitiger Stop-Loss eingesetzt werden.
Strategie Transactionsstab kann leicht eingeschränkt werden. Sie sollte mit Trendbeurteilung und Stop-Loss-Management kombiniert werden.
Die Strategie sollte in verschiedenen Märkten mehrmals in der Praxis überprüft werden.
Diese Risiken können durch Parameteroptimierung, Auftragsanpassung, Optimierung der Stop-Loss-Strategie und Praxisprüfung kontrolliert werden.
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Hinzu kommen weitere technische Kennzahlen wie Schwankungsrate, Transaktionsmenge usw., um die Signalgenauigkeit zu verbessern.
Optimierung der Anzahl der Transaktionen, um die Auswirkungen der transactionsstab-Marktlage zu reduzieren, indem die Transaktionsfrequenz reduziert wird.
In Kombination mit einer Breakout-Strategie wird ein Breakout-Handelssignal in der Nähe von Schlüsselpreisen gesetzt.
Automatische Optimierung der Parameter-Einstellungen mittels maschineller Lernmethoden.
Die Strategie wird in mehreren Märkten und über mehrere Zeiträume getestet, um ihre Robustheit und Anpassungsfähigkeit zu verbessern.
Berücksichtigen Sie die Merkmale verschiedener Arten wie Aktien, Devisen usw. und setzen Sie eine spezifische Kombination von Parametern.
Strategie-Signal- und Risikokontrollmethoden werden immer wieder optimiert, basierend auf den Ergebnissen aus der Praxis.
Die Strategie sucht nach Handelsmöglichkeiten bei kurzen Kursschwankungen anhand von Wechselkursen und SMA-Indikatoren. Sie hilft, schnelle Trends zu erfassen, muss aber auch auf Risikokontrolle achten. Die Strategie kann durch Parameteroptimierung, Auftragsanpassung, Verbesserung der Stop-Loss-Strategie und Labortestung kontinuierlich verbessert 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)