Strategi perdagangan reversal dua faktor

Penulis:ChaoZhang, Tanggal: 2023-12-27 17:22:31
Tag:

img

Gambaran umum

Strategi ini pertama-tama menggunakan sinyal pembalikan harga untuk perdagangan, kemudian menggabungkan indikator penyaringan tren untuk skrining, menerapkan sistem yang didorong oleh faktor ganda.

Logika Strategi

Bagian pembalikan harga menggunakan sistem pembalikan 123. Sistem ini berasal dari buku How I Tripped My Money In The Futures Market oleh Ulf Jensen, halaman 183.

  1. Penutupan sebelumnya lebih rendah dari penutupan 2 hari yang lalu
  2. Penutupan saat ini lebih tinggi dari penutupan sebelumnya
  3. Stochastic lambat 9 hari lebih rendah dari 50

Ketika kondisi di atas terpenuhi, sinyal beli dihasilkan.

  1. Penutupan sebelumnya lebih tinggi dari penutupan 2 hari yang lalu
  2. Penutupan saat ini lebih rendah dari penutupan sebelumnya
  3. Stochastic cepat 9 hari lebih tinggi dari 50

Sinyal jual dihasilkan.

Tujuan dari sistem pembalikan ini adalah untuk menangkap pembalikan jangka pendek ketika harga membentuk pembalikan sementara.

Sistem ETT menilai arah tren melalui kombinasi filter dan moving average. Dalam strategi ini, fungsi utamanya adalah untuk memverifikasi sinyal pembalikan harga, menghindari operasi pembalikan ketika tidak ada tren yang jelas.

Strategi ini menggabungkan sinyal perdagangan dari kedua sub-strategi, akhirnya mewujudkan sistem perdagangan pembalikan yang didorong oleh dua faktor.

Analisis Keuntungan

Strategi perdagangan pembalikan dua faktor mengintegrasikan keuntungan dari masing-masing sub-strategi melalui kombinasi:

  1. Sistem pembalikan dapat menangkap peluang pembalikan jangka pendek
  2. Sistem ETT dapat secara efektif menyaring skenario tanpa tren yang jelas, menghindari risiko pembalikan perdagangan
  3. Dual-faktor didorong meningkatkan kualitas sinyal

Oleh karena itu, strategi ini dapat secara efektif menyaring sinyal pembalikan yang tidak valid. Dengan penilaian tren yang benar, ia melakukan operasi pembalikan, sehingga meningkatkan kinerja keseluruhan sistem perdagangan.

Analisis Risiko

Strategi perdagangan pembalikan dua faktor memiliki risiko utama berikut:

  1. Risiko harga melanjutkan tren asli setelah pembalikan. pengaturan parameter Compiler yang tidak benar dapat menyebabkan generasi sinyal pembalikan yang terlalu sering, sehingga kehilangan peluang tren.
  2. Risiko dari kesalahan penilaian sistem ETT. Sistem ETT sendiri juga memiliki kesalahan penilaian, yang menyebabkan kerugian dalam perdagangan pembalikan.
  3. Risiko yang melekat pada mekanisme yang didorong oleh dua faktor. Meskipun kurang mungkin, masih ada kemungkinan bahwa kedua sinyal perdagangan membuat penilaian yang salah pada saat yang sama, yang memperkuat kerugian.

Untuk mengurangi risiko di atas, pertimbangan termasuk menyesuaikan parameter Compiler, mengoptimalkan strategi pembalikan & ETT untuk penilaian yang lebih baik, serta memperluas rentang stop loss yang tepat untuk perdagangan pembalikan.

Optimalisasi

Strategi ini dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter sistem pembalikan untuk kombinasi parameter yang lebih baik
  2. Mengoptimalkan parameter sistem ETT untuk akurasi penilaian yang lebih tinggi
  3. Cobalah menggabungkan strategi pembalikan harga lainnya dengan ETT
  4. Tambahkan mekanisme kontrol ukuran posisi
  5. Mengemudi dengan lebih banyak faktor

Dengan logika strategi dan sinyal perdagangan utama tidak berubah, hasil backtest yang lebih baik dapat diharapkan melalui parameter dan optimasi kombinasi.

Kesimpulan

Strategi perdagangan pembalikan dua faktor secara organik menggabungkan sinyal pembalikan harga dan penyaringan tren untuk sistem penilaian multi-faktor. Dibandingkan dengan strategi sinyal pembalikan tunggal, strategi ini dapat lebih baik menangkap pembalikan harga jangka pendek sambil menghindari sinyal palsu ketika tidak ada tren yang jelas, sehingga meningkatkan kualitas sinyal. Kinerja yang lebih baik dapat diharapkan melalui pengoptimalan parameter dan penambahan faktor lain.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/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
// Extracting The Trend
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// 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


ETT(Length,Delta,Trigger) =>
    pos = 0
    xBandpassFilter = 0.0
    xPrice = hl2
    beta = cos(3.1415 * (360 / Length) / 180)
    gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
    xMean = sma(xBandpassFilter, 2 * Length)
    pos :=iff(xMean > Trigger, 1,
	       iff(xMean < Trigger, -1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthETT = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETT = ETT(LengthETT,Delta,Trigger)
pos = iff(posReversal123 == 1 and posETT == 1 , 1,
	   iff(posReversal123 == -1 and posETT == -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