Strategi Dagangan Pembalikan Pengesahan Berganda

Penulis:ChaoZhang, Tarikh: 2023-11-14 13:42:47
Tag:

img

Ringkasan

Strategi perdagangan pembalikan pengesahan berganda menggabungkan corak pembalikan 123 dengan penunjuk RSI Stochastic untuk mewujudkan sistem pembalikan purata yang kukuh. Ia menyediakan dua lapisan pengesahan sebelum memasuki perdagangan, meningkatkan ketepatan dan kestabilan strategi.

Logika Strategi

Strategi ini terdiri daripada dua komponen:

  1. 123 Pembalikan

Ia menggunakan corak 123 untuk mengenal pasti potensi pembalikan.

  • Long jika close < previous close dan current close > previous close dan 9-day Slow Stochastic < 50

  • Pendek jika ditutup > penutupan sebelum dan penutupan semasa < penutupan sebelum dan 9-hari Fast Stochastic > 50

Ini memberikan isyarat awal untuk pembalikan harga.

  1. RSI Stokastis

Ia menggunakan penunjuk Stochastic pada RSI untuk pengesahan tambahan:

  • Mengira RSI dengan panjang 14

  • Mengira Stochastic RSI, dengan panjang 14, untuk mendapatkan K

  • Ambil 3 hari SMA K untuk mendapatkan D

  • Jika K melintasi di atas 80, ia menunjukkan panjang. Jika K melintasi di bawah 20, ia menunjukkan pendek.

Pertukaran hanya akan bermula apabila kedua-dua pihak bersetuju.

Analisis Kelebihan

Kelebihan utama strategi ini adalah pengesahan berganda, yang meningkatkan ketepatan dan mengurangkan whipsaws.

  1. 123 pembalikan membolehkan pengesanan awal pembalikan trend

  2. Stochastic RSI mengesahkan isyarat pembalikan

  3. Gabungan meningkatkan kadar kemenangan dan mengurangkan isyarat palsu

  4. Parameter boleh dioptimumkan untuk pasaran yang berbeza

  5. Pelaksanaan mudah dan bersih untuk perdagangan langsung

Analisis Risiko

Beberapa risiko untuk dipertimbangkan untuk strategi ini:

  1. Risiko pembalikan yang gagal, pembalikan palsu boleh menyebabkan kerugian.

  2. Risiko pengoptimuman parameter. Parameter yang buruk membawa kepada prestasi yang buruk.

  3. Risiko yang berlebihan, pengoptimuman yang berlebihan terhadap data sejarah.

  4. Risiko frekuensi perdagangan yang tinggi. Lebih banyak isyarat boleh meningkatkan kos.

  5. Risiko ralat kod, bug dalam logik pelaksanaan.

Penyelesaian yang mungkin:

  1. Gunakan ukuran kedudukan yang berhati-hati untuk mengehadkan kerugian.

  2. Menggunakan kaedah pengoptimuman berjalan maju.

  3. Fokus pada kestabilan parameter, bukan pulangan yang tinggi.

  4. Penyesuaian keadaan untuk mengurangkan kekerapan perdagangan.

  5. Uji semula kod logik.

Peluang Peningkatan

Strategi ini boleh ditingkatkan dalam bidang berikut:

  1. Penyesuaian parameter untuk pasaran tertentu.

  2. Menambah penapis untuk mengelakkan pembalikan tergesa-gesa.

  3. Memasukkan mekanisme stop loss.

  4. Mengurangkan kekerapan perdagangan dengan penapis tambahan.

  5. Melaksanakan saiz kedudukan dinamik.

  6. Penyesuaian untuk kos transaksi.

Kesimpulan

Strategi pembalikan pengesahan berganda adalah sistem yang stabil dan praktikal untuk pembalikan purata jangka pendek. Ia mengimbangi kepekaan untuk menangkap pembalikan dan ketepatan dari pengesahan berganda. Dengan pengoptimuman dan pengubahsuaian yang betul, ia dapat secara berkesan melengkapkan portfolio strategi kuantitatif. Tetapi parameter harus kukuh dan risiko seperti overfit dan whipsaws harus diuruskan dengan bijak dalam perdagangan langsung.


/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/2021
// 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
// This strategy used to calculate the Stochastic RSI
//
// 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


SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) =>
    pos = 0.0
    Source = close
    rsi1 = rsi(Source, lengthRSI)
    k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
    d = sma(k, smoothD)
    d_cross_80 = cross(d,TopBand) 
    pos := iff(k > TopBand, 1,
              iff(k < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Stochastic RSI ----")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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 )

Lebih lanjut