Strategi perdagangan reversal dual oscillation tracking

Penulis:ChaoZhang, Tanggal: 2023-10-11 14:47:25
Tag:

Gambaran umum

Ini adalah strategi perdagangan reversal dual oscillation tracking yang menggabungkan strategi reversal indikator stokastik dan indikator volatilitas Chaikin untuk mendapatkan sinyal perdagangan yang lebih andal. Strategi ini bertujuan untuk menangkap keuntungan pada titik pembalikan tren dan cocok untuk perdagangan jangka menengah hingga panjang.

Logika Strategi

Strategi ini terdiri dari dua bagian:

  1. Strategi Pembalikan Indikator Stochastic

Bagian ini menggunakan garis cepat dan garis lambat dari indikator stokastik untuk menghasilkan sinyal perdagangan. Ini pergi panjang ketika harga penutupan lebih rendah dari harga penutupan sebelumnya selama dua hari berturut-turut dan garis cepat berada di atas garis lambat. Ini pergi pendek ketika harga penutupan lebih tinggi dari harga penutupan sebelumnya selama dua hari berturut-turut dan garis cepat berada di bawah garis lambat.

  1. Indikator Volatilitas Chaikin

Indikator ini menghitung perubahan spread antara harga tertinggi dan terendah dalam jangka waktu tertentu. Ketika spread melebar, itu menandakan meningkatnya volatilitas dan posisi pendek dapat diambil. Ketika spread menyempit, itu menandakan penurunan volatilitas dan posisi panjang dapat diambil.

Sinyal perdagangan akhir adalah kombinasi dari sinyal dari kedua bagian. Ketika sinyal indikator stokastik dan sinyal indikator volatilitas setuju, sinyal itu diambil. Jika tidak, tidak ada perdagangan yang diambil jika kedua sinyal tidak setuju.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menggabungkan dua jenis indikator yang berbeda meningkatkan akurasi sinyal.

  2. Mekanisme konfirmasi ganda mengurangi sinyal palsu dan mengontrol risiko.

  3. Berfokus pada pembalikan sebagai arah perdagangan utama memungkinkan keuntungan pada titik perubahan tren.

  4. Pengaturan parameter yang fleksibel membuatnya dapat disesuaikan dengan produk dan kerangka waktu yang berbeda.

  5. Penyesuaian parameter indikator memungkinkan optimalisasi.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Sinyal pembalikan mungkin salah dinilai, menyebabkan kerugian.

  2. Shorting saat volatilitas meningkat tajam memiliki risiko kerugian. Stop loss dapat mengendalikan risiko.

  3. Kombinasi indikator ganda mungkin gagal selama perubahan pasar yang ekstrim. Pertimbangkan untuk menunda perdagangan sampai indikator stabil.

  4. Pemantauan dua indikator meningkatkan beban kerja.

Arah Peningkatan

Peningkatan strategi ini meliputi:

  1. Uji lebih banyak kombinasi parameter untuk menemukan parameter optimal.

  2. Tambahkan indikator konfirmasi lainnya seperti volume dll untuk membuat konfirmasi ganda.

  3. Tambahkan mekanisme stop loss seperti trailing stop, zone stop dll untuk lebih mengendalikan risiko.

  4. Mengoptimalkan manajemen uang seperti pecahan tetap, Kelly dll untuk meningkatkan efisiensi keuntungan.

  5. Uji penerapan di lebih banyak produk dan kerangka waktu dengan pengaturan parameter yang berbeda.

Kesimpulan

Strategi ini menggabungkan indikator ganda untuk sinyal perdagangan, dengan fokus pada penangkapan pembalikan. Ini memiliki keuntungan seperti akurasi sinyal yang tinggi dan kontrol risiko yang baik, dan memiliki ruang untuk perbaikan. Dengan pengoptimalan parameter, stop loss, manajemen uang, dll., Ini dapat ditingkatkan menjadi strategi perdagangan pembalikan jangka menengah hingga panjang yang kuat.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/07/2019
// 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
// Chaikin's Volatility indicator compares the spread between a security's
// high and low prices. It quantifies volatility as a widening of the range
// between the high and the low price.
// You can use in the xPrice1 and xPrice2 any series: Open, High, Low, Close, HL2,
// HLC3, OHLC4 and ect...
//
// 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

ChaikinVolatility(Length, ROCLength, Trigger) =>
    pos = 0
    xPrice1 = high
    xPrice2 = low
    xPrice = xPrice1 - xPrice2
    xROC_EMA = roc(ema(xPrice, Length), ROCLength)
    pos := iff(xROC_EMA < Trigger, 1,
	         iff(xROC_EMA > Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chaikin Volatility", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCV = input(10, minval=1)
ROCLength = input(12, minval=1)
Trigger = input(0, minval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChaikinVolatility = ChaikinVolatility(LengthCV, ROCLength, Trigger)
pos = iff(posReversal123 == 1 and posChaikinVolatility == 1 , 1,
	   iff(posReversal123 == -1 and posChaikinVolatility == -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 banyak