Strategi ini menjana isyarat perdagangan dengan mengira penunjuk MACD dari penunjuk OBV untuk menentukan trend dan titik belokan momentum OBV. Idea terasnya adalah untuk menjana isyarat beli apabila histogram OBV MACD menembusi paksi 0 dari rantau negatif ke rantau positif, dan untuk menjana isyarat jual apabila menembusi paksi 0 dari rantau positif ke rantau negatif.
Indikator OBV boleh mencerminkan trend momentum saham dengan menganalisis secara statistik hubungan antara arah perubahan harga penutupan dan jumlah dagangan dalam tempoh masa untuk menentukan sama ada momentum menaik menguat atau melemah. Indikator MACD menunjukkan perbezaan antara purata bergerak yang berbeza untuk mencerminkan momentum perubahan harga. Oleh itu, dengan menggabungkan indikator momentum OBV dan indikator momentum MACD, trend perubahan momentum dapat dinilai dengan lebih jelas.
Secara khusus, strategi ini mula-mula mengira penunjuk OBV, yang mengira garis momentum OBV dengan menganalisis secara statistik hubungan antara arah perubahan harga penutupan dan jumlah dagangan dalam tempoh masa. Kemudian, berdasarkan garis momentum OBV, penunjuk MACDnya dikira, termasuk garis MACD, garis isyarat dan histogram. Akhirnya, apabila histogram macd menembusi paksi 0 dari rantau negatif ke rantau positif, isyarat beli dihasilkan; apabila histogram menembusi paksi 0 dari rantau positif ke rantau negatif, isyarat jual dihasilkan.
Dengan cara ini, MACD secara intuitif memaparkan ciri momentum jumlah OBV, dan menilai trend perubahan jumlah. Penembusan MACD digunakan untuk mengeluarkan isyarat transaksi, yang dapat meningkatkan ketepatan keputusan transaksi.
Strategi ini menggabungkan analisis jumlah OBV dan penunjuk momentum MACD untuk penilaian yang agak tepat mengenai perubahan trend jumlah dan harga, yang dapat menapis isyarat FALSE dengan berkesan.
Strategi ini juga mempunyai beberapa risiko, terutamanya dalam aspek berikut:
Untuk mengatasi risiko ini, langkah-langkah berikut boleh diambil:
Masih ada ruang untuk mengoptimumkan lagi strategi ini, terutamanya dalam arah berikut:
Dengan ujian dan pengoptimuman berterusan, strategi ini boleh menjadi strategi perdagangan kuantitatif yang stabil dan cekap.
Strategi ini adalah strategi kuantitatif biasa yang menggabungkan analisis jumlah dan penunjuk momentum untuk menentukan trend harga dan menjana isyarat perdagangan. Ia dapat dengan jelas mengenal pasti titik perubahan fluktuasi harga, dan isyarat perdagangan agak boleh dipercayai. Dengan tetapan parameter yang munasabah, keputusan strategi yang baik dapat diperoleh. Tetapi ia juga mempunyai beberapa risiko yang perlu dikurangkan dengan pengoptimuman berterusan untuk meningkatkan prestasi. Secara umum, strategi ini memberikan idea khas untuk strategi perdagangan kuantitatif yang bernilai penyelidikan dan penerapan.
/*backtest start: 2023-12-17 00:00:00 end: 2024-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of OBV", overlay = false) //////////////////////// OBV /////////////////////////// src = close obv = cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) //////////////////////// OBV ////////////////////////// //////////////// MACD OF OBV //////////////////////////// sourcemacd = obv fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD OF OBV ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")