Handelsstrategie zur Umkehrung der Dynamik

Schriftsteller:ChaoZhang, Datum: 2023-10-09 17:21:27
Tags:

Übersicht

Die Momentum-Reversal-Handelsstrategie kombiniert die Vorteile von Umkehr- und Momentum-Strategien, indem sie Signale aus beiden Indikatorenarten verwendet, um gegenwärtige Trades an Wendepunkten für den Gewinn zu tätigen.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

Der erste Teil ist die 123 Umkehrstrategie.

  • Sie gehen lang, wenn der Schlusskurs für 2 aufeinanderfolgende Tage höher als der vorherige Schlusskurs ist und der 9-tägige langsame Stochastische Oszillator unter 50 liegt.

  • Der Schlusskurs ist für zwei aufeinanderfolgende Tage niedriger als der vorherige Schlusskurs und der 9-tägige schnelle Stochastische Oszillator liegt über 50.

Der zweite Teil ist der gefilterte Impulsindikator.

  1. Berechnung der Preisänderung xMom = Schließen - Schließen [1]

  2. Berechnen Sie die absolute Preisänderung xMomAbs = abs ((close - close[1])

  3. Filter xMom, wenn er unter der Schwelle liegt Filter auf 0

  4. Filter xMomAbs, wenn er unter der Schwelle liegt Filter auf 0

  5. Berechnung der Summe der gefilterten xMom über n Tage nSum

  6. Berechnung der Summe der gefilterten xMomAbs über n Tage nAbsSum

  7. Berechnung des Impulswerts: nRes = 100 * nSum / nAbsSum

  8. Erzeugen von Signal auf Basis von nRes und Bands TopBand, LowBand

Dieser Indikator filtert kleine Schwankungen aus und extrahiert Dynamikinformationen aus den wichtigsten Trends.

Schließlich werden Handelssignale erzeugt, wenn sich die Signale beider Indikatoren auf Long oder Short ausrichten.

Analyse der Vorteile

Die Strategie vereint die Vorteile von zwei verschiedenen Indikatorenarten zur Verbesserung der Signalqualität:

  1. Die Umkehrstrategie 123 erfasst Umkehrtrends an Wendepunkten und vermeidet so, dass man in die Falle gerät.

  2. Der gefilterte Impulsindikator konzentriert sich nur auf große Bewegungen, filtert Lärm aus und erfasst wichtige Trends.

  3. Durch die Kombination werden Signale verifiziert und falsche Trades reduziert, wodurch die Gewinnrate erhöht wird.

Risikoanalyse

Zu den wichtigsten Risiken dieser Strategie gehören:

  1. Die Analyse eines einzigen Zeitrahmens kann größere Trends übersehen.

  2. Die Einstellungen statischer Parameter können sich nicht an Marktveränderungen anpassen.

  3. Eine doppelte Überprüfung kann einige Chancen verpassen und das Gewinnpotenzial verringern.

  4. Es können auch Signalen mit geringer Qualität verifiziert werden, was zu Verlusten führt.

Optimierungsrichtlinien

Die Strategie kann in mehreren Aspekten optimiert werden:

  1. Fügen Sie mehrere Zeitrahmen-Verifizierung hinzu, um nicht gefangen zu werden.

  2. Anpassungsparameter zur Anpassung der Indikatoren an die Marktbedingungen verwenden.

  3. Optimieren Sie die Filterschwelle, um falsche Signale zu reduzieren.

  4. Einheitliche Handelsverluste

  5. Anpassung der Positionsgröße zur Optimierung der Effizienz der Kapitalnutzung.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Momentum-Reversal-Strategie die Stärken von Umkehr- und gefilterten Momentum-Strategien kombiniert, um die Signalkvalität und Rentabilität zu einem gewissen Grad zu verbessern.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/09/2019
// 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
// This indicator plots a CMO which ignores price changes which are less 
// than a threshold value. CMO was developed by Tushar Chande. A scientist, 
// an inventor, and a respected trading system developer, Mr. Chande developed 
// the CMO to capture what he calls "pure momentum". For more definitive 
// information on the CMO and other indicators we recommend the book The New 
// Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented 
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change, etc. 
// It is most closely related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly 
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
// movements in price are not hidden. Once calculated, smoothing can be applied to the 
// CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
// changes in net momentum using the 0 level. The bounded scale also allows you to 
// conveniently compare values across different securities.
//
// 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

fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

CMOfilt(Length,Filter, TopBand, LowBand) =>
    pos = 0
    xMom = close - close[1]
    xMomAbs = abs(close - close[1])
    xMomFilter = fFilter(xMom, xMomAbs, Filter)
    xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter)
    nSum = sum(xMomFilter, Length)
    nAbsSum = sum(xMomAbsFilter, Length)
    nRes =   100 * nSum / nAbsSum
    pos := iff(nRes > TopBand, 1,
	         iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMOfilt", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
Filter = input(3, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOfilt = CMOfilt(LengthCMO,Filter, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOfilt == 1 , 1,
	   iff(posReversal123 == -1 and posCMOfilt == -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