Die Ressourcen sind geladen. Beförderung...

Umkehrprognose und Oszillator-Kombinationsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-10-10 10:39:44
Tags:

Übersicht

Diese Strategie kombiniert Umkehr- und Oszillatorstrategien, um zuverlässigere Handelssignale zu erhalten. Sie beinhaltet die Umkehrprognosestrategie und die Chande Forecast Oscillator-Strategie und führt Trades aus, wenn beide Strategien gleichzeitig Kauf- oder Verkaufssignale erzeugen.

Strategie Logik

  1. Strategie zur Umkehrung der Vorhersage

    • Verwenden Sie den Stochastischen Oszillator, um Überkauf- und Überverkaufszustände zu identifizieren

    • Nehmen Sie kontradirektionale Trades ein, wenn der Preis eine Umkehrung über 2 Baren schließt, während der Stochastische Oszillator überkaufte oder überverkaufte Niveaus erreicht

  2. Chande Prognose Oszillator Strategie

    • Verwenden Sie die lineare Regressionsanalyse, um Preise vorherzusagen

    • Der Oszillator zeichnet die prozentuale Differenz zwischen Schlusskurs und Prognosepreis

    • Erzeugen von Handelssignalen, wenn sich der tatsächliche Preis erheblich vom prognostizierten Preis abweist

  3. Strategievorschriften

    • Gleichzeitige Berechnung von Signalen aus beiden Strategien

    • Erstellen Sie nur tatsächliche Handelssignale, wenn beide Strategien sich auf Kauf oder Verkauf einigen

    • Kombination filtert falsche Signale von einzelnen Strategien und verbessert die Zuverlässigkeit

Analyse der Vorteile

  1. Die Kombination mehrerer Strategien ermöglicht eine robustere Marktbewertung

  2. Filtert falsche Signale aus, die bei einzelnen Indikatoren auftreten können

  3. Umkehrstrategie erfasst kurzfristige Umkehrchancen

  4. Chande-Oszillator beurteilt langfristige Trends genau

  5. Flexible Stochastische Oszillatorparameter, die sich an sich ändernde Märkte anpassen können

  6. Kombination von Analysetechniken zur Nutzung verschiedener Handelsperspektiven

Risikoanalyse

  1. Obwohl verlässlicher, reduzieren Combo-Strategien die Signalfrequenz

  2. Erfordert eine komplexe Optimierung mehrerer Strategieparameter

  3. Schwierige Zeitumkehrungen, Verlustrisiken

  4. Lineare Regressionsprognose unwirksam bei Preisschwankungen

  5. Beobachten Sie die Preisdifferenz vom Stochastischen Oszillator

  6. Daten aus Backtests unzureichend, Live-Leistung unsicher

Möglichkeiten zur Verbesserung

  1. Optimierung des Stochastischen Oszillators durch Verkürzung der Perioden K und D

  2. Testen Sie mehr lineare Regressionsperioden, um optimale zu finden

  3. Hinzufügen von Stop-Loss zu Limit-Loss

  4. Die Logik des Stochastischen Oszillators wird extrem.

  5. Analyse der statistischen Eigenschaften von Handelsinstrumenten

  6. Mehr Indikatoren wie MACD für die Robustheit

Zusammenfassung

Diese Strategie synthetisiert mehrere analytische Techniken und verbessert die Signalqualität durch Kombination und erfasst sowohl kurzfristige Umkehrungen als auch langfristige Trends. Aber die Live-Performance muss validiert und die Parameter entsprechend abgestimmt werden. Der konzeptionelle Rahmen kann auf mehr Indikatoren und Strategien erweitert werden, um praktische Handelsleitlinien zu bieten. Insgesamt bietet die Strategie sinnvolle Innovationen und Referenzen.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/08/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
// The Chande Forecast Oscillator developed by Tushar Chande The Forecast 
// Oscillator plots the percentage difference between the closing price and 
// the n-period linear regression forecasted price. The oscillator is above 
// zero when the forecast price is greater than the closing price and less 
// than zero if it is below.
//
// 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

ChandeForecastOscillator(Length, Offset) =>
    pos = 0
    xLG = linreg(close, Length, Offset)
    xCFO = ((close -xLG) * 100) / close
    pos := iff(xCFO > 0, 1,
           iff(xCFO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chande Forecast Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCFO = input(14, minval=1)
Offset = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChandeForecastOscillator = ChandeForecastOscillator(LengthCFO, Offset)
pos = iff(posReversal123 == 1 and posChandeForecastOscillator == 1 , 1,
	   iff(posReversal123 == -1 and posChandeForecastOscillator == -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