Strategi Arbitraj Peralihan Ganda

Penulis:ChaoZhang, Tarikh: 2024-02-06 09:58:04
Tag:

img

Ringkasan

Strategi arbitraj pembalikan berganda adalah algoritma arbitraj yang mengintegrasikan penunjuk pembalikan berganda. Ia menggabungkan sistem pembalikan 123 dan sub-strategi osilator ayunan Gann dan menghasilkan isyarat perdagangan apabila kedua-dua sub-strategi memberikan isyarat pada masa yang sama untuk menjalankan operasi arbitraj.

Logika Strategi

Strategi ini terdiri daripada dua sub-strategi:

  1. 123 Sistem Pembalikan: Ia adalah dari buku How I Tripped My Money in The Futures Market oleh Ulf Jensen, Halaman 183. Peraturan dagangnya adalah: apabila harga penutupan lebih tinggi daripada harga penutupan sebelumnya dan lebih rendah daripada harga penutupan 2 hari yang lalu, pergi panjang apabila garis K yang perlahan berada di bawah 50; apabila harga penutupan lebih rendah daripada harga penutupan sebelumnya dan lebih tinggi daripada harga penutupan 2 hari yang lalu, pergi pendek apabila garis K yang cepat berada di atas 50.

  2. Gann Swing Oscillator: Ia diadaptasi dari buku Robert Krausz A W.D. Gann Treasure Discovered. Ia menilai arah turun naik pasaran dengan mengira kenaikan dan kejatuhan harga tertinggi dan terendah dalam tempoh tertentu.

Logik perdagangan strategi arbitraj ini ialah: apabila arah isyarat kedua-dua sub-strategi konsisten, isyarat perdagangan sebenar dihasilkan. Isyarat panjang adalah apabila kedua-dua sub-strategi memberikan isyarat panjang pada masa yang sama; isyarat pendek adalah apabila kedua-dua sub-strategi memberikan isyarat pendek pada masa yang sama.

Analisis Kelebihan

Kelebihan terbesar strategi ini ialah dengan mengintegrasikan isyarat kedua-dua sub-strategi, ia dapat menapis isyarat palsu dengan berkesan dan meningkatkan ketepatan isyarat perdagangan. Kedua-dua sub-strategi masing-masing mempunyai kekuatan mereka sendiri. Sistem pembalikan 123 dapat menangkap trend pembalikan tiba-tiba, sementara osilator ayunan Gann dapat menentukan kematangan pembalikan trend. Menggabungkan keduanya dapat menjadikan isyarat perdagangan lebih boleh dipercayai, dengan itu meningkatkan kestabilan strategi.

Analisis Risiko

Risiko utama strategi ini adalah bahawa kebarangkalian arah isyarat perdagangan yang tidak konsisten dari kedua-dua sub-strategi agak besar, yang boleh menyebabkan isyarat perdagangan yang tidak mencukupi. Di samping itu, sub-strategi itu sendiri juga mempunyai risiko isyarat palsu tertentu. Gabungan kedua-dua faktor ini boleh menyebabkan jumlah perdagangan yang tidak mencukupi untuk strategi, sehingga tidak dapat sepenuhnya menangkap peluang pasaran.

Untuk mengurangkan risiko, parameter sub-strategi boleh diselaraskan untuk meningkatkan kekerapan perdagangan secara sederhana, atau penunjuk lain boleh digabungkan untuk membantu menapis isyarat palsu.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengatur parameter sub-strategi untuk mengoptimumkan kekerapan dagangan;
  2. Tambah penilaian penunjuk teknikal lain untuk meningkatkan kualiti isyarat;
  3. Mengoptimumkan berat sub-strategi berdasarkan produk dan jangka masa yang berbeza;
  4. Tambahkan mekanisme stop loss untuk mengawal kerugian transaksi tunggal.

Ringkasan

Strategi arbitraj pembalikan berganda membentuk isyarat perdagangan yang agak kuat dengan mengintegrasikan dua jenis strategi pembalikan yang berbeza. Ia dapat menapis bunyi bising dengan berkesan dan meningkatkan kualiti isyarat, yang sesuai untuk menangkap peluang pembalikan di pasaran. Walau bagaimanapun, kebarangkalian isyarat yang tidak konsisten dari sub-strategi agak besar, yang boleh menyebabkan kekerapan perdagangan yang tidak mencukupi. Di samping itu, tetapan parameter strategi gabungan itu sendiri agak kompleks, yang memerlukan ujian dan pengoptimuman yang mencukupi untuk mencapai hasil yang terbaik.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/11/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 Gann Swing Oscillator has been adapted from Robert Krausz's book, 
// "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps 
// define market swings. 
//
// 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

    
GannSO(Length) =>
    pos = 0.0
    xGSO = 0.0
    xHH = highest(Length)
    xLL = lowest(Length)
    xGSO:= iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], 1,
             iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], -1, nz(xGSO[1],0)))
    pos := iff(xGSO > 0, 1,
    	     iff(xGSO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Gann Swing Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthGSO = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posGannSO = GannSO(LengthGSO)
pos = iff(posReversal123 == 1 and posGannSO == 1 , 1,
	   iff(posReversal123 == -1 and posGannSO == -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