Strategi perdagangan siklus dua faktor

Penulis:ChaoZhang, Tanggal: 2023-12-05 17:56:27
Tag:

img

Gambaran umum

Strategi perdagangan siklus faktor ganda adalah strategi perdagangan kuantitatif. Ini menggabungkan dua jenis indikator teknis yang berbeda untuk menghasilkan sinyal perdagangan dan melacak tren pasar untuk hasil yang berlebihan.

Keuntungan dari strategi ini adalah bahwa ia dapat menemukan peluang perdagangan dengan menggabungkan berbagai faktor dan konfirmasi ganda dapat meningkatkan keandalan sinyal dan mengurangi kemungkinan perdagangan yang salah. Pada saat yang sama, strategi ini memanfaatkan sepenuhnya perdagangan siklus, yaitu posisi stop loss dan reverse opening yang tepat waktu, yang dapat secara efektif mengendalikan risiko.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. 123 Strategi Pembalikan Strategi ini berasal dari buku How I Tripled My Money in the Futures Market oleh Ulf Jensen. Logika tradingnya adalah: ketika harga penutupan lebih tinggi dari harga penutupan sebelumnya selama dua hari berturut-turut, dan garis K lambat 9 hari lebih rendah dari 50, pergi panjang; ketika harga penutupan lebih rendah dari harga penutupan sebelumnya selama dua hari berturut-turut, dan garis K cepat 9 hari lebih tinggi dari 50, pergi pendek.

  2. Strategi Pemantauan Kembali Dukungan/Resistensi
    Strategi ini menghasilkan sinyal dengan menilai apakah harga menembus level support atau resistance utama. Ketika harga menembus harga tertinggi pada hari perdagangan sebelumnya, itu menunjukkan sinyal bullish; ketika harga menembus harga terendah pada hari perdagangan sebelumnya, itu menunjukkan sinyal bearish.

Dengan menggabungkan sinyal dari dua strategi di atas, posisi terbuka ketika kedua sinyal konsisten, sebaliknya posisi yang jelas.

Analisis Keuntungan

Strategi perdagangan siklus faktor ganda ini memiliki keuntungan berikut:

  1. Desain multi-faktor memastikan keandalan sinyal yang tinggi. Strategi pembalikan 123 dan strategi dukungan / resistensi saling memverifikasi dan dapat mengurangi sinyal yang salah.

  2. Mekanisme siklus memungkinkan strategi untuk beradaptasi dengan perubahan pasar dan secara efektif mengendalikan kerugian sepihak.

  3. Penggunaan indikator Stochastics 9 hari dapat menyaring kebisingan pasar dan membuat sinyal yang lebih jelas.

  4. Ini lebih berisiko daripada strategi faktor tunggal dan memiliki drawdowns yang lebih kecil.

Analisis Risiko

Strategi ini juga menimbulkan beberapa risiko:

  1. Hal ini sulit untuk menangkap tren dengan baik di pasar sisi, dan sering stop loss dan bukaan terbalik akan meningkatkan biaya transaksi. perluasan yang tepat dari garis stop loss dapat mengatasi ini.

  2. Pengaturan parameter dari Stochastics akan mempengaruhi kualitas sinyal. Parameter yang tidak benar dapat menyebabkan kesalahan penempatan sinyal dan degradasi kualitas. Parameter perlu diuji dan dioptimalkan berulang kali.

  3. Meskipun desain dua faktor meningkatkan kualitas sinyal, itu juga meningkatkan dampak dari pasar bising pada strategi.

Arahan Optimasi

Kita dapat lebih mengoptimalkan strategi ini dari aspek berikut:

  1. Uji Stokastis dari panjang siklus yang berbeda untuk menemukan kombinasi parameter optimal untuk menghilangkan kebisingan pasar

  2. Tambahkan filter tren untuk menyaring pasar sampingan dan hanya membuka posisi dalam tren yang jelas

  3. Mengoptimalkan algoritma pengaturan garis stop loss untuk mengurangi biaya transaksi sambil memastikan stop loss yang efektif

  4. Uji kombinasi faktor yang berbeda untuk menemukan kombinasi faktor dengan sinyal perdagangan yang lebih jelas dan strategi yang lebih stabil

Ringkasan

Dengan menggunakan desain dua faktor, strategi ini telah memperoleh kualitas sinyal yang lebih tinggi dan pengembalian yang disesuaikan dengan risiko. Pada saat yang sama, penggunaan perdagangan siklus secara efektif mengendalikan kerugian di pasar sepihak. Strategi ini telah mencapai keseimbangan yang baik antara risiko dan pengembalian. Penelitian yang lebih mendalam masih diperlukan pada optimasi parameter, pengaturan kontrol risiko, dll untuk mencapai kinerja strategi yang lebih baik.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/11/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
// Cueing Off Support And Resistance Levels, by Thom Hartle 
// modified by HPotter for trade signals.
// The related article is copyrighted material from Stocks & Commodities.
//
// 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

COSRL(SigVal) =>
    pos = 0.0
    xLow = low
    xHigh = high
    xHighD = security(syminfo.tickerid,"W", high[1])
    xLowD  = security(syminfo.tickerid,"W", low[1])
    sigpre1 = iff(xHigh <= xLowD, -1,
                 iff(xLow >= xHighD, 1, nz(pos[1], 0))) 
    sigpre2 = iff( xHigh <= xHighD, -1,
                 iff(xLow >= xLowD, 1, nz(pos[1], 0))) 
    pos := SigVal ? sigpre1 : sigpre2
    pos

strategy(title="Combo Backtest 123 Reversal & Cueing Off Support And Resistance Levels", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SigVal = input(true, title="To Line \ From Line")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCOSRL = COSRL(SigVal)
pos = iff(posReversal123 == 1 and posCOSRL == 1 , 1,
	   iff(posReversal123 == -1 and posCOSRL == -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