Triple Super Trend EMA ADX Filter Strategie


Erstellungsdatum: 2023-09-18 14:02:12 zuletzt geändert: 2023-09-18 14:02:12
Kopie: 1 Klicks: 1696
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Dies ist eine quantitative Handelsstrategie, die den Triple Overtrend, EMA und ADX kombiniert. Sie nutzt das Triple Overtrend-System, um ein Handelssignal zu senden, und kombiniert EMA und ADX als Filterbedingungen, um die Handelsfrequenz zu kontrollieren und die Qualität des Handelssignals zu verbessern.

Strategieprinzip

  • Ein Hypertrend-System mit drei Gruppen von verschiedenen Parametern erzeugt ein Handelssignal, wenn alle drei Gruppen von Hypertrends synchronisiert sind.
  • Verwenden Sie die EMA als Trendfilter, nur wenn der Schlusskurs höher als die EMA ist und wenn der Schlusskurs niedriger als die EMA ist.
  • Die Anwendung von ADX als Filter für Trendstärke und -schwäche, der nur dann gehandelt wird, wenn der ADX über dem eingestellten Schwellenwert liegt.
  • Erlaubt die Auswahl des Wiedereintritts, die Kontrolle der Profitabilität und das Risiko von Verlusten.

Konkret werden die langen Eintrittsbedingungen für die dreifache Übertrend zu einem Bissen umgewandelt, wenn der Schlusskurs höher als die EMA und die ADX über dem festgelegten Wert ist. Die kurzen Eintrittsbedingungen für die dreifache Übertrend werden zu einem Leerkurs umgewandelt, wenn der Schlusskurs niedriger als die EMA und die ADX über dem festgelegten Wert ist.

Die Strategie zeichnet gleichzeitig Widerstandslinien für die drei Gruppen von Übertrends, um die Richtung der Trends zu bestimmen.

Analyse der Stärken

  • Das Dreifach-Supertrend-System filtert falsche Durchbrüche und erhöht die Einstiegsgenauigkeit.
  • EMA und ADX-Doppelfilter reduzieren die Schäden durch Whipsaw und erhöhen die Schadensbegrenzung.
  • Die Ertragsfähigkeit der Strategie kann je nach individuellen Risikopräferenzen angepasst werden.
  • In Kombination mit dem visuellen Supertrend unterstützt die Widerstandslinie die Richtung des Trends.

Risikoanalyse

  • Es gibt Probleme mit dem Rückstand von Indikatoren wie Übertrend, es kann zu späten Einstiegs- und vorzeitigen Ausstiegsfällen kommen.
  • Die Wahl von zu strengen Filterbedingungen führt zu verpassten Chancen.
  • In einem schrumpfenden Markt ist es leicht, einen Whipsaw zu bilden, der Verluste verursacht.
  • Die Erlaubnis des Wiedereintritts erhöht die Häufigkeit der Transaktionen und die Kosten für die Gleitpunkte.

Diese Risiken können durch die Anpassung der Parameterkombinationen, die Optimierung der Filterbedingungen und andere Methoden verringert werden. Gleichzeitig müssen die Positionsgröße und die strengen Stop-Losses kontrolliert werden, um auf unsichere Marktbedingungen zu reagieren.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  • Verschiedene Parameterkombinationen werden getestet, um die besten Supertrend- und EMA-Parameter zu finden.
  • Optimierung der ADX-Schwelle zur Verringerung der Falschsignale.
  • Filter für andere Kennzahlen wie Schwankungen, Transaktionsvolumen usw.
  • Optimierung der Parameter für verschiedene Sorten, um die Anpassungsfähigkeit zu verbessern.
  • Es gibt eine dynamische Stop-Loss-Mechanismus, um die Risiken aktiv zu kontrollieren.
  • Das ist eine gute Idee, aber es ist auch eine gute Idee, um die Regeln für die Ein- und Ausstiegsregeln zu verbessern.

Zusammenfassen

Diese Strategie nutzt die Vorteile des dreifachen Übertrendsystems und wird durch die doppelte EMA- und ADX-Filterung unterstützt. Sie kann die Qualität der Handelssignale und die Risikokontrolle verbessern. Durch die Optimierung von Parametern, die Erhöhung der Filterbedingungen und die dynamische Stop-Loss-Methode kann die Robustheit und Anpassungsfähigkeit der Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
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/
// ©kunjandetroja


//@version=5
strategy('Triple Supertrend with EMA and ADX', overlay=true)

m1 = input.float(1,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 1')
m2 = input.float(2,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 2')
m3 = input.float(3,"ATR Multi",minval = 1,maxval= 6,step=0.5,group='ST 3')
p1 = input.int(10,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 1')
p2 = input.int(15,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 2')
p3 = input.int(20,"ATR Multi",minval = 5,maxval= 25,step=1,group='ST 3')
len_EMA = input.int(200,"EMA Len",minval = 5,maxval= 250,step=1)
len_ADX = input.int(14,"ADX Len",minval = 1,maxval= 25,step=1)
len_Di = input.int(14,"Di Len",minval = 1,maxval= 25,step=1)
adx_above = input.float(25,"adx filter",minval = 1,maxval= 50,step=0.5)
var bool long_position = false
adx_filter = input.bool(false, "Add Adx & EMA filter")
renetry = input.bool(true, "Allow Reentry")

f_getColor_Resistance(_dir, _color) =>
    _dir == 1 and _dir == _dir[1] ? _color : na
f_getColor_Support(_dir, _color) =>
    _dir == -1 and _dir == _dir[1] ? _color : na

[superTrend1, dir1] = ta.supertrend(m1, p1)
[superTrend2, dir2] = ta.supertrend(m2, p2)
[superTrend3, dir3] = ta.supertrend(m3, p3)
EMA = ta.ema(close, len_EMA)
[diplus,diminus,adx] = ta.dmi(len_Di,len_ADX)

// ADX Filter
adxup = adx > adx_above and close > EMA
adxdown = adx > adx_above and close < EMA

sum_dir = dir1 + dir2 + dir3

dir_long = if(adx_filter == false)
    sum_dir == -3
else
    sum_dir == -3 and adxup
dir_short = if(adx_filter == false)
    sum_dir == 3
else
    sum_dir == 3 and adxdown
Exit_long = dir1 == 1 and dir1 != dir1[1]
Exit_short = dir1 == -1 and dir1 != dir1[1]

// BuySignal = dir_long and dir_long != dir_long[1]
// SellSignal = dir_short and dir_short != dir_short[1]
// if BuySignal
//     label.new(bar_index, low, 'Long', style=label.style_label_up)
// if SellSignal
//     label.new(bar_index, high, 'Short', style=label.style_label_down)

longenter = if(renetry == false)
    dir_long and long_position == false
else
    dir_long
shortenter = if(renetry == false)
    dir_short and long_position == true
else
    dir_short
if longenter
    long_position := true
if shortenter
    long_position := false

strategy.entry('BUY', strategy.long, when=longenter)
strategy.entry('SELL', strategy.short, when=shortenter)   
strategy.close('BUY', Exit_long)
strategy.close('SELL', Exit_short)

buy1 = ta.barssince(dir_long)
sell1 = ta.barssince(dir_short)

colR1 = f_getColor_Resistance(dir1, color.red)
colS1 = f_getColor_Support(dir1, color.green)

colR2 = f_getColor_Resistance(dir2, color.orange)
colS2 = f_getColor_Support(dir2, color.yellow)

colR3 = f_getColor_Resistance(dir3, color.blue)
colS3 = f_getColor_Support(dir3, color.maroon)

plot(superTrend1, 'R1', colR1, linewidth=2)
plot(superTrend1, 'S1', colS1, linewidth=2)

plot(superTrend2, 'R1', colR2, linewidth=2)
plot(superTrend2, 'S1', colS2, linewidth=2)

plot(superTrend3, 'R1', colR3, linewidth=2)
plot(superTrend3, 'S1', colS3, linewidth=2)

// // Intraday only
// var int new_day = na
// var int new_month = na
// var int new_year = na
// var int close_trades_after_time_of_day = na

// if dayofmonth != dayofmonth[1]
//     new_day := dayofmonth
// if month != month[1]
//     new_month := month
// if year != year[1]
//     new_year := year
// close_trades_after_time_of_day := timestamp(new_year,new_month,new_day,15,15)

// strategy.close_all(time > close_trades_after_time_of_day)