
Diese Strategie nennt sich “RSI-Handelsstrategie mit doppelten Indikatoren”. Die Strategie nutzt die doppelten Indikatoren “Doppel EMA” und “relativ starke Indikatoren” “RSI” als Hauptindikatoren für den Handel und ermöglicht den mechanischen Handel.
Die Strategie berechnet zuerst den binären Moving Average (MA) des Preises und berechnet dann den RSI basierend auf der MA und berechnet dann den Index Moving Average des RSI (Smooth). Wenn der RSI seinen Moving Average überschreitet, erzeugt er ein Kaufsignal. Wenn der RSI seinen Moving Average unterbricht, erzeugt er ein Verkaufsignal. Optional setzt die Strategie auch die Parameter für die Risikokontrolle wie die maximale Anzahl von Transaktionen pro Tag, den Anteil des Handelskapitals, die Handelsdauer, die Stop-Loss-Stoppunkte und die Anzahl der Stop-Loss-Stoppunkte.
Gegenmaßnahmen:
Diese Strategie hat klare, zuverlässige Mechanik-Regeln für die Trendvarianten der mittleren und langen Linien. Nach der Optimierung kann sie als Grundlage für die Trendverfolgung für mechanische Handelsstrategien verwendet werden. Das Risiko ist kontrollierbar und es lohnt sich, die Wirksamkeit auf dem Markt weiter zu bewerten.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title='[STRATEGY][RS]DemaRSI V0', shorttitle='D', overlay=false, initial_capital=100000, currency=currency.USD)
src = input(close)
ma_length = input(21)
rsi_length = input(4)
rsi_smooth = input(4)
ma = ema(ema(src, ma_length), ma_length)
marsi = rsi(ma, rsi_length)
smooth = ema(marsi, rsi_smooth)
plot(title='M', series=marsi, color=black)
plot(title='S', series=smooth, color=red)
hline(0)
hline(50)
hline(100)
max_order_per_day = input(6)
// strategy.risk.max_intraday_filled_orders(max_order_per_day)
trade_size_as_equity_factor = input(false)
trade_size = input(type=float, defval=10000.00) * (trade_size_as_equity_factor ? strategy.equity : 1)
take_profit_in_points = input(100000)
stop_loss_in_points = input(100000)
trail_in_points = input(150)
USE_SESSION = input(true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_SESSION ? true : not na(time('1', trade_session))
buy_entry = istradingsession and crossover(marsi, smooth)
sel_entry = istradingsession and crossunder(marsi, smooth)
strategy.entry('buy', long=true, qty=1, when=buy_entry)
strategy.entry('sel', long=false, qty=1, when=sel_entry)
strategy.exit('buy.Exit', from_entry='buy', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.exit('sel.Exit', from_entry='sel', profit=take_profit_in_points, loss=stop_loss_in_points, trail_points=trail_in_points, trail_offset=trail_in_points)
strategy.close_all(when=not istradingsession)