Super Trend V Strategie


Erstellungsdatum: 2023-10-18 12:35:53 zuletzt geändert: 2023-10-18 12:35:53
Kopie: 0 Klicks: 877
1
konzentrieren Sie sich auf
1617
Anhänger

Super Trend V Strategie

Überblick

Die Übertrend-V-Strategie ist eine Short-Line-Trading-Strategie, die auf Moving Averages und Standard Differences basiert. Sie verwendet die Super Trend-Anzeige, um die Trendrichtung des Preises zu bestimmen, in Kombination mit der Unterstützung und dem Widerstand, der durch die Moving Averages gebildet wird.

Strategieprinzip

Die Strategie berechnet zunächst den Super Trend, der die Richtung des Trends anhand der Beziehung zwischen ATR und dem Preis bestimmen soll. Wenn der Preis über dem Aufwärtstrend liegt, ist er positiv, wenn der Preis unter dem Abwärtstrend liegt, ist er negativ.

Dann berechnen Sie den Moving Average EMA des Preises und den Moving Average EMA des Eröffnungspreises, der als Kaufsignal gilt, wenn der Preis über dem Moving Average liegt und über dem Eröffnungsmittelwert liegt, und als Verkaufsignal, wenn der Preis unter dem Moving Average liegt und unter dem Eröffnungsmittelwert liegt.

Dann berechnen Sie die Auf- und Abfahrt des Preiskanals mit Hilfe der Standardabweichung und führen Sie eine glatte Verarbeitung durch. Wenn der Preis die Standardabweichung überschreitet, wird das Stoppsignal ausgelöst, wenn der Preis die Standardabweichung überschreitet, wird das Stoppsignal ausgelöst.

Schließlich werden die Bewegenden Durchschnitte aus verschiedenen Zeiträumen kombiniert, um die Richtung des Trends zu bestimmen, kombiniert mit dem Super Trend-Indikator, um eine stabile Tendenz zu bestimmen.

Strategische Vorteile

  • Verwenden Sie den Super Trend-Indikator, um die Richtung der Preisentwicklung zu bestimmen und eine Trendwende zu vermeiden, die zu Verlusten führt.
  • Der Moving Average in Kombination mit dem Startpreis hilft bei der Ermittlung der Einstiegszeit und verhindert falsche Durchbrüche.
  • Standard-Differenz-Kanal, um potenzielle Unterstützungs- und Widerstandsbereiche zu prognostizieren und einen Stop-Loss-Preis zu setzen
  • Mehrfache Zeiträume, kombiniert mit Trends, erhöhen die Stabilität

Strategisches Risiko

  • Die Super Trend-Indikatoren sind zurückgeblieben und könnten einen Trendwechsel verpassen
  • Der bewegliche Durchschnitt erzeugt ein Verzögerungssignal, der nicht zum richtigen Zeitpunkt eingesetzt wird.
  • Der Standarddeviation-Kanal ist zu fixiert, um die Marktschwankungen in Echtzeit zu reflektieren.
  • Mehrere Zeitspannen können sich widersprechen

Die Risiken können auf folgende Weise gelöst werden:

  • Die Super Trend-Parameter werden entsprechend verkürzt, um die Sensitivität zu erhöhen
  • Optimierung der Moving-Average-Periode oder Hinzufügung anderer Indikatoren zur Einschätzung
  • Dynamische Anpassung der Standard-Differenz-Kanalparameter, um die Bandbreite an den Markt anzupassen
  • Festlegung einer klaren Mehrzyklus-Urteilslogik, um mögliche Konflikte zu behandeln

Richtung der Strategieoptimierung

  • Optimierung der Super Trend-Parameter auf der Suche nach der besten Kombination
  • Versuchen Sie es mit anderen Indikatoren in Kombination mit einem Moving Average.
  • Versuchen Sie, die Standarddeviation-Kanalparameter dynamisch anzupassen
  • Versuche verschiedene Kombinationen von mehreren Perioden und finde die passende Periode
  • Optimierung von Stop-Loss-Stopp-Strategien zur Erhöhung der Gewinnspanne

Zusammenfassen

Die Übertrend-V-Strategie integriert die Vorzüge von Indikatoren wie Trends, Durchschnittslinien und Standard-Differenz-Kanäle, um die Richtung der Trendentscheidung zu stabilisieren, die richtige Einstiegsmomente zu wählen und eine kurze Handelsstrategie für die Stop-Loss-Stopp-Optimierung in der Preiszone einzurichten. Verbesserungen durch Parameteroptimierung, Indikatoroptimierung und Stop-Loss-Stopp-Optimierung können die Strategie-Stabilität und die Profitabilität verbessern.

Strategiequellcode
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © theCrypster 2020

//@version=4
strategy(title = "Super trend V Strategy version", overlay = true, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

v =  spreadvol + cum(spreadvol)
smooth = sma(v, v_len)
v_spread = stdev(v - smooth, window_len)
shadow = (v - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//
src = out
src1=open
src2=low
src3=high
tf =input(720)
len = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

c = ema(src, len)
plot(c,color=color.red)
o = ema(src1,len)
plot(o,color=color.blue)
//h = ema(src3,len)
//l=ema(src2,len)
//
col=c > o? color.lime : color.orange
vis = true
vl = c
ll = o
m1 = plot(vl, color=col, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=col, linewidth=2, transp=80)

fill(m1, m2,  color=col, transp=70)
//

vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = vpt - (st_mult * atr(st_period))
dn_lev = vpt + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( close, st_line) and close>o
sell=crossunder(close, st_line) and close<o
//plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny)
//plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny)
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon


//
multiplier = input(title="TP VWAP Deviation", type=input.float, defval=2, minval=1)
src5 = vwap
len5 = input(title="TP length", defval=150, minval=1)
offset = 0

calcSlope(src5, len5) =>
    sumX = 0.0
    sumY = 0.0
    sumXSqr = 0.0
    sumXY = 0.0
    for i = 1 to len5
        val = src5[len5-i]
        per = i + 1.0
        sumX := sumX + per
        sumY := sumY + val
        sumXSqr := sumXSqr + per * per
        sumXY := sumXY + val * per
        
        
    slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX)
    average = sumY / len5
    intercept = average - slope * sumX / len5 + slope
    [slope, average, intercept]

var float tmp = na
[s, a, i] = calcSlope(src5, len5)

vwap1=(i + s * (len5 - offset))
sdev = stdev(vwap, len5)
dev = multiplier * sdev
top=vwap1+dev
bott=vwap1-dev

//
z1 = vwap1 + dev
x1 = vwap1 - dev

low1 = crossover(close, x1)  
high1 = crossunder(close, z1) 

plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)  //plot for sell icon



//
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

l = buy
s1 = sell
        
if l and testPeriod()
    strategy.entry("buy", strategy.long)
if s1 and testPeriod()
    strategy.entry("sell", strategy.short)