Kase Dynamische Stop Loss-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-13 14:08:47
Tags:

Diese Strategie basiert auf dem dynamischen Stop-Loss-Ansatz von Mr. Kase, bei dem der dynamische Preisbereich berechnet wird, um einen optimalen Stop-Loss zu finden und Gewinnniveaus für das Ausgleich von Gewinnen und Verlusten zu ermitteln.

Strategie Logik:

  1. Berechnen Sie die Dynamikbereichsindizes RWH und RWL des Preises.

  2. Ableitung des Abweichungsniveaus Pk aus RWH und RWL.

  3. Wenn Pk>0, berechnen Stop-Loss basierend auf Abweichungsniveau.

  4. Die Abweichungsmultiplikatoren liegen im Allgemeinen zwischen 1-3 Standardabweichungen.

  5. Nehmen Sie eine entgegengesetzte Position ein, wenn der Preis den Stop-Loss-/Profit-Wert erreicht.

Vorteile:

  1. Dynamische Stopps/Gewinne passen sich der sich ändernden Volatilität an.

  2. Die Haltestellen sind weder zu eng noch zu locker.

  3. Der mathematische Ansatz vermeidet emotionale und subjektive Urteile.

Risiken:

  1. Stoppberechnungen verzögern, möglicherweise fehlt der beste Stopp-Timing.

  2. Parameter-Tuning, die nötig ist, um Stopps und Ziele auszugleichen.

  3. Keine Begrenzung der Verlustgröße, große Verlustrisiken.

Zusammenfassend kann dieser Ansatz Stops und Ziele intelligent bis zu einem gewissen Grad optimieren, erfordert aber immer noch ein robustes Backtesting.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/10/2019
//  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.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Kase Dev Stops Backtest", overlay = true)
Length = input(30, minval=2, maxval = 100)
Level = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4])
reverse = input(false, title="Trade reverse")
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)
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