Trendfolgende Handelsstrategie basierend auf ATR und RSI


Erstellungsdatum: 2023-10-09 15:18:10 zuletzt geändert: 2023-10-09 15:18:10
Kopie: 0 Klicks: 1027
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Diese Strategie basiert auf der durchschnittlichen realen Schwankungsbreite ((ATR) und der relativ starken Index ((RSI) und hat ein Handelssystem mit Trend-Tracking-Funktion entworfen. Das System kann die Richtung des Trends automatisch identifizieren und verfügt über Stop-Loss- und Stop-Stopp-Funktionen.

Strategieprinzip

  1. Die ATR und der RSI werden berechnet. Der ATR spiegelt die durchschnittliche Preisschwankung in der jüngsten Zeit wider. Der RSI spiegelt die Kräfte zwischen den beiden Währungen wider.

  2. Wenn der ATR größer ist als der gleitende Durchschnitt, ist er für den Handel geeignet.

  3. Wenn der RSI oberhalb der Überkauflinie liegt, ist ein Plus; wenn der RSI unterhalb der Überverkaufszone liegt, ist ein Minus.

  4. Nach dem Plus multipliziert man mit dem Höchstwert und dem Fixed Ratio, um den Stop-Loss zu verfolgen. Nach dem Short multipliziert man mit dem Tiefwert und dem Fixed Ratio, um den Stop-Loss zu verfolgen.

  5. Die Gewinnquote steigt.

Analyse der Stärken

  1. Die Verfolgung von Stop-Losses kann die Verringerung von Verlusten und die Maximierung von Stop-Losses ermöglichen.

  2. Der RSI ist ein guter Indikator für die positive Luftwaffe und verhindert, dass man bei einem wackligen Trend immer wieder auftritt.

  3. Der ATR ist ein Indikator für die Volatilität, der Schwankungen filtert und nur in Trends handelt.

  4. Die Gewinnquote-Sperre kann einen Teil des Gewinns sperren.

Risikoanalyse

  1. ATR und RSI sind beide Verzögerungsindikatoren, die dazu führen können, dass der Einstiegszeitpunkt nachlässt. Die Parameter können entsprechend optimiert werden, um das System empfindlicher zu machen.

  2. Die Fixed-Loss-Verhältnis-Stop-Loss-Schranke ist leicht zu optimiert und sollte sorgfältig mit den Rückmeldungen kombiniert werden.

  3. In einem hochperiodischen Zustand kann der ATR länger als der Moving Average liegen, was zu einem Überhandel führt. Weitere Filterbedingungen können hinzugefügt werden.

Optimierungsrichtung

  1. Optimierung der ATR- und RSI-Parameter, um das System empfindlicher zu machen.

  2. Es ist wichtig, dass die Mainstream-Indikatoren eingesetzt werden, um die Richtung des Trends zu bestimmen.

  3. Versuchen Sie mit einem dynamischen Stop-Loss-Stopp-Verhältnis, anstatt mit einem festen.

  4. Erwägen Sie die Einführung von Volumenkontrollen.

Zusammenfassen

Die Strategie integriert die Vorteile der beiden Indikatoren ATR und RSI und entwirft ein einfaches, praktisches Trend-Tracking-Trading-System. Durch die Optimierung der Parameter und die Erhöhung der Filterbedingungen kann die Systemstabilität weiter verbessert werden. Insgesamt hat die Strategie einen starken Wert für die Anwendung auf dem Markt.

Strategiequellcode
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © liwei666
//@version=5
// # ========================================================================= #
// #                   |   Strategy  |
// # ========================================================================= #
strategy(
 title                = "ATR_RSI_Strategy v2[liwei666]",
 shorttitle           = "ATR_RSI_Strategy",
 overlay              =  true,
 max_lines_count                 =  500, 
 max_labels_count                =  500, 
 max_boxes_count                 =  500,
 max_bars_back = 5000,
 initial_capital = 10000,
 default_qty_type=strategy.percent_of_equity, 
 default_qty_value=50, commission_type=strategy.commission.percent, pyramiding=1, 
 commission_value=0.05
 )
// # ========================================================================= #
// #                   |   Strategy  |
// # ========================================================================= #

atr_length = input.int(26, "atr_length", minval = 6, maxval = 100, step=1)
atr_ma_length = input.int(45, "atr_ma_length", minval = 6, maxval = 100, step=1)
rsi_length = input.int(15, "rsi_length", minval = 6, maxval = 100, step=1)
rsi_entry = input.int(10, "rsi_entry", minval = 6, maxval = 100, step=1)
atr_ma_norm_min = input.float(0.3, "atr_ma_norm_min", minval = 0.1, maxval = 0.5, step=0.1)
atr_ma_norm_max = input.float(0.7, "atr_ma_norm_max", minval = 0.5, maxval = 1, step=0.1)
trailing_percent= input.float(1.5, "trailing_percent", minval = 0.1, maxval = 2, step=0.1)

var rsi_buy = 50 + rsi_entry
var rsi_sell = 50 - rsi_entry

sma_norm_h_45() => 
    source = high
    n = 45
    sma = ta.sma(source, n) 
    sma_norm = (sma - ta.lowest(sma, n)) / (ta.highest(sma,n) - ta.lowest(sma, n))
    sma_norm

atr_value = ta.atr(atr_length)
atr_ma = ta.sma(atr_value, atr_ma_length) 
rsi_value = ta.rsi(close, length = rsi_length) 
atr_ma_norm = atr_ma / close * 100
sma_norm = sma_norm_h_45()

var intra_trade_high = 0.0
var intra_trade_low = 0.0

if strategy.position_size == 0
    intra_trade_high := high
    intra_trade_low := low

    if atr_ma_norm >= atr_ma_norm_min and atr_ma_norm <= atr_ma_norm_max
        if atr_value > atr_ma
            if rsi_value > rsi_buy
                strategy.entry("B1", strategy.long, limit = close + 5 )
            else if rsi_value < rsi_sell
                strategy.entry("S1", strategy.short, limit = close - 5 )
else if strategy.position_size > 0
    intra_trade_high := math.max(intra_trade_high, high)
    intra_trade_low := low

    long_tp = intra_trade_high * (1 - trailing_percent / 100)
    strategy.exit("Exit B1", from_entry="B1", stop = long_tp, limit = strategy.position_avg_price * 1.03)

else if strategy.position_size < 0
    intra_trade_high := high
    intra_trade_low := math.min(intra_trade_low, low) 

    short_tp = intra_trade_low * (1 + trailing_percent / 100)
    strategy.exit("Exit S1", from_entry="S1", stop = short_tp, limit = strategy.position_avg_price * 0.94)