Super Trend Basisstrategie


Erstellungsdatum: 2023-10-11 15:14:54 zuletzt geändert: 2023-10-11 15:14:54
Kopie: 0 Klicks: 907
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Supertrend-Basis-Strategie ist eine zuverlässige und profitable algorithmische Handelsstrategie, die auf drei starken Indikatoren basiert: dem Supertrend-Indikator (ATR), dem relativ starken Index (RSI) und dem Index Moving Average (EMA). Die Strategie dient der Identifizierung der Richtung und der Stärke der Markttrends, betritt den Markt an den optimalen Einstiegspunkten und verlässt den Markt, wenn ein Stop-Loss oder ein Stop-Out erreicht wird.

Strategieprinzip

Die Strategie verwendet die Supertrend-Anzeige, um zu bestimmen, ob die Preise im Auf- oder Abwärtstrend sind. Die Supertrend-Anzeige basiert auf der durchschnittlichen tatsächlichen Breite und einem Faktor, der als Aufwärtstrend gilt, wenn die Preise über der Supertrend liegen, und als Abwärtstrend, wenn die Preise unter der Supertrend liegen.

Der Relative-Strength-Index wird verwendet, um zu erkennen, ob ein Markt überhitzt und überkauft oder überverkauft ist. Wenn der RSI über 50 liegt, ist er ein starker Markt, umgekehrt ein schwacher. Der RSI kann falsche Durchbrüche filtern.

Indikatorische Moving Averages werden verwendet, um die langfristige Trendrichtung zu bestimmen. Wenn der Preis über der EMA liegt, ist er aufwärts, wenn er unter der EMA liegt, ist er abwärts. Sie können verwendet werden, um die Richtung des Handels zu bestätigen.

Die Handelssignale für diese Strategie lauten wie folgt:

Mehrköpfige Eintrittskurse: Bei einem Preis über dem Supertrend und einem RSI über 50 und einem Preis über der EMA mehr machen Mehrköpfe: Preisschluss unterhalb des Supertrends oder Stopp oder Stopp

Eintritt mit Leerlauf: Leerlauf, wenn der Preis unter dem Supertrend liegt und der RSI unter 50 liegt und der Preis unter der EMA liegt
Leerlauf: Preisschluss über Supertrend oder Stopp oder Stop

Stop-Loss und Stop-Stop können als Prozentsatz des Einstiegspreises eingestellt werden.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Trends mit einer Kombination aus drei Indikatoren

  2. Der Supertrend-Indikator kann Aufwärtstrends und Abwärtstrends klar erkennen

  3. Der RSI kann falsche Durchbrüche filtern, um Überkaufe zu vermeiden.

  4. Die EMA kann verwendet werden, um die Richtung der großen Trends zu bestimmen.

  5. Strategie-Signale sind einfach, klar und einfach zu bedienen

  6. Anpassbare ATR-Zyklen, RSI-Parameter und EMA-Zyklen zur Optimierung

  7. Risikokontrolle mit Stop-Loss-Stopp

  8. Nur mehr oder nur weniger, um sich an unterschiedliche Marktbedingungen anzupassen

  9. Kann in jedem Zeitrahmen verwendet werden

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Bei einer Umkehrung des großen Trends verbleibt der Supertrend-Indikator und kann zu Verlusten führen.

  2. Die eingestellte Stop-Loss-Sperre ist möglicherweise zu klein, um den großen Markt zu erfassen.

  3. Die EMA ist nicht in der Lage, einen Trendwendepunkt zu bestimmen

  4. Es ist unmöglich zu beurteilen, ob man sich von der Situation abwendet.

  5. Es gibt ein gewisses Maß an Volatilitätsrisiko und Zeithandelsrisiko.

Entsprechende Lösungen:

  1. In Kombination mit anderen Indikatoren wird eine Trendwende beurteilt.

  2. Optimierung der Stop-Loss-Parameter

  3. In Kombination mit anderen Indikatoren wird eine Trendwende beurteilt.

  4. Kombination mit Abweichungen

  5. Positionsverwaltung angepasst

Optimierungsrichtung

Die Strategie kann optimiert werden durch:

  1. Optimierung der ATR-Zyklusparameter, um Sensitivität und Stabilität auszugleichen

  2. Optimierung der RSI-Parameter zur Verbesserung der Genauigkeit

  3. Optimierung der EMA-Zyklen für verschiedene Märkte

  4. Hinzufügen von anderen Indikatoren, um die Umkehrung zu beurteilen, wie MACD, KD usw.

  5. Zunehmende Abweichung von Indikatoren

  6. Umkehrung des Urteils in Verbindung mit der Wellen-Theorie

  7. Dynamische Optimierungsparameter mit Algorithmen wie Machine Learning

  8. Erweiterte Stop-Algorithmen wie Tracking-Stopps und mobile Stop-Algorithmen

  9. Optimierung der Positionsverwaltung und Anpassung an unterschiedliche Marktschwankungen

  10. Tests mit komplexeren Kombinationen von Einstiegs- und Ausstiegsbedingungen

Zusammenfassen

Die Supertrend-Basis-Strategie integriert die drei wichtigsten Indikatoren Supertrends, RSI und EMA in eine einfache und praktische Trendverfolgungsstrategie. Sie kann die Richtung des Trends eindeutig identifizieren, falsche Signale filtern und große Trends bestätigen. Die Strategie ist einfach zu bedienen, zuverlässig zu gewinnen und für jeden Zeitrahmen geeignet.

Strategiequellcode
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 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/
// © JS_TechTrading

//@version=5
// strategy("Supertrend", overlay=true,default_qty_type =strategy.percent_of_equity,default_qty_value = 1,process_orders_on_close = false)

// group string////
var string group_text000="Choose Strategy"
var string group_text0="Supertrend Settings"
var string group_text0000="Ema Settings"
var string group_text00="Rsi Settings"
var string group_text1="Backtest Period"
var string group_text2="Trade Direction"
// var string group_text3="Quantity Settings"
var string group_text4="Sl/Tp Settings"
////////////////////
option_ch=input.string('Pullback',title = "Type Of Strategy",options =['Pullback','Simple'])

//atr period input supertrend 
atrPeriod = input(10, "ATR Length",group = group_text0)
factor = input.float(3.0, "Factor", step = 0.01,group=group_text0)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

long=direction < 0 ? supertrend : na
short=direction < 0? na : supertrend

longpos=false
shortpos=false

longpos :=long?true :short?false:longpos[1]
shortpos:=short?true:long?false:shortpos[1]

fin_pullbuy= (ta.crossunder(low[1],long) and long and high>high[1])
fin_pullsell=(ta.crossover(high[1],short) and short and low<low[1]) 

//Ema 1
on_ma=input.bool(true,"Ema Condition On/Off",group=group_text0000)
ma_len= input.int(200, minval=1, title="Ema Length",group = group_text0000)
ma_src = input.source(close, title="Ema Source",group = group_text0000)
ma_out = ta.ema(ma_src, ma_len)

ma_buy=on_ma?close>ma_out?true:false:true
ma_sell=on_ma?close<ma_out?true:false:true

// rsi indicator and condition
// Get user input
en_rsi    = input.bool(true,"Rsi Condition On/Off",group = group_text00)
rsiSource = input(title='RSI Source', defval=close,group = group_text00)
rsiLength = input(title='RSI Length', defval=14,group = group_text00)
rsiOverbought = input(title='RSI BUY Level', defval=50,group = group_text00)
rsiOversold   = input(title='RSI SELL Level', defval=50,group = group_text00)

// Get RSI value
rsiValue = ta.rsi(rsiSource, rsiLength)

rsi_buy=en_rsi?rsiValue>=rsiOverbought ?true:false:true
rsi_sell=en_rsi?rsiValue<=rsiOversold?true:false:true

// final condition
buy_cond=option_ch=='Simple'?long and not(longpos[1]) and rsi_buy and ma_buy:option_ch=='Pullback'?fin_pullbuy and rsi_buy and ma_buy:na
sell_cond=option_ch=='Simple'?short and not(shortpos[1]) and rsi_sell and ma_sell:option_ch=='Pullback'?fin_pullsell and rsi_sell and ma_sell:na

//backtest engine
start = input(timestamp('2005-01-01'), title='Start calculations from',group=group_text1)
end=input(timestamp('2045-03-01'), title='End calculations',group=group_text1)
time_cond =true

// Make input option to configure trade direction

tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both',group = group_text2)

// Translate input into trading conditions
longOK  = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")



// strategy start
if buy_cond and longOK and time_cond and strategy.position_size==0
    strategy.entry('long',direction = strategy.long)
if sell_cond and shortOK and time_cond and strategy.position_size==0
    strategy.entry('short',direction =strategy.short)

// fixed percentage based stop loss and take profit 

// User Options to Change Inputs (%)
stopPer = input.float(1.0,step=0.10, title='Stop Loss %',group =group_text4) / 100
takePer = input.float(1.0,step =0.10, title='Take Profit %',group =group_text4) / 100

// Determine where you've entered and in what direction
longStop  = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake  = strategy.position_avg_price * (1 + takePer)


if strategy.position_size > 0
    strategy.exit(id='Close Long',stop=longStop, limit=longTake)
if strategy.position_size < 0
    strategy.exit(id='Close Short',stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Fixed SL')
plot(strategy.position_size < 0 ? shortStop :na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Short Fixed SL')
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Long Take Profit')
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Short Take Profit')

//