Kombination von mehrfachen Strategien

Schriftsteller:ChaoZhang, Datum: 2023-10-26
Tags:

img

Hier ist ein detaillierter Strategie-Analyse-Artikel, den ich basierend auf dem Code für Ihre Trading-Strategien geschrieben habe:

Übersicht

Diese Strategie kombiniert mehrere Faktoren, um eine umfassende Handelsstrategie zu bilden.

  1. Der Wert des Wertpapiers wird auf der Basis der in Artikel 4 Absatz 1 Buchstabe b genannten Methode berechnet.
  2. RSI - Relative Strength Index
  3. Doppelstrategie - Kombination von Stochastik und RSI
  4. CM Williams Vix Fix findet Markttiefste
  5. DMI - Index der Richtungsbewegung

Durch die Kombination mehrerer Faktoren wird versucht, die Stärken jedes einzelnen Faktors zu nutzen und die Risiken zu verringern, die mit der Abhängigkeit von einem einzigen Faktor verbunden sind.

Strategie Logik

Die in dieser Strategie verwendeten wichtigsten technischen Indikatoren sind:

  1. Stoch.RSI- Ein stochastischer Oszillator, der auf RSI-Werte anstelle des Preises angewendet wird.

  2. RSI- Relative Strength Index, Messwerte für Überkauf/Überverkauf: Über 70 ist Überkauf, unter 30 ist Überkauf.

  3. Doppelte Strategie- Kombiniert Stochastic und RSI für Handelssignale. Kaufen, wenn Stochastic %K unter %D und RSI unter Überverkaufskurs geht. Verkaufen, wenn das Gegenteil geschieht.

  4. CM Williams Vix Fix- Berechnet den Prozentbereich der Preisvolatilität über einen Rückblickzeitraum und signalisiert mögliche Umkehrungen, wenn die Schwelle überschritten wird.

  5. DMI- Richtungsbewegungsindex. Benutzt das Differential +DI/-DI zur Bestimmung der Trendrichtung/Stärke.

Durch die Integration von Signalen aus diesen Indikatoren bietet die Strategie ein robusteres System zur Erkennung von Trends und Wendepunkten.

Vorteile

  • Diversifizierung durch mehrere Faktoren, Ausgleich einzelner Schwächen
  • Bietet sowohl Trendfolgen als auch Mittelumkehrsignale
  • Identifiziert Überkauf-/Überverkaufsextreme und Umkehrungen
  • Optimierte Parameter, die auf verschiedene Marktsysteme zugeschnitten sind
  • Ein Trendrichtung/Stärkefilter

Risiken

  • Die allgemeine Robustheit von Multifaktorsystemen ist noch nicht bewiesen
  • Potenzielle Redundanz zwischen einigen Indikatoren
  • Unklare Priorität zwischen widersprüchlichen Signalen
  • Parameter-Tuning erfordert eine strenge Rückprüfung
  • Langfristige Haltemöglichkeiten

Erweiterung

  • Weitere Filterung/Optimierung des Indikatorensatzes
  • Feinabstimmungsparameter für Zielmärkte
  • Festlegung klarer Ein- und Ausstiegsregeln
  • Einbeziehung von Stop-Loss und Gewinngewinnung zur Risikokontrolle
  • Prüfungseffekt der Aufbewahrungsdauer auf die Leistung

Zusammenfassung

Diese Strategie kombiniert die Stärken von Stoch.RSI, RSI, Double Strategy, CM Williams Vix Fix und DMI. Sie liefert umfassendere Signale, erschwert aber auch die Parameteroptimierung. Weitere Verbesserungen rund um die Optimierung von Parametern, das Filtern einzigartiger Faktoren und die Definition von Handelsregeln können die Robustheit verbessern. Langfristige Lebensfähigkeit und Robustheit erfordern immer noch eine strenge Validierung. Insgesamt bietet sie ein gutes Beispiel für Multifaktorsysteme, von denen zu lernen ist.


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


     //////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+DMI  ////
   //////////////////////////////////////////////////////////////////////


//  This is a simple combination of integrated and published scripts, useful 
//  if you don't have a PRO account and want to bypass the 3 indicator limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Directional Movement Index (DMI)
//  For more details about 3) and 4) check the original scripts.


//@version=3

strategy(title="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI", shorttitle="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI")


///STOCH.RSI///
smoothK = input(3, minval=1, title="Stochastic %K Smoothing")
smoothD = input(3, minval=1, title="Stochastic %K Moving Average")
lengthRSI = input(14, minval=1, title="RSI Lenght")
lengthStoch = input(14, minval=1, title="Stochastic Lenght")
RSIprice = close
rsi1 = rsi(RSIprice, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
plot(k, color=blue, linewidth=2)
plot(d, color=silver, linewidth=2)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=78)


///RSI///
up = rma(max(change(RSIprice), 0), lengthRSI)
down = rma(-min(change(RSIprice), 0), lengthRSI)
rsi2 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi2, color=fuchsia, linewidth=2)
// band0 = hline(70, linestyle=dotted)
// band1 = hline(30, linestyle=dotted)
// fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
vrsi = rsi(RSIprice, lengthRSI)
if (not na(ks) and not na(ds))
    if (crossover(ks,ds) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="LONG")
if (crossunder(ks,ds) and ks > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="SHORT")
 
 
///CM WILLIAMS VIX FIX///
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bollinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range (Based on Percentile and LookBack Period)?")
sd = input(false, title="Show Standard Deviation Line?")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=columns, linewidth = 4, color=col, transp=85)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)


///DIRECTIONAL MOVEMENT INDEX///
len3 = input(14, minval=1, title="DI Length")
lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50)
up3 = change(high)
down3 = -change(low)
plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0)
minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0)
trur3 = rma(tr, len3)
plus3 = fixnan(100 * rma(plusDM3, len3) / trur3)
minus3 = fixnan(100 * rma(minusDM3, len3) / trur3)
sum3 = plus3 + minus3
adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3)
plot(plus3, color=green, style=circles, linewidth=2, title="+DI")
plot(minus3, color=red, style=circles, linewidth=2, title="-DI")
plot(adx3, color=aqua, style=circles, linewidth=3, title="ADX")

Mehr