Trend nach der kurzfristigen Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-16 11:11:32
Tags:

img

Übersicht

Diese Strategie ist eine kurzfristige Handelsstrategie, die auf der Grundlage mehrerer Indikatoren einen Trend identifiziert. Sie kombiniert 8 Indikatoren, darunter WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI und WTO, um die Trendrichtung zu bestimmen und entsprechend Handelsentscheidungen zu treffen.

Strategie Logik

Die Strategie berechnet und beurteilt zunächst die Trendrichtung der acht Indikatoren - WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI und WTO.

Der WOW-Indikator beurteilt auf der Grundlage der Position des Körpers einen Auf- oder Abwärtstrend. Der Körper in der Nähe des oberen Bandes zeigt auf Aufwärtstrend, während der Körper in der Nähe des unteren Bandes auf Abwärtstrend hinweist.

Der BMA-Indikator beurteilt den Trend anhand des Verhältnisses zwischen dem offenen und dem geschlossenen SMA.

Der BarColor-Indikator beurteilt den Trend anhand der Farbe der Kerzen.

Der SuperTrend-Indikator beurteilt den Trend basierend auf der Preisposition im Vergleich zur Durchschnittsspanne.

Der DI-Indikator beurteilt den Trend anhand des Verhältnisses zwischen positiver und negativer Richtungsbewegung.

Der TTS-Indikator beurteilt den Trend anhand des Preisstandorts im Vergleich zum gleitenden Durchschnitt.

Der RSI-Indikator beurteilt die Trendrichtung anhand des Niveaus des relativen Stärkenindex.

Der WTO-Indikator beurteilt die Trendrichtung anhand des Wellen-Trend-Oszillators.

Die Strategie zählt dann die Anzahl der bullischen Signale aus den 8 Indikatoren und zeichnet die SILA-Unterstützungs- und Widerstandslinien entsprechend.

Wenn mehrere Indikatoren auf Aufschwung hindeuten, wird ein Kaufsignal erzeugt, wenn der Schluß über der untersten Unterstützungslinie liegt.

Darüber hinaus nutzt die Strategie auch Kerzenmuster, um Rückzugsmöglichkeiten zu finden und Einstiegspunkte zu verbessern.

Vorteile der Strategie

  1. Die Kombination mehrerer Indikatoren verbessert die Genauigkeit

Die Strategie verwendet acht gemeinsame Trendindikatoren, um den Trend aus verschiedenen Gesichtspunkten zu bestimmen, wodurch die Genauigkeit und Zuverlässigkeit der Trendbeurteilung verbessert wird.

  1. SILA-System identifiziert Signalstärke

Die SILA-Unterstützungs-/Widerstandslinien spiegeln die Anzahl der bullischen/bärenischen Signale wider. Mehr Linien zeigen stärkere Signale an. Dies hilft den Händlern, die Stärke der Handelssignale weiter zu bewerten.

  1. Kerzenmuster verbessern die Einstiegspunkte

Die Strategie sucht nach Rückzugsmöglichkeiten, die auf Kerzenmustern basieren, um bessere Einstiegspunkte zu finden, wenn sich der Trend umkehrt.

Risiken der Strategie

  1. Mögliche Konflikte zwischen den Indikatoren

Die vielfältigen Indikatoren können manchmal widersprüchliche Signale erzeugen und die Entscheidungsfindung erschweren.

  1. Parameter müssen möglicherweise optimiert werden

Die Standardparameter sind möglicherweise nicht optimal. Eine weitere Optimierung kann erforderlich sein, um die besten Ergebnisse zu erzielen.

  1. Systemrisiken berücksichtigen

Die schwarzen Schwäne können normale technische Signale ungültig machen.

  1. Abzugsrisiko

Der Trend kann bei Marktkorrekturen zu größeren Abzügen führen.

Verbesserung der Strategie

  1. Optimierung der Indikatorparameter

Systematisch Parameter wie Periode- und Wertniveaus testen und optimieren, um die optimale Parameterkombination zu finden.

  1. Hinzufügen von Stop Loss Methoden

Überlegen Sie, ob Sie die Bewegungs- oder Prozentsatz-Stop-Loss-Kontrolle für die Abzüge ergreifen.

  1. Einbeziehung von Volumenindikatoren

Kombination von Trendindikatoren mit Volumenindikatoren wie MAVP und OBV zur Verbesserung der taktischen Entscheidungen.

  1. Verwalten von Positionsgrößen

Untersuchen Sie optimale Positionsgrößen für verschiedene Marktstadien und erhöhen Sie die Größe, wenn der Trend deutlicher wird.

Schlussfolgerung

Zusammenfassend ist dies ein Multi-Indikator-Trend nach einer kurzfristigen Handelsstrategie. Es bestimmt die Trendrichtung mithilfe mehrerer Indikatoren und identifiziert die Stärke der Signale mit dem SILA-System, ergänzt durch Kerzenmuster für Einstiegsverbesserungen. Die Strategie kann die Genauigkeit verbessern, aber das Risiko widersprüchlicher Signale sollte beachtet werden. Weitere Verbesserungen können durch Parameteroptimierung, Stop-Loss-Optimierung, Volumenintegration usw. erzielt werden.


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

// (c) Noro
//2017

//@version=2

strategy(title="Noro's SILA v1.6L Strategy", shorttitle="SILA v1.6L str", overlay=true)

//settings
sensup = input(5, title="Uptrend-sensivity", minval = -8, maxval = 8)
sensdn = input(5, title="Downtrend-sensivity", minval = -8, maxval = 8)
usewow = input(true, title="Use trend-indicator WOW?")
usebma = input(true, title="Use trend-indicator BestMA?")
usebc = input(true, title="Use trend-indicator BarColor?")
usest = input(true, title="Use trend-indicator SuperTrend?")
usedi = input(true, title="Use trend-indicator DI?")
usetts = input(true, title="Use trend-indicator TTS?")
usersi = input(true, title="Use trend-indicator RSI?")
usewto = input(true, title="Use trend-indicator WTO?")
dist = input(100, title="Distance SILA-lines", minval = 0, maxval = 100)
usetl = input(true, title="Need SILA-lines?")
usebgup = input(true, title="Need uptrend-background?")
usebgdn = input(true, title="Need downtrend-background?")
usealw = input(true, title="Need background always?")
usearr = input(true, title="Need new-trend-arrows?")
useloco = input(true, title="Need locomotive-arrows?")
usemon = input(true, title="Need money?") //joke

// WOW 1.0 method
lasthigh = highest(close, 30)
lastlow = lowest(close, 30)
center = (lasthigh +lastlow) / 2
body = (open + close) / 2
trend1 = body > center ? 1 : body < center ? -1 : trend1[1]
trend2 = center > center[1] ? 1 : center < center[1] ? -1 : trend2[1]
WOWtrend = usewow == true ? trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : WOWtrend[1] : 0

// BestMA 1.0 method
SMAOpen = sma(open, 30)
SMAClose = sma(close, 30)
BMAtrend = usebma == true ? SMAClose > SMAOpen ? 1 : SMAClose < SMAOpen ? -1 : BMAtrend[1] : 0

// BarColor 1.0 method
color = close > open ? 1 : 0
score = color + color[1] + color[2] + color[3] + color[4] + color[5] + color[6] + color[7]
BARtrend = usebc == true ? score > 5 ? 1 : score < 3 ? -1 : BARtrend[1] : 0

// SuperTrend mehtod
Up = hl2 - (7 * atr(3))
Dn = hl2 + (7 * atr(3))
TrendUp = close[1] > TrendUp[1] ? max(Up, TrendUp[1]) : Up
TrendDown = close[1] < TrendDown[1] ? min(Dn, TrendDown[1]) : Dn
SUPtrend = usest == true ? close > TrendDown[1] ? 1: close < TrendUp[1]? -1 : SUPtrend[1] : 0

//DI method
th = 20
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/14) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/14) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/14) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DItrend = usedi == true ? DIPlus > DIMinus ? 1 : -1 : 0

//TTS method (Trend Trader Strategy)
//Start of HPotter's code
//Andrew Abraham' idea
avgTR      = wma(atr(1), 21)
highestC   = highest(21)
lowestC    = lowest(21)
hiLimit = highestC[1]-(avgTR[1] * 3)
loLimit = lowestC[1]+(avgTR[1] * 3)
ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos =	iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0))) 
//End of HPotter's code

TTStrend = usetts == true ? pos == 1 ? 1 : pos == -1 ? -1 : TTStrend[1] : 0

//RSI method
RSIMain = (rsi(close, 13) - 50) * 1.5
rt = iff(RSIMain > -10, 1, iff(RSIMain < 10, -1, nz(pos[1], 0))) 
RSItrend = usersi == true ? rt : 0

//WTO ("WaveTrend Oscilator") method by LazyBear
//Start of LazyBear's code
esa = ema(hlc3, 10)
d = ema(abs(hlc3 - esa), 10)
ci = (hlc3 - esa) / (0.015 * d)
tci = ema(ci, 21)
//End of LazyBear's code

WTOtrend = usewto == true ? tci > 0 ? 1 : tci < 0 ? -1 : 0 : 0

//plots
trends = usemon == true ? WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend: -1 * (WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend)
pricehi = sma(high, 10)
pricelo = sma(low, 10)
per = usetl == 1 ? dist / 10000 : 0

color1 = usetl == true ? trends > 0 ? blue : na : na
plot(pricelo * (1 - per), color=color1, linewidth=1, title="SILA-line")
color2 = usetl == true ? trends > 1 ? blue : na : na
plot(pricelo * (1 - 2 * per), color=color2, linewidth=1, title="SILA-line")
color3 = usetl == true ? trends > 2 ? blue : na : na
plot(pricelo * (1 - 3 * per), color=color3, linewidth=1, title="SILA-line")
color4 = usetl == true ? trends > 3 ? blue : na : na
plot(pricelo * (1 - 4 * per), color=color4, linewidth=1, title="SILA-line")
color5 = usetl == true ? trends > 4 ? blue : na : na
plot(pricelo * (1 - 5 * per), color=color5, linewidth=1, title="SILA-line")
color6 = usetl == true ? trends > 5 ? blue : na : na
plot(pricelo * (1 - 6 * per), color=color6, linewidth=1, title="SILA-line")
color7 = usetl == true ? trends > 6 ? blue : na : na
plot(pricelo * (1 - 7 * per), color=color7, linewidth=1, title="SILA-line")
color8 = usetl == true ? trends > 7 ? blue : na : na
plot(pricelo * (1 - 8 * per), color=color8, linewidth=1, title="SILA-line")

color10 = usetl == true ? trends < 0 ? black : na : na
plot(pricehi * (1 + per), color=color10, linewidth=1, title="SILA-line")
color11 = usetl == true ? trends < -1 ? black : na : na
plot(pricehi * (1 + 2 * per), color=color11, linewidth=1, title="SILA-line")
color12 = usetl == true ? trends < -2 ? black : na : na
plot(pricehi * (1 + 3 * per), color=color12, linewidth=1, title="SILA-line")
color13 = usetl == true ? trends < -3 ? black : na : na
plot(pricehi * (1 + 4 * per), color=color13, linewidth=1, title="SILA-line")
color14 = usetl == true ? trends < -4 ? black : na : na
plot(pricehi * (1 + 5 * per), color=color14, linewidth=1, title="SILA-line")
color15 = usetl == true ? trends < -5 ? black : na : na
plot(pricehi * (1 + 6 * per), color=color15, linewidth=1, title="SILA-line")
color16 = usetl == true ? trends < -6 ? black : na : na
plot(pricehi * (1 + 7 * per), color=color16, linewidth=1, title="SILA-line")
color17 = usetl == true ? trends < -7 ? black : na : na
plot(pricehi * (1 + 8 * per), color=color17, linewidth=1, title="SILA-line")

//background
col = usebgup == true and trends >= sensup ? 1 : usebgdn == true and trends <= (-1 * sensdn) ? -1 : usealw == true ? col[1] : 0
bgcolor = col == 1 ? lime : col == -1 ? red : na
//bgcolor(bgcolor, transp=70)

//arrows
posi = trends >= sensup ? 1 : trends <= (-1 * sensdn) ? -1 : posi[1]
arr = usearr == true ? posi == 1 and posi[1] < 1 ? 1 : posi == -1 and posi[1] > -1 ? -1 : na : na
//plotarrow(arr == 1 ? 1 : na, title="UpArrow", colorup=blue, maxheight=60, minheight=50, transp=0)
//plotarrow(arr == -1 ? -1 : na, title="DnArrow", colordown=blue, maxheight=60, minheight=50, transp=0)

//locomotive
bar = close > open ? 1 : close < open ? -1 : 0
locotop = bar == -1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0
locobot = bar == 1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
entry = useloco == false ? 1 : posi == posi[1] ? (locotop == 1 and posi == -1) or (locobot == 1 and posi == 1) ? 1 : entry[1] : 0
//plotarrow(locobot == 1 and entry[1] == 0 and posi == 1 ? 1 : na, title="UpLocomotive", colorup=yellow, maxheight=60, minheight=50, transp=0)
//plotarrow(locotop == 1 and entry[1] == 0 and posi == -1 ? -1 : na, title="DnLocomotive", colordown=yellow, maxheight=60, minheight=50, transp=0)

longCondition = arr == 1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = arr == -1
if (shortCondition)
    strategy.entry("Short", strategy.short)

Mehr