Grundsolide quantitative VIP-Strategie


Erstellungsdatum: 2023-12-19 13:54:05 zuletzt geändert: 2023-12-19 13:54:05
Kopie: 1 Klicks: 665
1
konzentrieren Sie sich auf
1621
Anhänger

Grundsolide quantitative VIP-Strategie

Überblick

Die Strategie, die als VIP-Quantitative Strategie von Rock-Solid bezeichnet wird, kombiniert den modifizierten William SMA und den SSL Channel, um einen stabilen und zuverlässigen Quantitative Trading-Framework zu schaffen.

Grundsätze

Die Strategie kombiniert zwei Indikatoren, einer ist der verbesserte William SMA Indikator, der die Richtung des Trends durch Berechnung des Mittelpreises pro K-Linie bestimmt und dann die Index-Moving-Average-Methode anwendet. Der andere ist der SSL-Channel-Indikator, der den Moving-Average der höchsten und niedrigsten Preise verwendet, um den Preiskanal zu bestimmen und den aktuellen Trend zu beurteilen.

Wenn der verbesserte William SMA-Indikator ein Kaufsignal ausgibt, d.h. eine Goldfork, entscheiden wir in Kombination mit dem SSL-Kanal-Indikator, ob der Preis innerhalb des Kanals angemessen ist, und wir eröffnen eine Kaufposition an diesem Punkt, wenn die K-Linie-Einheit vollständig unter der unteren Grenze des Kanals liegt.

Vorteile

  1. Durch die Kombination der beiden Indikatoren wird das Kaufsignal zuverlässiger gemacht und falsche Durchbrüche vermieden.
  2. Der verbesserte William SMA-Indikator ermöglicht eine bessere Präzision bei der Bestimmung von Trendwendepunkten.
  3. Der SSL-Channel-Indikator kann die Preiskanäle eindeutig bestimmen und hohe Käufe vermeiden.
  4. Die Indikator-Moving-Average-Methode ist eine bessere Methode, um langfristige Trends zu beurteilen.

Risiken und Lösungen

  1. In extremen Situationen kann der Stop-Loss-Punkt leicht ausgelöst werden. Der Stop-Loss-Range kann entsprechend erweitert werden.
  2. Die Moving Average-Systeme sind empfindlich gegenüber kurzfristigen Marktgeräuschen und können falsche Signale erzeugen. Die Mittelwertparameter können entsprechend erhöht werden, um die Filterwirkung zu verbessern.
  3. Die falsche Einstellung der Parameter beeinflusst auch die Strategie-Performance. Die Parameter können durch Rückmeldung optimiert werden, um die optimale Kombination von Parametern zu finden.

Optimierungsrichtung

  1. Verschiedene Arten von Moving Averages, wie EMA, VWMA usw., können getestet werden, um die am besten geeigneten Mittelwertindikatoren zu finden.
  2. Es kann auch ein Verkehrsmessgerät eingesetzt werden, um ein Signal in niedrigen Bereichen zu vermeiden.
  3. Versuchen Sie mit verschiedenen Methoden, wie z. B. Donchian-Methoden, um die Grenzen zu verlässlich zu machen.
  4. Weitere Hilfsindikatoren, wie MACD, RSI, etc. können hinzugefügt werden, um den Zeitpunkt des Kaufs zu bestätigen.

Zusammenfassen

Diese Strategie erstellt eine stabile, zuverlässige Quantifizierungs-Trading-Framework durch die geschickte Kombination der verbesserten William SMA-Indikatoren und SSL-Channel-Indikatoren. Sie hat eine starke Fähigkeit, Marktlärm zu filtern und gleichzeitig das Risiko eines hohen Buy-ins zu vermeiden. Wenn die Parameter richtig eingestellt und einige Optimierungen hinzugefügt werden, ist es eine sehr Outperforming-Strategie.

Strategiequellcode
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
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/
// © Darshana_Alwis

//@version=5
strategy("VIP", overlay=true, initial_capital=1000,currency=currency.USD,default_qty_type=strategy.percent_of_equity,default_qty_value=100,pyramiding=0)
//SSS = Sultan+Saud Strategy

//The original idea of the code belonges to saudALThaidy
//The strategy code is basically made out of two other indicators, edited and combined by me.
// 1- NSDT HAMA Candles => https://www.tradingview.com/script/k7nrF2oI-NSDT-HAMA-Candles/
// 2- SSL Channel => https://www.tradingview.com/script/6y9SkpnV-SSL-Channel/


//MA INFO
WickColor = input.color(color.rgb(80, 80, 80, 100), title='Wick Color', tooltip='Suggest Full Transparency.')
LengthMA = input.int(100, minval=1, title='MA Line Length', inline='MA Info')
TakeProfit = input.float(1, minval=0, title='Take Profit Percentage', step=1)
UseStopLose = input.bool(false, title='Use Stop Percentage')
StopLose = input.float(1, minval=0, title='StopLose Percentage', step=1)

MASource = close

ma(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) :
     type == "EMA" ? ta.ema(source, length) :
     type == "SMMA (RMA)" ? ta.rma(source, length) :
     type == "WMA" ? ta.wma(source, length) :
     type == "VWMA" ? ta.vwma(source, length) :
     na

ma1_color  = color.rgb(230, 172, 0)
ma1 = ma(high, 200, "SMA")

ma2_color  = color.red
ma2 = ma(low, 200, "SMA")

Hlv1 = float(na)
Hlv1 := close > ma1 ? 1 : close < ma2 ? -1 : Hlv1[1]
sslUp1   = Hlv1 < 0 ? ma2 : ma1
sslDown1 = Hlv1 < 0 ? ma1 : ma2

Color1 = Hlv1 == 1 ? ma1_color : ma2_color
fillColor1 = color.new(Color1, 90)

highLine1 = plot(sslUp1, title="UP", linewidth=2, color = Color1)
lowLine1 = plot(sslDown1, title="DOWN", linewidth=2, color = Color1)

OpenLength = 25
HighLength = 20
LowLength = 20
CloseLength = 20


     
SourceOpen = (open[1] + close[1]) / 2
SourceHigh = math.max(high, close)
SourceLow = math.min(low, close)
SourceClose = (open + high + low + close) / 4

funcCalcMA1(src1, len1) => ta.ema(src1, len1)
funcCalcOpen(SourceOpen, OpenLength) => ta.ema(SourceOpen, OpenLength)
funcCalcHigh(SourceHigh, HighLength) => ta.ema(SourceHigh, HighLength)
funcCalcLow(SourceLow, LowLength) => ta.ema(SourceLow, LowLength)
funcCalcClose(SourceClose, CloseLength) => ta.ema(SourceClose, CloseLength)

MA_1 = funcCalcMA1(MASource, LengthMA)

CandleOpen = funcCalcOpen(SourceOpen, OpenLength)
CandleHigh = funcCalcHigh(SourceHigh, HighLength)
CandleLow = funcCalcLow(SourceLow, LowLength)
CandleClose = funcCalcClose(SourceClose, CloseLength)

//PLOT CANDLES
//-------------------------------NSDT HAMA Candels
BodyColor = CandleOpen > CandleOpen[1] ? color.rgb(230, 172, 0) : color.red
barcolor(BodyColor)
plotcandle(CandleOpen, CandleHigh, CandleLow, CandleClose, color=BodyColor, title='HAMA Candles', wickcolor=WickColor, bordercolor=na)
plot(MA_1, title='MA Line', color=BodyColor, style=plot.style_line, linewidth=2)

//------------------------------SSL Channel


plot_buy = false
avg = ((high-low)/2)+low
LongCondition = (Hlv1 == 1 and Hlv1[1] == -1) and (BodyColor == color.rgb(230, 172, 0)) and (MA_1 < avg) and (CandleHigh < avg) and (strategy.opentrades == 0)
if LongCondition
    strategy.entry("BUY with VIP", strategy.long)
    plot_buy := true

base = strategy.opentrades.entry_price(0)
baseProfit = (base+((base/100)*TakeProfit))
baseLose = (base-((base/100)*StopLose))

strategy.exit("SELL with VIP","BUY with VIP",limit = baseProfit)
if UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP",stop = baseLose)
if not UseStopLose and (close < MA_1)
    strategy.exit("SELL with VIP","BUY with VIP", stop = close)
    
plotshape(plot_buy, title="Buy Label", text="Buy", location=location.belowbar, style=shape.labelup, size=size.tiny, color=Color1, textcolor=color.white)

fill(highLine1, lowLine1, color = fillColor1)