Strategi pembalikan pelacakan momentum faktor ganda


Tanggal Pembuatan: 2024-01-18 11:33:40 Akhirnya memodifikasi: 2024-01-18 11:33:40
menyalin: 0 Jumlah klik: 571
1
fokus pada
1617
Pengikut

Strategi pembalikan pelacakan momentum faktor ganda

Ringkasan

Strategi ini menggunakan kombinasi faktor reversal harga saham dan faktor momentum untuk membangun model dua faktor dengan tujuan untuk menangkap peluang reversal pasar jangka pendek dan persistensi jangka panjang. Strategi ini pertama-tama menggunakan bentuk 123 untuk menentukan sinyal reversal harga baru-baru ini, kemudian dikombinasikan dengan indikator RSI Laguerre untuk menentukan tren garis panjang tengah, dan akhirnya mencapai kombinasi sinyal dua faktor yang efektif.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. 123 faktor pembalikan bentuk

Bagian ini menemukan sinyal reversal harga jangka pendek dengan menilai perubahan harga penutupan dua hari sebelumnya. Secara khusus, jika harga penutupan hari sebelumnya lebih rendah dari dua hari sebelumnya, dan harga penutupan hari ini lebih tinggi dari hari sebelumnya, maka sinyal yang naik dapat dinilai sebagai reversal harga. Indikator Stoch digunakan untuk penilaian tambahan.

  1. Faktor RSI berdasarkan filter Ragel

Bagian ini membangun sebuah indikator RSI yang lebih sensitif. Indikator RSI tradisional memiliki sensitivitas yang lebih rendah terhadap perubahan harga, sedangkan filter Lagrange dapat membangun indikator dengan lebih sedikit data historis, sehingga meningkatkan sensitivitas terhadap perubahan harga. Indikator RSI baru digunakan untuk menilai tren garis tengah-panjang.

Pada akhirnya, strategi menggabungkan sinyal dari keduanya, memastikan bahwa tren besar tidak akan berbalik pada saat pembalikan jangka pendek, dan dengan demikian menangkap peluang bouncing.

Keunggulan Strategis

Keuntungan terbesar dari strategi ini adalah keberhasilan menggabungkan faktor reversal dan faktor tren. Faktor reversal dapat menangkap peluang rebound harga setelah penyesuaian jangka pendek, sedangkan faktor tren memastikan bahwa arah besar dari over/under tidak berubah. Dibandingkan dengan model single reversal atau momentum, model dua faktor ini dapat meningkatkan akurasi over/under dengan asumsi mengurangi sinyal palsu.

Selain itu, penambahan indikator RSI Ragel juga meningkatkan sensitivitas model terhadap perubahan harga, yang sangat penting untuk perdagangan frekuensi tinggi.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa sinyal dua faktor dapat berselisih. Terutama pada saat perubahan harga yang sering terjadi dalam jangka pendek, terutama selama perubahan pasar yang bergejolak. Tren garis tengah juga dapat berubah.

Selain itu, pilihan parameter yang tidak tepat juga dapat menyebabkan kinerja strategi yang buruk. Parameter indikator teknis yang sesuai dengan faktor pembalikan dan faktor tren perlu disesuaikan dan diuji masing-masing, kombinasi parameter yang tidak tepat juga dapat mengurangi efektivitas strategi.

Arah optimasi

Strategi selanjutnya untuk mengoptimalkan arah fokus pada pemfilteran sinyal dan pilihan parameter. Anda dapat mempertimbangkan untuk menambahkan lebih banyak kondisi penyaringan, yang berperan dalam perbedaan sinyal dua faktor, untuk memastikan bahwa posisi hanya dibuka dalam skenario kepastian tinggi. Ini dapat secara signifikan mengurangi tingkat sinyal salah.

Pada pilihan parameter, Anda dapat mencoba metode pembelajaran mesin dan eksperimen ilmiah, melakukan pengujian sistematis terhadap setiap kombinasi parameter, dan menemukan parameter yang optimal. Ini membutuhkan dukungan komputasi yang lebih tinggi, tetapi dapat meningkatkan stabilitas strategi secara signifikan.

Meringkaskan

Strategi ini berhasil menggabungkan faktor reversal dan faktor tren, menangkap peluang rebound jangka pendek dan persistensi jangka menengah melalui model dua faktor. Penambahan filter RSI Ragel juga meningkatkan sensitivitas model terhadap perubahan harga. Langkah selanjutnya akan fokus pada pemfilteran sinyal dan pengoptimalan parameter untuk lebih meningkatkan efektivitas strategi.

Kode Sumber Strategi
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/01/2021
// 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
// This is RSI indicator which is more sesitive to price changes. 
// It is based upon a modern math tool - Laguerre transform filter.
// With help of Laguerre filter one becomes able to create superior 
// indicators using very short data lengths as well. The use of shorter 
// data lengths means you can make the indicators more responsive to 
// changes in the price.
//
// 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

LB_RSI(gamma,BuyBand,SellBand) =>
    pos = 0.0
    xL0 = 0.0
    xL1 = 0.0
    xL2 = 0.0
    xL3 = 0.0
    xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1)
    xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1)
    xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1)
    xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1)
    CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0)  + (xL2 >= xL3 ? xL2 - xL3 : 0)
    CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1)  + (xL2 >= xL3 ? 0 : xL3 - xL2)
    nRes = iff(CU + CD != 0, CU / (CU + CD), 0)
    pos := iff(nRes > BuyBand, 1,
    	     iff(nRes < SellBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
gamma = input(0.5, minval=-0.1, maxval = 0.9)
BuyBand = input(0.8, step = 0.01)
SellBand = input(0.2, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLB_RSI = LB_RSI(gamma,BuyBand,SellBand)
pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posLB_RSI == -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 )