Strategi Stop Loss Dinamis Kase

Penulis:ChaoZhang, Tanggal: 2023-09-13 14:08:47
Tag:

Strategi ini didasarkan pada pendekatan stop loss dinamis Mr. Kase, menghitung kisaran harga yang dinamis untuk menemukan stop loss yang optimal dan mengambil tingkat keuntungan untuk menyeimbangkan keuntungan dan kerugian.

Logika Strategi:

  1. Menghitung indeks rentang dinamis harga RWH dan RWL.

  2. Menghasilkan indeks tingkat penyimpangan Pk dari RWH dan RWL.

  3. Ketika Pk>0, hitung stop loss berdasarkan tingkat deviasi. Ketika Pk<0, hitung mengambil keuntungan.

  4. Ganda penyimpangan umumnya berkisar antara 1-3 penyimpangan standar.

  5. Mengambil posisi yang berlawanan ketika harga mencapai stop loss / profit.

Keuntungan:

  1. Stop/profit dinamis beradaptasi dengan perubahan volatilitas.

  2. Pegangannya tidak terlalu ketat atau terlalu longgar.

  3. Pendekatan matematika menghindari penilaian emosional dan subjektif.

Risiko:

  1. Penghentian perhitungan lag, berpotensi hilang terbaik berhenti waktu.

  2. Pengaturan parameter diperlukan untuk menyeimbangkan target dan target.

  3. Tidak ada batasan ukuran kerugian, risiko kehilangan perdagangan besar.

Singkatnya, pendekatan ini dapat secara cerdas mengoptimalkan stop dan target sampai batas tertentu tetapi masih membutuhkan backtesting yang kuat.


/*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 )

Lebih banyak