Strategi ganda penangkapan tren pembalikan dan stop loss dinamis


Tanggal Pembuatan: 2024-02-05 09:54:13 Akhirnya memodifikasi: 2024-02-05 09:54:13
menyalin: 0 Jumlah klik: 558
1
fokus pada
1617
Pengikut

Strategi ganda penangkapan tren pembalikan dan stop loss dinamis

Ringkasan

Strategi ini merupakan strategi ganda, yang menggabungkan strategi menangkap reversal dan strategi stop loss dinamis, yang bertujuan untuk menangkap reversal dan mengatur stop loss dinamis untuk mengendalikan risiko.

Prinsip Strategi

Strategi untuk menangkap perubahan tren

Strategi ini didasarkan pada indikator acak K dan D. Ini menghasilkan sinyal beli ketika harga turun selama dua hari berturut-turut dan K naik di atas D. Ini menghasilkan sinyal jual ketika harga naik selama dua hari berturut-turut dan K turun di bawah D. Ini dapat menangkap tren pembalikan harga.

Strategi Stop Loss Dinamis

Strategi ini didasarkan pada volatilitas harga dan bias yang mengatur posisi stop loss dinamis. Ini menghitung pergerakan harga di titik tinggi dan rendah dalam beberapa waktu terakhir, kemudian dikombinasikan dengan bias yang menilai apakah saat ini ada di saluran atas atau saluran bawah, sehingga secara dinamis mengatur harga stop loss. Ini dapat menyesuaikan posisi stop loss sesuai dengan kondisi pasar.

Kedua strategi ini digunakan dalam kombinasi untuk mengatur stop loss dinamis untuk mengendalikan risiko pada saat menangkap sinyal pembalikan.

Analisis Keunggulan

  • Dapat menangkap titik balik harga, cocok untuk perdagangan reversal
  • Pengaturan Stop Loss Dinamis, dapat menyesuaikan posisi Stop Loss sesuai dengan kondisi pasar
  • Konfirmasi sinyal ganda untuk menghindari sinyal palsu
  • Mengontrol Risiko, Menjamin Keuntungan

Analisis risiko

  • Risiko kegagalan reversal.
  • Risiko pengaturan parameter. Pengaturan parameter yang tidak tepat dapat mempengaruhi efek kebijakan
  • Risiko likuiditas. Beberapa jenis transaksi kurang likuiditas dan tidak dapat dihentikan

Risiko dapat dikendalikan dengan mengoptimalkan parameter, penutupan ketat, dan memilih varietas yang memiliki likuiditas yang baik.

Arah optimasi

  • Optimalkan parameter indikator acak untuk mencari kombinasi parameter yang optimal
  • Optimalkan parameter stop loss untuk menemukan posisi stop loss yang optimal
  • Meningkatkan kondisi penyaringan untuk menghindari posisi di pasar yang bergejolak
  • Menambahkan modul manajemen posisi untuk mengendalikan kerugian maksimum

Dengan optimasi komprehensif, strategi dapat menangkap reversal sebanyak mungkin dengan mengontrol risiko.

Meringkaskan

Strategi ini menggabungkan strategi ganda untuk menangkap reversal dan stop loss dinamis, yang dapat menangkap titik reversal harga dan mengatur risiko kontrol stop loss dinamis, merupakan strategi perdagangan garis pendek yang relatif stabil. Dengan terus mengoptimalkan pemantauan, strategi ini diharapkan untuk mendapatkan keuntungan yang stabil.

Kode Sumber Strategi
/*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 )