Strategi momentum kuantitatif berdasarkan momen tekanan LazyBear


Tarikh penciptaan: 2023-12-21 14:22:49 Akhirnya diubah suai: 2023-12-21 14:22:49
Salin: 0 Bilangan klik: 926
1
fokus pada
1621
Pengikut

Strategi momentum kuantitatif berdasarkan momen tekanan LazyBear

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada indikator Squeeze Momentum LazyBear, yang menganalisis masa pembelian dan penjualan. Strategi ini menggunakan analisis momentum, titik peralihan trend, kedudukan tinggi dan rendah, sebagai isyarat untuk menjual dan membeli. Oleh kerana ini adalah strategi multitasking, indeks bergerak rata-rata 50 kitaran juga dipertimbangkan untuk mengenal pasti trend naik.

Prinsip Strategi

Strategi ini menggabungkan indikator Brin Belt dan indikator Keltner Channel untuk mengenal pasti trend dan kawasan tekanan. Secara khusus, ia mengira Brin Belt 20 kitaran, dan orbit atas dan bawah Keltner Channel 20 kitaran. Apabila Brin Belt jatuh sepenuhnya ke dalam Keltner Channel, ia dianggap sebagai isyarat penekanan. Ia dikenali sebagai zon penekanan apabila orbit bawah Brin Belt melebihi orbit bawah Keltner Channel dan orbit atas Brin Belt berada di bawah orbit atas Keltner Channel. Sebaliknya, apabila orbit bawah Brin Belt berada di bawah orbit Keltner Channel dan orbit atas Brin Belt berada di atas Keltner Channel, ia dikenali sebagai zon bukan penekanan.

Selain itu, strategi ini juga menggunakan perubahan trend dan slippage dalam analisis pergerakan regresi linear. Ia mengira nilai regresi linear dari harga tipikal yang dikurangkan dari harga 20 kitaran terakhir. Apabila nilai regresi linear adalah positif, ia dianggap sebagai trend naik; apabila ia negatif, ia dianggap sebagai trend menurun.

Untuk menyaring isyarat palsu, strategi ini juga akan menilai sama ada harga penutupan lebih tinggi daripada purata bergerak indeks 50 hari, dan sama ada purata bergerak indeks 50 hari sedang naik. Isyarat beli akan dilaksanakan hanya jika kedua-dua syarat ini dipenuhi.

Analisis kelebihan strategi

Ini adalah strategi yang sangat bijak, dan menggunakan dua jenis indikator yang berbeza untuk membuat penilaian pelbagai dimensi terhadap pasaran, yang dapat menghalang isyarat palsu dengan berkesan. Secara khusus, ia mempunyai kelebihan:

  1. Penggunaan integrasi Brin Belt, Keltner Channel dan Indeks Kinerja untuk analisis pelbagai dimensi, meningkatkan ketepatan penghakiman.

  2. Julat penekanan dapat mengenal pasti ketinggian dan ketidakselesaan perubahan momentum, menangkap perubahan dengan tepat.

  3. Penapisan trend berdasarkan harga penutupan dan purata bergerak indeks 50 hari dapat mengelakkan pembukaan kedudukan berulang dalam penutupan.

  4. Hanya menghantar isyarat dalam jarak yang terdesak, dapat mengurangkan isyarat palsu dan meningkatkan kebarangkalian keuntungan.

  5. Terdapat banyak ruang untuk mengoptimumkan parameter strategi ini, yang boleh dioptimumkan secara khusus dengan parameter seperti penyesuaian kitaran.

  6. Pendekatan jangka pendek dan jangka panjang, mengambil kira trend kitaran besar, dan menggabungkan indikator jangka pendek dan sederhana, untuk membuat pelbagai arah jelas.

Analisis risiko

Walaupun strategi Nonfarming menilai pelbagai petunjuk teknikal, terdapat risiko:

  1. Apabila Brin Belt dan Keltner Corridor beredar, peluang untuk membeli/menjual akan hilang.

  2. “Ketika ribut berlaku, ia membawa kepada kerugian yang lebih besar kepada strategi”.

  3. Dalam keadaan yang bergelombang, tekanan mungkin tidak jelas dan kurang isyarat.

  4. Ia juga boleh menyebabkan kerugian yang tidak dapat diukur apabila ia bertukar menjadi lembu dan beruang.

Untuk mengelakkan risiko ini, kita boleh menggunakan kaedah berikut:

  1. Optimumkan parameter untuk menyelaraskan jalur Brin dan Keltner.

  2. Tetapkan garis hentian untuk mengawal kerugian tunggal.

  3. Menggunakan strategi ini sebagai sebahagian daripada strategi gabungan dan digunakan bersama dengan strategi lain.

  4. Dalam keadaan yang tidak menentu, anda perlu menurunkan kedudukan anda.

Arah pengoptimuman

Strategi ini masih mempunyai ruang untuk pengoptimuman yang besar, dengan beberapa arah pengoptimuman utama:

  1. Mengoptimumkan kitaran panjang Brin Belt dan Keltner Channel supaya mereka selaras mungkin.

  2. Uji faktor perkalian yang berbeza untuk mencari kombinasi parameter yang terbaik.

  3. Cuba tambahkan petunjuk lain untuk pengesahan, seperti RSI dan sebagainya.

  4. Strategi ini digunakan secara terpilih untuk menilai tahap pasaran berdasarkan model seperti garis warna.

  5. Parameter pengoptimuman dinamik menggunakan kaedah pembelajaran mesin.

  6. Mengkaji semula mata wang yang berbeza untuk mencari jenis yang paling sesuai untuk berdagang.

  7. Meneroka kesan strategi ini pada tempoh yang lebih lama (sun, bulan, dan lain-lain).

ringkaskan

LazyBear tekanan matriks kuantitatif strategi momentum menggunakan pelbagai petunjuk teknikal yang komprehensif, di kawasan yang tepat untuk mengenal pasti perubahan momentum untuk berdagang, mengelakkan sering membuka kedudukan di luar trend. Ia secara sistematik mendefinisikan kuantitatif membeli dan menjual peraturan, yang berkinerja cemerlang dalam pengukuran semula. Dengan cara mengoptimumkan parameter, memperkenalkan penunjuk penghakiman baru, strategi ini juga mempunyai ruang untuk penambahbaikan yang besar, yang patut dipelajari dan digunakan oleh peniaga kuantitatif.

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

//@version=4

//
// @author LazyBear 
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
initialBalance = 8000

strategy("Crypto momentum strategy", overlay=false)


length = input(20, title="BB Length")
mult = input(2.0, title="BB MultFactor")
lengthKC = input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)

// Calculate BB
source = close
basis = sma(source, length)
ema = ema(source, 50)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : high - low
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn = lowerBB > lowerKC and upperBB < upperKC
sqzOff = lowerBB < lowerKC and upperBB > upperKC
noSqz = sqzOn == false and sqzOff == false

val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)), sma(close, lengthKC)), lengthKC, 0)

slope = (val - val[2])
emaSlope = (ema - ema[1])


bcolor = iff(slope > 0, color.lime, color.red)
scolor = noSqz ? color.green : sqzOn ? color.black : color.green
squeeze = (noSqz ? 0 : sqzOn ? 1 : 0)

plot(val, color=color.gray, style=plot.style_line, linewidth=1, title="momentum")
plot(slope, color=bcolor, style=plot.style_circles, linewidth=2, title="slope")
plot(0, color=scolor, style=plot.style_line, linewidth=2, title="squeeze-zero")

co = crossover(slope / abs(slope), 0)
cu = crossunder(slope / abs(slope), 0)

if co and source > ema and emaSlope > 0
    strategy.entry("long", strategy.long, comment="long")
if cu
    strategy.close("long")