Die Strategie verwendet eine Kombination aus einem relativ starken Index (RSI) und einem zufälligen Indikator, um eine Doppelstrategie zu bilden, um den Überkauf und Überverkauf des Marktes genauer zu beurteilen und somit zuverlässigere Handelssignale zu erhalten.
In dieser Strategie hat der RSI eine Länge von 14 Zyklen, eine überkaufende Schwelle von 70 und eine überverkaufende Schwelle von 30. Der K-Wert des Zufallsindikators wird mit einem 3-Zyklen-Durchschnittswert berechnet. Der D-Wert ist der 3-Zyklen-Durchschnittswert des K-Wertes.
Die Strategie verwendet eine Kombination aus RSI-Indikatoren und Zufallsindikatoren, um ein Handelssignal zu senden:
Wenn ein zufälliger Indikator auftritt (die K-Linie überschreitet die D-Linie von unten), während der RSI-Indikator über 70 liegt, wird dies als Überkaufsignal beurteilt.
Wenn ein zufälliger Indikator ein Unterbrechen aufweist (die K-Linie durchquert die D-Linie von oben nach unten) und der RSI-Indikator unter 30 liegt, wird dies als Überverkauf beurteilt.
Diese doppelte Kombinationsstrategie nutzt die Vorteile des RSI, um Überkaufe und Überverkäufe zu beurteilen, und kombiniert die Schrittweise des Zufallsindikators, um falsche Signale zu filtern und somit zuverlässigere Handelssignale zu erzeugen.
Der größte Vorteil dieser Doppelstrategie besteht darin, dass die Falschsignale wirksam reduziert und die Signalzuverlässigkeit erhöht wird.
Wenn der RSI-Indikator allein verwendet wird, erzeugt er mehr Falschsignale. Dies liegt daran, dass der RSI-Indikator selbst nur den Überkauf und Überverkauf der Preise beurteilt und nicht die Richtung der Tendenz widerspiegelt.
Der RSI-Überkaufsignal ist sehr zuverlässig und wird als wahrer Überkauf und nicht als falscher Überkauf beurteilt.
Im Gegensatz dazu bedeutet ein K unterhalb der D-Linie, dass der Preistrend umgekehrt werden kann, und es kann ein falscher Überverkauf sein, auch wenn der RSI ein Überverkaufssignal zeigt.
Die Kombination von RSI und Zufallsindikatoren ermöglicht es daher, den Überkauf- und Überverkaufszustand der Preise sowie die Richtung der Trends besser zu erfassen und eine Vielzahl von unzuverlässigen Signalen zu filtern, was zu einer präziseren Handelszeit führt.
Die Strategie birgt auch einige Risiken, die zu beachten sind:
Die Verwendung von Doppelindikator-Kombinationen filtert zwar falsche Signale, kann aber auch einen Teil der echten Signale verpassen und somit Handelschancen verpassen.
Die Parameter des RSI und des Zufallsindikators müssen so eingestellt werden, dass sie eine gute Beziehung haben, z. B. zu kurze RSI-Zyklen, unangemessene Glattigkeit des Zufallsindikators K und D, was die Genauigkeit des Signals beeinträchtigt.
Wenn der Indikator ein Signal sendet, muss er in Kombination mit anderen Faktoren wie Preisbewegungen und Transaktionsmengen bestätigt werden, um einen falschen Durchbruch zu vermeiden.
Es ist notwendig, auf systemische Risiken zu achten und bei starken Marktschwankungen blind zu handeln.
Die Strategie kann auch in folgenden Bereichen optimiert werden:
Optimierung der Parameter des RSI und der Zufallsindikatoren, um die optimale Kombination von Parametern zu finden. Parameter können durch Rückmeldung von Daten optimiert werden, aber auch dynamisch optimierte Parameter mit Hilfe von Machine-Learning-Methoden.
Erhöhung der Bestätigungsindikatoren für die Transaktionsmenge, z. B. der Transaktionsschub zur Bestätigung von Kauf- und Verkaufssignalen.
In Kombination mit Trendbestätigungsindikatoren wie beispielsweise der Moving Average kann man sich von den Schwankungen der Börse abhalten. Zum Beispiel sollte man nur dann ein Kaufsignal berücksichtigen, wenn der Trend nach oben geht.
Der Einsatz von maschinellen Lernmethoden zur Identifizierung komplexerer Kauf- und Verkaufsregeln, wie z. B. Signalen in Verbindung mit Brin-Bändern und Preisformeln, erhöht die Strategie-Stabilität.
Die Entwicklung intelligenter Diversifizierungs-Trading-Systeme mit fortschrittlichen Technologien wie Deep Learning zur Optimierung von Strategie-Regeln in einem größeren Stichprobenraum
Die RSI- und Random-Indicator-Doppelkombinationsstrategie nutzt die Vorteile der einzelnen Indikatoren durch die Idee der Integration der Indikatoren und bildet einen komplementären Effekt. Der einzelne RSI-Indikator hat eine höhere Signalfiltergenauigkeit, wodurch ein genaueres und zuverlässiges Handelssignal erzeugt wird.
/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Divergences and Hidden Divergences
//Locates bottom market and reversals
strategy("Vix FIX / StochRSI Strategy", pyramiding=9, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=3, overlay=false)
///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)
///////////// RSI
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70 , title="RSI overbought condition")
RSIOverSold = input( 30 , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)
///////////// Double strategy: RSI strategy + Stochastic strategy
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger 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%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")
//Williams Vix Fix Formula
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
//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)
//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0
//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0
plot(isOverBought, "Overbought / Crossover", style=line, color=red)
plot(filteredAlert, "Filtered Alert", style=line, color=fuchsia)
plot(aggressiveAlert, "Aggressive Alert", style=line, color=orange)
if (filteredAlert or aggressiveAlert)
strategy.entry("Long", strategy.long)
if (isOverBought)
strategy.close("Long")