Strategie zur Optimierung des Signal-Rausch-Verhältnisses durch Dual-Oszillations-Umkehrung

Schriftsteller:ChaoZhang, Datum: 2023-11-01 16:57:13
Tags:

img

Übersicht

Diese Strategie kombiniert die Dual-Oszillations-Umkehrstrategie und die Signal-Rausch-Verhältnis-Optimierungsstrategie, um eine leistungsfähigere und stabilere Handelsstrategie zu bilden.

Strategie Logik

Die doppelte Schwingungsumkehrstrategie berechnet die schnellen und langsamen K-Werte der letzten 14 Tage, um festzustellen, ob es eine Umkehrung über zwei aufeinanderfolgende Handelstage gibt. Wenn die Umkehrung stattfindet, wenn der schnelle K unter 50 liegt, ist dies ein Kaufsignal. Wenn der schnelle K über 50 liegt, ist dies ein Verkaufssignal.

Die Signal-Rauschen-Verhältnis-Optimierungsstrategie berechnet das Signal-Rauschen-Verhältnis der letzten 21 Tage und glättet es mit einem einfachen gleitenden Durchschnitt von 29 Tagen. Wenn das Signal-Rauschen-Verhältnis über dem gleitenden Durchschnitt geht, ist es ein Verkaufssignal. Wenn es darunter geht, ist es ein Kaufsignal.

Schließlich wird mit dieser Strategie nur dann ein Kauf- oder Verkaufsgeschäft eingeleitet, wenn beide Strategien dasselbe Signal ausgeben.

Analyse der Vorteile

  1. Die Kombination mehrerer Strategien kann genauere Handelssignale erzeugen und falsche Signale aus einer einzigen Strategie vermeiden.

  2. Die doppelte Schwingungsumkehrstrategie erfasst Trendumkehrpunkte. Die Signal-Rausch-Verhältnis-Optimierung filtert falsche Signale aus. Sie können zusammen bei Umkehrungen genau handeln.

  3. Optimierte Parameter wie die 14-tägige schnelle/langsame Stochastik und die 21-tägige Signal-Rauschen-Periode erfassen die jüngsten Trends ohne zu viel Lärm.

  4. Die doppelten Bestätigungssignale reduzieren das Handelsrisiko erheblich und vermeiden unnötige Verluste.

Risikoanalyse

  1. Die Umkehrsignale können Absolute Tiefen oder Spitzen verfehlen.

  2. Bei einer Doppelsignalbestätigung könnten einige Handelschancen verpasst werden.

  3. Die Parameter des Signal-Rausch-Verhältnisses müssen optimiert werden, da falsche Perioden fehlende oder falsche Signale verursachen können.

  4. Die Überwachung mehrerer Indikatoren erhöht die Komplexität.

Optimierungsrichtlinien

  1. Testen Sie mehr Indikatorkombinationen, um bessere Kombo-Signale wie MACD, RSI usw. zu finden.

  2. Optimierung der Parameter der Umkehrstrategie für genauere und zeitnahe Signale.

  3. Optimieren Sie die Zeiten des Signal-Rausch-Verhältnisses, um das optimale Gleichgewicht zu finden.

  4. Hinzufügen von Stop-Loss-Strategien zur Kontrolle potenzieller Verluste bei einzelnen Trades.

  5. Betrachten Sie Methoden des maschinellen Lernens zur automatischen Optimierung von Parametern für eine bessere Anpassungsfähigkeit.

Schlussfolgerung

Diese Strategie kombiniert eine doppelte Schwingungsumkehrung und Signal-Rausch-Verhältnis-Strategien, um stabile Signale an Trendumkehrpunkten zu liefern. Optimierte Parameter reduzieren falsche Signale signifikant und die doppelte Bestätigung senkt die Handelsrisiken. Weitere Optimierungen wie Indikatorparameter, Stop Loss können die Leistung verbessern. Insgesamt ist dies eine stabile Strategie mit praktischem Handelswert.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 196/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The signal-to-noise (S/N) ratio. 
// And Simple Moving Average.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

SignalToNoise(length) =>
    StN = 0.0
    for i = 1 to length-1
        StN := StN + (1/close[i])/length
    StN := -10*log(StN)

StN(length,Smooth) =>
    pos = 0.0
    StN = SignalToNoise(length)
    SMAStN = sma(StN, Smooth)
    pos := iff(SMAStN[0] > StN[0] , -1,
    	     iff(SMAStN[0] < StN[0], 1, 0)) 
    pos

strategy(title="Combo Backtest 123 Reversal & Signal To Noise", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
lengthStN = input(title="Days", type=input.integer, defval=21, minval=2)
SmoothStN =  input(title="Smooth", type=input.integer, defval=29, minval=2)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStN = StN(lengthStN,SmoothStN)
pos = iff(posReversal123 == 1 and posStN == 1 , 1,
	   iff(posReversal123 == -1 and posStN == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mehr