Strategi dwi penangkapan arah aliran pembalikan dan stop loss dinamik


Tarikh penciptaan: 2024-02-05 09:54:13 Akhirnya diubah suai: 2024-02-05 09:54:13
Salin: 0 Bilangan klik: 558
1
fokus pada
1617
Pengikut

Strategi dwi penangkapan arah aliran pembalikan dan stop loss dinamik

Gambaran keseluruhan

Strategi ini adalah strategi berganda yang menggabungkan strategi menangkap trend reversal dan strategi hentian dinamik, yang bertujuan untuk menangkap trend reversal sambil menetapkan hentian dinamik untuk mengawal risiko.

Prinsip Strategi

Strategi menangkap trend berbalik

Strategi ini berdasarkan pada nilai K dan nilai D. Ia menghasilkan isyarat beli apabila harga turun dua hari berturut-turut dan nilai K naik melebihi nilai D. Ia menghasilkan isyarat jual apabila harga naik dua hari berturut-turut dan nilai K turun di bawah nilai D. Ia dapat menangkap trend pembalikan harga.

Strategi Hentikan Kerosakan Dinamik

Strategi ini berdasarkan kepada turun naik harga dan bias untuk menetapkan kedudukan stop loss yang dinamik. Ia mengira turun naik harga pada titik tinggi dan rendah dalam tempoh masa baru-baru ini, dan kemudian digabungkan dengan penilaian bias yang kini berada di saluran atas atau saluran bawah, untuk menetapkan harga stop loss secara dinamik.

Kedua-dua strategi digunakan dalam kombinasi untuk mengawal risiko dengan menetapkan stop loss dinamik semasa menangkap isyarat pembalikan.

Analisis kelebihan

  • Ia boleh menangkap titik-titik perubahan harga, sesuai untuk perdagangan berbalik.
  • Tetapkan Hentian Dinamis, boleh menyesuaikan kedudukan Hentian mengikut keadaan pasaran
  • Pengesahan isyarat ganda untuk mengelakkan isyarat palsu
  • Mengendalikan Risiko dan Menjamin Keuntungan

Analisis risiko

  • Risiko kegagalan pembalikan.
  • Pengaturan parameter berisiko. Pengaturan parameter yang tidak betul boleh menjejaskan kesan strategi
  • Risiko kecairan. Beberapa jenis dagangan kurang kecairan, tidak dapat dihentikan

Anda boleh mengawal risiko dengan mengoptimumkan parameter, menangguhkan kerugian yang ketat, dan memilih varieti yang mempunyai kecairan yang baik.

Arah pengoptimuman

  • Mengoptimumkan parameter penunjuk rawak untuk mencari kombinasi parameter terbaik
  • Mengoptimumkan parameter stop loss untuk mencari kedudukan stop loss yang terbaik
  • Menambah syarat penapisan untuk mengelakkan kedudukan di pasaran yang bergolak
  • Tambah modul pengurusan kedudukan untuk mengawal kerugian maksimum

Dengan pengoptimuman komprehensif, strategi dapat menangkap trend pembalikan sebanyak mungkin dengan risiko yang terkawal.

ringkaskan

Strategi ini menggabungkan strategi berganda untuk menangkap trend reversal dan menghentikan kerugian dinamik, yang dapat menangkap titik perubahan harga dan menetapkan risiko kawalan hentian dinamik, merupakan strategi perdagangan garis pendek yang agak stabil. Dengan pengoptimuman pemantauan yang berterusan, strategi ini dijangka memperoleh keuntungan yang stabil.

Kod 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 )