Strategi Dagangan Pembalikan Pengesanan Ganda

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

Ringkasan

Ini adalah strategi perdagangan pembalikan pengesanan osilasi berganda yang menggabungkan strategi pembalikan penunjuk stokastis dan penunjuk turun naik Chaikin untuk mendapatkan isyarat perdagangan yang lebih boleh dipercayai. Strategi ini bertujuan untuk menangkap keuntungan pada titik pembalikan trend dan sesuai untuk perdagangan jangka menengah hingga panjang.

Logika Strategi

Strategi ini terdiri daripada dua bahagian:

  1. Strategi Pembalikan Penunjuk Stochastic

Bahagian ini menggunakan garis cepat dan garis perlahan penunjuk stokastik untuk menjana isyarat perdagangan. Ia pergi panjang apabila harga penutupan lebih rendah daripada harga penutupan sebelumnya selama dua hari berturut-turut dan garis cepat di atas garis perlahan. Ia pergi pendek apabila harga penutupan lebih tinggi daripada harga penutupan sebelumnya selama dua hari berturut-turut dan garis cepat di bawah garis perlahan.

  1. Penunjuk Volatiliti Chaikin

Indikator ini mengira perubahan dalam spread antara harga tertinggi dan terendah dalam tempoh masa. Apabila spread meluas, ia menandakan peningkatan turun naik dan kedudukan pendek boleh diambil. Apabila spread sempit, ia menandakan penurunan turun naik dan kedudukan panjang boleh diambil.

Isyarat perdagangan akhir adalah gabungan isyarat dari kedua-dua bahagian. Apabila isyarat penunjuk stokastik dan isyarat penunjuk turun naik bersetuju, isyarat itu diambil. Jika tidak, tidak ada perdagangan yang diambil jika kedua-dua isyarat tidak bersetuju.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Menggabungkan dua jenis penunjuk yang berbeza meningkatkan ketepatan isyarat.

  2. Mekanisme pengesahan berganda mengurangkan isyarat palsu dan mengawal risiko.

  3. Memfokuskan pada pembalikan sebagai arah perdagangan utama membolehkan keuntungan pada titik perubahan trend.

  4. Tetapan parameter yang fleksibel menjadikannya dapat disesuaikan dengan produk dan jangka masa yang berbeza.

  5. Penyesuaian halus parameter penunjuk membolehkan pengoptimuman.

Analisis Risiko

Risiko strategi ini termasuk:

  1. Isyarat pembalikan boleh dinilai salah, menyebabkan kerugian. Penyesuaian parameter dapat mengurangkan kebarangkalian penilaian yang salah.

  2. Peningkatan jangka pendek semasa turun naik yang tajam mempunyai risiko kerugian. Hentikan kerugian boleh mengawal risiko.

  3. Kombinasi indikator dua mungkin gagal semasa perubahan pasaran yang melampau.

  4. Pemantauan dua penunjuk meningkatkan beban kerja. Perdagangan automatik boleh mengurangkan beban kerja.

Arahan Penambahbaikan

Penambahbaikan untuk strategi ini termasuk:

  1. Uji lebih banyak kombinasi parameter untuk mencari parameter optimum.

  2. Tambah penunjuk pengesahan lain seperti jumlah dan lain-lain untuk membuat pengesahan berbilang.

  3. Tambah mekanisme stop loss seperti trailing stop, stop zon dan lain-lain untuk mengawal risiko.

  4. Mengoptimumkan pengurusan wang seperti pecahan tetap, Kelly dll untuk meningkatkan kecekapan keuntungan.

  5. Uji kebolehgunaan di lebih banyak produk dan jangka masa dengan tetapan parameter yang berbeza.

Kesimpulan

Strategi ini menggabungkan penunjuk dua untuk isyarat perdagangan, dengan tumpuan untuk menangkap pembalikan. Ia mempunyai kelebihan seperti ketepatan isyarat yang tinggi dan kawalan risiko yang baik, dan mempunyai ruang untuk penambahbaikan. Dengan pengoptimuman kepada parameter, henti rugi, pengurusan wang dan lain-lain, ia boleh ditingkatkan menjadi strategi perdagangan pembalikan jangka menengah hingga panjang yang mantap.


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