Kombination aus doppelter gleitender Durchschnittsstrategie und stochastischem Indikator


Erstellungsdatum: 2024-01-12 11:16:52 zuletzt geändert: 2024-01-12 11:16:52
Kopie: 0 Klicks: 567
1
konzentrieren Sie sich auf
1617
Anhänger

Kombination aus doppelter gleitender Durchschnittsstrategie und stochastischem Indikator

Überblick

In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, die eine Kombination aus einer doppelten Durchschnittsstrategie und einem zufälligen Indikator verwendet. Die Strategie nutzt die Trend-Tracking-Fähigkeiten der beweglichen Durchschnittslinie und die Überkauf-Überverkauf-Eigenschaften des zufälligen Indikators zusammen, um ein Handelssignal zu erzeugen.

Strategieprinzip

Die Strategie besteht aus zwei Teilen:

  1. Die Strategie der Gleichstellung

Mit dem schnellen und dem langsamen Durchschnittskurs entstehen ein Gold-Kauf-Signal und ein Deck-Verkauf-Signal. Das schnelle Durchschnittskurs ermöglicht eine schnellere Erfassung von Preisveränderungen, während das langsame Durchschnittskurs ein falsches Signal filtert.

  1. Zufällige Indikatoren

Überkaufen und Überverkaufen werden anhand der Schwingungseigenschaften eines Zufallsindikators erkannt. Wenn der Zufallsindikator über der langsamen Linie liegt, ist dies ein Überkaufsignal, wenn der Zufallsindikator unter der langsamen Linie liegt, ist dies ein Überverkaufsignal.

Die Signalkombination aus zwei Teilen bildet das endgültige Handelssignal. Die Doppel-Even-Linie-Strategie verfolgt die wichtigsten Trends, und die Zufallsindikatoren helfen, unvorteilhafte Trends zu vermeiden.

Strategische Stärkenanalyse

  • Die Vorteile der kombinierten Doppel-Gleichgewicht- und Zufalls-Indikatoren sind stabiler.
  • Das ist eine sehr gute Methode, um die Entwicklung zu verfolgen.
  • Anpassbare Parameter für unterschiedliche Marktbedingungen.

Strategische Risikoanalyse

  • Doppel-Even-Linien sind leicht zu Fehlsignalen.
  • Ein falsches Setting der Parameter des Zufallsindikators kann den Trend verpassen.
  • Die Parameter müssen an die Veränderungen der Situation angepasst werden.

Die Risiken können durch Optimierung der Parameterkombinationen verringert werden, und Stop-Loss kann eingesetzt werden, um Verluste zu kontrollieren.

Richtung der Strategieoptimierung

Die Strategie kann optimiert werden durch:

  1. Testen Sie die Auswirkungen verschiedener Parameter auf die Effektivität der Strategie.
  2. Die Auswirkungen verschiedener Zufallsindikatorparameter auf die Strategie-Stabilität werden getestet.
  3. Die Einführung von Trendfiltern erhöht die Strategie-Gewinnrate.
  4. Es wurde ein dynamischer Tracking-Stopp-Mechanismus zur Verlustkontrolle eingerichtet.

Zusammenfassen

Die Strategie nutzt die Kombination aus einer doppelten Gleichgewichts-Strategie und den Vorteilen der Zufallsindikatoren. Sie verfolgt die wichtigsten Trends des Marktes und vermeidet die Umkehrung von negativen Verhaltensweisen. Sie kann durch die Optimierung der Parameterkombinationen bessere Strategieeffekte erzielen. Die Einbeziehung von Stop-Loss- und Trendfiltern kann die Strategie verbessern.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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
// As the name suggests, High low bands are two bands surrounding the underlying’s 
// price. These bands are generated from the triangular moving averages calculated 
// from the underlying’s price. The triangular moving average is, in turn, shifted 
// up and down by a fixed percentage. The bands, thus formed, are termed as High 
// low bands. The main theme and concept of High low bands is based upon the triangular 
// 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

    
HLB(Length, PercentShift) =>
    pos = 0.0
    xTMA = sma(sma(close, Length), Length)
    xHighBand = xTMA + (xTMA * PercentShift / 100)
    xLowBand = xTMA - (xTMA * PercentShift / 100)
    pos :=iff(close > xHighBand, 1,
           iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High Low Bands", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_HLB = input(14, minval=1)
PercentShift = input(1, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLB = HLB(Length_HLB, PercentShift)
pos = iff(posReversal123 == 1 and posHLB == 1 , 1,
	   iff(posReversal123 == -1 and posHLB == -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 )