Strategi ini adalah trend mengikuti strategi berdasarkan kepada penunjuk OBV dan CCI. Ia menggunakan penunjuk OBV untuk menilai trend pasaran dan aliran modal, dan kemudian menggunakan penunjuk CCI untuk penapisan untuk menjana isyarat perdagangan. Apabila kedua-dua penunjuk OBV dan CCI mengesahkan trend menaik semasa, pergi panjang; apabila kedua-dua penunjuk mengesahkan trend menurun semasa, pergi pendek.
Strategi ini terutamanya bergantung pada OBV dan CCI dua penunjuk. Penunjuk OBV boleh mencerminkan aliran modal di pasaran. Apabila OBV hijau, ia bermakna trend semasa adalah aliran masuk modal; apabila OBV merah, ia bermakna trend semasa adalah aliran keluar modal. Penunjuk CCI digunakan sebagai penapis. Dengan menetapkan ambang, apabila CCI di atas ambang, ia dianggap sebagai pasaran lembu; apabila CCI di bawah ambang, ia dianggap sebagai pasaran beruang.
Bagi isyarat kemasukan, jika nilai OBV tempoh terakhir berwarna hijau (aliran modal) dan CCI berada di atas ambang (dalam pasaran bull), sementara garis OBV melintasi di atas garis EMA, isyarat beli dihasilkan.
Bagi isyarat keluar, jika nilai OBV tempoh terakhir adalah merah (aliran keluar modal) dan CCI di bawah ambang (dalam pasaran beruang), sementara garis OBV melintasi di bawah garis EMA, isyarat jual dihasilkan.
Oleh itu, dengan menilai trend utama menggunakan OBV, menapis dengan penunjuk CCI, dan menggabungkannya menggunakan persilangan EMA untuk menjana isyarat perdagangan konkrit, strategi itu merealisasikan trend berikut.
Kelebihan utama strategi ini ialah:
Menggunakan OBV untuk menentukan aliran modal pasaran dan arah trend, mengelakkan gangguan bunyi pasaran jangka pendek;
Menggunakan penunjuk CCI untuk penapisan, menjadikan isyarat dagangan lebih dipercayai;
Menggunakan silang EMA untuk menjana titik perdagangan konkrit berkualiti tinggi;
Peraturan adalah jelas dan mudah, mudah difahami dan dilaksanakan.
Terdapat juga beberapa risiko berpotensi untuk strategi ini:
Kemungkinan penunjuk OBV dan CCI menghasilkan isyarat yang salah;
Isyarat perdagangan yang kerap, mudah untuk overtrade;
Boleh terperangkap semasa retracements;
Penyesuaian parameter yang buruk membawa kepada prestasi strategi yang buruk.
Untuk mengawal risiko ini, kaedah seperti pengoptimuman parameter, menyesuaikan kekerapan perdagangan, menetapkan stop loss dan menggunakan penapis boleh digunakan.
Strategi ini boleh dioptimumkan dari aspek berikut:
Menilai kesan parameter yang berbeza dan mencari kombinasi parameter yang optimum;
Tetapkan had kekerapan perdagangan untuk mengelakkan perdagangan berlebihan;
Tambahkan mekanisme stop loss untuk mengawal kerugian perdagangan tunggal;
Tambah penunjuk lain sebagai penapis untuk meningkatkan kualiti isyarat;
Mengoptimumkan logik masuk dan keluar untuk menjadikan isyarat perdagangan lebih boleh dipercayai.
Ringkasnya, ini adalah trend asas mengikuti strategi yang dapat dengan berkesan mengesan trend harga dan mengelakkan gangguan bunyi bising. Tetapi masih ada beberapa risiko, yang memerlukan penambahbaikan seperti pengoptimuman parameter, stop loss, kawalan kekerapan perdagangan dll. Jika parameter ditetapkan secara saintifik, peningkatan prestasi backtest yang ketara dapat dicapai. Strategi ini sesuai untuk peniaga kuantiti yang lebih maju untuk belajar dan berlatih.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //author: SudeepBisht //@version=3 strategy("SB_CCI coded OBV Strategy", overlay=true) src = close length = input(20, minval=1, title="CCI Length") threshold=input(0, title="CCI threshold for OBV coding") lengthema=input(13, title="EMA length") obv(src) => cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) o=obv(src) c=cci(src, length) col=c>=threshold?green:red chk=col==green?1:0 ema_line=ema(o,lengthema) //plot(o, color=c>=threshold?green:red, title="OBV_CCI coded", linewidth=2) //plot(ema(o,lengthema), color=orange, linewidth=2) if (not na(ema_line)) if (crossover(o, ema_line) and chk[1]==1) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(o, ema_line) and chk[1]==0) strategy.entry("RsiSE", strategy.short, comment="RsiSE")