Doppel-Umkehrüberschneidungs-Selektivstrategie

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

img

Übersicht

Die Dual Reversal Overlap Selective Strategy kombiniert Umkehrhandelsstrategien mit Überkauf-Überverkaufsfiltern, um eine Vermögensallokation und einen zeitlichen Handel zu erreichen.

Strategie Logik

Die Strategie besteht aus zwei sich überschneidenden Teilstrategien:

  1. 123 Umkehrstrategie

Diese Strategie verwendet Umkehrsignale, die auf zwei aufeinanderfolgenden Tagen der Umkehrung des Schlusskurses basieren. Insbesondere geht es lang, wenn die Schlusskurse in den letzten zwei Tagen steigen und der 9-tägige langsame Stochastik unter 50 liegt, und geht kurz, wenn die Schlusskurse in den letzten zwei Tagen fallen und der 9-tägige schnelle Stochastik über 50 liegt. Diese Umkehrstrategie zielt darauf ab, kurzfristige Trendumkehrungen zu erfassen.

  1. DSS-Oszillatorstrategie

Diese Strategie verwendet den DSS-Oszillator zur Überkauf-Überverkaufsanalyse. Es geht lang, wenn der 5-Tage-MA unter dem 10-Tage-MA und dem 20-Überverkaufsniveau liegt, und geht kurz, wenn der 5-Tage-MA über dem 10-Tage-MA und dem 80-Überkaufsniveau liegt. Diese Überkauf-Überverkaufsstrategie hilft, unnötige Trades in irrationalen Zonen zu vermeiden.

Das endgültige Signal wird nur erzeugt, wenn beide Strategien übereinstimmen.

Analyse der Vorteile

  1. Kombiniert die Vorteile von Umkehr- und Überkauf-Überverkauf-Strategien - kurzfristige Umkehrungen zu erfassen und dabei irrationale Zone-Trades zu vermeiden.

  2. Einfache Logik und wenige Parameter machen 123 Umkehrung einfach zu implementieren.

  3. Die Kombination verbessert die Signalzuverlässigkeit durch Verringerung falscher Signale.

  4. Durch eine flexible Einstellung der Parameter wird die Strategie an die verschiedenen Märkte angepasst.

Risikoanalyse

  1. Umkehrstrategien haben Picking up pennies Risiko und Whipsaw in verschiedenen Märkten.

  2. Die DSS-Optimierung ist schwierig und parametersensitiv.

  3. Divergente Signale können Handelschancen verpassen.

  4. Einfache Preisindikatoren begrenzen die Rentabilität.

Lösungen:

  1. Verkürzung der Aufbewahrungszeiten zur Verringerung des Whipsaw-Risiko.

  2. Eine sorgfältige Einstellung der Parameter basierend auf erfolgreichen Beispielen.

  3. Fügen Sie Filter hinzu, um die Strategie zu verbessern.

  4. Optimieren Sie den Eintrittszeitpunkt oder die Positionsgröße.

Anweisungen zur Verbesserung

  1. Versuche andere Umkehrindikatoren, um die Genauigkeit des Signals zu verbessern.

  2. Erforschen Sie alternative Überkauf-Überverkauf-Indikatoren wie den RSI.

  3. Fügen Sie Stop Loss hinzu, um Gewinne zu erzielen und Verluste zu begrenzen.

  4. Optimierung der Parameter für verschiedene Märkte.

  5. Betrachten Sie die Anpassung dynamischer Parameter.

  6. Bauen Sie maschinelle Lernmodelle, um Signale zu erzeugen.

Schlussfolgerung

Die Dual Reversal Overlap Selective Strategy bietet sowohl Asset Allocation als auch Timing Trading-Funktionalität durch die Kombination von Reversal- und Overbought-Oversold-Strategien. Sie bietet Vorteile wie flexible Parameter, einfache Logik und einfache Implementierung, wodurch Geräuschgeschäfte in irrationalen Zonen effektiv ausgefiltert werden. Es gibt jedoch Einschränkungen wie Umkehrrisiken und Parameteroptimierungsschwierigkeiten. Zukünftige Verbesserungen können durch Hinzufügen von Stop Loss, Parameteroptimierung, Einbeziehung von maschinellem Lernen usw. erzielt werden.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/03/2020
// 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
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// 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

DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold) =>
    pos = 0
    xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
    xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
    xTrigger = ema(xDSS, TriggerLen)
    pos := iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	         iff(xTrigger > xDSS and xTrigger > Overbought, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & DSS Bressert", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDSS = DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold)
pos = iff(posReversal123 == 1 and posDSS == 1 , 1,
	   iff(posReversal123 == -1 and posDSS == -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