Dieser Artikel analysiert hauptsächlich die von Ravikant_sharma entwickelte quantitative Handelsstrategie, die auf mehreren exponentiellen gleitenden Durchschnitten (EMA) und Relative Strength Index (RSI) basiert.
Die Strategie verwendet 5 EMAs mit verschiedenen Perioden, darunter 9-Tage-, 21-Tage-, 51-Tage-, 100-Tage- und 200-Tage-Linien. Nur die ersten 4 EMAs werden im Code gezeichnet. Der RSI-Parameter ist auf 14 festgelegt.
Vor dem Kauf muss eine der folgenden Bedingungen erfüllt sein:
Gleichzeitig muss der RSI über 65 liegen, was auf einen starken Aufwärtstrend hinweist.
Vor dem Schließen der Position muss eine der folgenden Bedingungen erfüllt sein:
Es handelt sich um eine typische Strategie mit folgenden Stärken:
Es gibt noch einige Risiken:
Die Strategie kann auf folgende Weise weiter optimiert werden:
Zusammenfassend ist dies eine allgemein zuverlässige und einfach umsetzbare Trendfolgestrategie. Mit EMA-Crossover für die Trendrichtung und RSI-Filter für falsche Signale bieten gute Backtest-Ergebnisse eine solide Grundlage für weitere Parameter- und Modelloptimierung, um stetige Gewinne zu erzielen. Trader sollten jedoch immer noch vorsichtig mit starken Umkehrungen und unsachgemäßen Parametern sein, die Risiken bergen.
/*backtest start: 2024-01-30 00:00:00 end: 2024-02-29 00:00:00 period: 3h 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/ // © Ravikant_sharma //@version=5 strategy('new', overlay=true) start = timestamp(1990, 1, 1, 0, 0) end = timestamp(2043, 12, 12, 23, 59) ema0 = ta.ema(close, 9) ema1 = ta.ema(close, 21) ema2 = ta.ema(close, 51) ema3 = ta.ema(close, 100) ema4 = ta.ema(close, 200) rsi2=ta.rsi(ta.sma(close,14),14) plot(ema0, '9', color.new(color.green, 0)) plot(ema1, '21', color.new(color.black, 0)) plot(ema2, '51', color.new(color.red, 0)) plot(ema3, '200', color.new(color.blue, 0)) //plot(ema4, '100', color.new(color.gray, 0)) //LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) // LongEntry=false if ta.crossover(ema0,ema1) if rsi2>65 LongEntry:=true if ta.crossover(ema1,ema2) if rsi2>65 LongEntry:=true LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98) if time >= start and time <= end if(LongEntry and rsi2>60) strategy.entry('Long', strategy.long, 1) if(LongExit) strategy.close('Long')