Duale Strategien zur Trendumkehrerfassung und zum dynamischen Stop-Loss


Erstellungsdatum: 2024-02-05 09:54:13 zuletzt geändert: 2024-02-05 09:54:13
Kopie: 0 Klicks: 558
1
konzentrieren Sie sich auf
1617
Anhänger

Duale Strategien zur Trendumkehrerfassung und zum dynamischen Stop-Loss

Überblick

Die Strategie ist eine Doppelstrategie, die eine Strategie kombiniert, um einen Trend umzukehren und eine Strategie, um den Trend zu stoppen, um die Dynamik zu stoppen und gleichzeitig den Trend zu stoppen, um das Risiko zu kontrollieren.

Strategieprinzip

Strategien zur Trendwende-Erfassung

Die Strategie basiert auf den Zufallsindikatoren K und D. Sie erzeugt ein Kaufsignal, wenn der Preis zwei Tage in Folge fällt, während K über D steigt. Sie erzeugt ein Verkaufsignal, wenn der Preis zwei Tage in Folge steigt, während K unter D fällt. Auf diese Weise kann eine Trendwende erfasst werden.

Dynamische Stop-Loss-Strategie

Die Strategie basiert auf der Preisvolatilität und der Schwäche, um einen dynamischen Stop-Loss-Stand zu setzen. Sie berechnet die Schwankungen der Preishöhen und -tiefpunkte in der jüngsten Zeit und kombiniert diese mit der Schwäche, um zu entscheiden, ob der Stop-Loss-Preis derzeit im Auf- oder Abwärtskanal ist. So kann der Stop-Loss-Stand an die Marktumgebung angepasst werden.

Beide Strategien werden kombiniert, um das Risiko zu kontrollieren, indem ein dynamischer Stop-Loss eingestellt wird, während das Umkehrsignal erfasst wird.

Analyse der Stärken

  • Das ist ein sehr einfacher Weg, um die Wendepunkte zu erfassen.
  • Dynamische Stop-Loss-Einstellungen, die die Stop-Loss-Position an die Marktumgebung anpassen
  • Doppelte Signalbestätigung und Vermeidung von Falschsignalen
  • Risiken kontrollieren, Gewinn garantieren

Risikoanalyse

  • Risiko einer Umkehrungsschwäche.
  • Risiken bei der Einstellung von Parametern. Fehlende Einstellung von Parametern kann die Effektivität der Strategie beeinträchtigen
  • Liquiditätsrisiko. Einige Handelsarten sind schlecht liquide und können nicht aufgehalten werden

Risiken können durch Optimierung von Parametern, strenge Stop-Losses und die Auswahl von flüssigen Sorten kontrolliert werden.

Optimierungsrichtung

  • Optimierung von Zufallsparametern zur Suche nach der optimalen Kombination
  • Optimieren Sie die Stop-Loss-Parameter, um die optimale Stop-Loss-Position zu finden
  • Mehr Filterbedingungen, um Positionen in einem wackligen Markt zu vermeiden
  • Erweiterung der Positionsverwaltungsmodule zur Kontrolle des maximalen Verlusts

Die Strategie soll durch eine umfassende Optimierung so weit wie möglich einen Trendwechsel erfassen, wobei die Risiken zu kontrollieren sind.

Zusammenfassen

Die Strategie kombiniert eine Doppelstrategie, die sowohl eine Trendwende als auch einen dynamischen Stop-Loss erfasst. Die Strategie ist eine relativ stabile Short-Line-Handelsstrategie, die sowohl die Preiswende als auch das Risiko einer dynamischen Stop-Loss-Kontrolle erfasst. Durch die kontinuierliche Optimierung der Überwachung wird erwartet, dass die Strategie einen stabilen Ertrag erzielt.

Strategiequellcode
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/12/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
//  The Kase Dev Stops system finds the optimal statistical balance between letting profits run, 
//  while cutting losses.  Kase DevStop seeks an ideal stop level by accounting for volatility (risk),
//  the variance in volatility (the change in volatility from bar to bar), and volatility skew 
//  (the propensity for volatility to occasionally spike incorrectly).
//  Kase Dev Stops are set at points at which there is an increasing probability of reversal against 
//  the trend being statistically significant based on the log normal shape of the range curve.  
//  Setting stops will help you take as much risk as necessary to stay in a good position, but not more.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

KaseDevStops(Length, Level) =>
    pos = 0.0
    RWH = (high - low[Length]) / (atr(Length) * sqrt(Length))
    RWL = (high[Length] - low) / (atr(Length) * sqrt(Length))
    Pk = wma((RWH-RWL),3)
    AVTR = sma(highest(high,2) - lowest(low,2), 20)
    SD = stdev(highest(high,2) - lowest(low,2),20)
    Val4 = iff(Pk>0, highest(high-AVTR-3*SD,20), lowest(low+AVTR+3*SD,20))
    Val3 = iff(Pk>0, highest(high-AVTR-2*SD,20), lowest(low+AVTR+2*SD,20))
    Val2 = iff(Pk>0, highest(high-AVTR-SD,20), lowest(low+AVTR+SD,20))
    Val1 = iff(Pk>0, highest(high-AVTR,20), lowest(low+AVTR,20))
    ResPrice = iff(Level == 4, Val4,
                 iff(Level == 3, Val3,
                  iff(Level == 2, Val2,
                     iff(Level == 1, Val1, Val4))))
    pos := iff(close < ResPrice , -1, 1)
    pos

strategy(title="Combo Backtest 123 Reversal & Kase Dev Stops", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthKDS = input(30, minval=2, maxval = 100)
LevelKDS = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4])
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKaseDevStops = KaseDevStops(LengthKDS, LevelKDS)
pos = iff(posReversal123 == 1 and posKaseDevStops == 1 , 1,
	   iff(posReversal123 == -1 and posKaseDevStops == -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 )