Kombinationsstrategie zur Optimierung des Signal-Rausch-Verhältnisses mit doppelter Stoßumkehr


Erstellungsdatum: 2023-11-01 16:57:13 zuletzt geändert: 2023-11-01 16:57:13
Kopie: 3 Klicks: 599
1
konzentrieren Sie sich auf
1617
Anhänger

Kombinationsstrategie zur Optimierung des Signal-Rausch-Verhältnisses mit doppelter Stoßumkehr

Überblick

Die Strategie kombiniert die Double-Shock-Umkehr-Strategie und die Signal-Noise-Ratio-Optimierung-Strategie zu einer stärkeren und stabileren Handelsstrategie. Die Strategie zielt darauf ab, ein genaueres Handelssignal an Trendwendepunkten zu senden.

Strategieprinzip

Die Doppel-Schock-Umkehr-Strategie beurteilt, ob der Preis zwei aufeinanderfolgende Handelstage umgekehrt ist, indem die schnellen und langsamen K-Werte der letzten 14 Tage berechnet werden. Wenn ein Umkehr auftritt, ist ein schneller K unter 50 ein Kaufsignal und ein schneller K über 50 ein Verkaufssignal.

Eine Strategie zur Optimierung des Signal-Noise-Ratios ist die Berechnung des Signal-Noise-Ratios für die letzten 21 Tage und die Glättung mit einem 29-Tage-Simple-Moving-Average. Wenn der Signal-Noise-Ratio über seinen Moving-Average geht, ist dies ein Verkaufssignal, wenn er über seinen Moving-Average geht, ist es ein Kaufsignal.

Schließlich wird die Strategie nur dann ein entsprechender Kauf- oder Verkaufsschritt vorgenommen, wenn die Doppel-Schock-Umkehr-Strategie und die Signal-Rausch-Verhältnis-Optimierungs-Strategie gleichzeitig ein und dasselbe Kauf- oder Verkaufssignal aussenden.

Strategische Stärkenanalyse

  1. Die Kombination von mehreren Strategien ermöglicht ein genaueres Handelssignal und verhindert falsche Signale einer einzigen Strategie.

  2. Die Doppel-Schock-Umkehr-Strategie erfasst Trend-Umkehrpunkte, die Signal-Noise-Ratio-Optimierung-Strategie filtert Falschsignale, und die Kombination von beiden ermöglicht den exakten Handel an Umkehrpunkten.

  3. Optimierte Berechnungsparameter, wie z. B. 14-Tage-Schnell-Slow-Stoch-Parameter, 21-Tage-Signal-Lärm-Verhältnis-Zyklus, können die jüngsten Trends widerspiegeln, ohne von zu viel Lärm beeinflusst zu werden.

  4. Die Verwendung von Doppelbestätigungssignalen kann das Risiko für Transaktionen erheblich reduzieren und unnötige Verluste verringern.

Strategische Risikoanalyse

  1. Die Umkehrsignale können verzögert sein, so dass man nicht kaufen kann, wenn der Wert absolut niedrig ist, und verkauft, wenn er hoch ist. Die Verzögerung kann durch Anpassung der Parameter verkürzt werden.

  2. Bei einer doppelten Signalbestätigung können einige Handelschancen verpasst werden, die Bestätigungsbedingungen können entsprechend gelockert werden, aber das Risiko wird erhöht.

  3. Die Signal-Nichts-Verhältnis-Parameter müssen optimiert werden. Wenn die Perioden nicht korrekt eingestellt sind, können wichtige Signale verpasst oder falsche Signale ausgegeben werden.

  4. Die Notwendigkeit, mehrere Kennzahlen gleichzeitig zu überwachen, erhöht die Komplexität der Strategie, wobei die Optimierung des Codes und die Berechnung der Ressourcen berücksichtigt werden müssen.

Richtung der Strategieoptimierung

  1. Testen Sie mehr Kombinationen von Indikatoren, um bessere Kombinationssignale zu finden. Wie MACD, RSI usw.

  2. Optimierung der Parameter für die Umkehrstrategie mit doppelter Erschütterung, um die Umkehrsignale zeitnah und präziser zu machen.

  3. Optimierung der Parameter-Periode für die Nachrichten-Lärm-Verhältnis, um die optimale Balance zu finden.

  4. Ein Stop-Loss-Strategie wurde hinzugefügt, um die möglichen Verluste eines einzelnen Handels zu kontrollieren.

  5. Erwägen Sie, die Parameter automatisch zu optimieren, um die Strategie anpassungsfähiger zu machen.

Zusammenfassen

Die Strategie liefert ein stabiles Handelssignal an Trendwendepunkten durch die Kombination von Doppel-Schock-Umkehr-Strategie und Signal-Noise-Ratio-Optimierung. Optimierte Parameter können die Wahrscheinlichkeit von Falschsignalen erheblich reduzieren und das Handelsrisiko durch die Anwendung des Doppel-Bestätigungsprinzips verringern. Die Strategie kann die Kennzahlen-Parameter weiter optimieren und Stop-Loss-Maßnahmen hinzufügen, um bessere Ergebnisse zu erzielen.

Strategiequellcode
/*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 )