Strategi perdagangan pelbagai lapisan adalah pendekatan perdagangan kuantitatif berdasarkan turun naik harga. Strategi ini menggunakan pelbagai band turun naik untuk mengenal pasti kawasan yang terlalu banyak dibeli dan terlalu banyak dijual di pasaran, memulakan perdagangan apabila harga menyentuh kawasan ini. Idea terasnya adalah untuk menubuhkan kedudukan apabila harga menyimpang dari purata dan keuntungan apabila mereka kembali.
Pengiraan purata bergerak: Strategi menggunakan jenis purata bergerak yang boleh dipilih (SMA, EMA, SMMA, WMA, VWMA) untuk mengira garis asas.
Setup Band Volatiliti: Pelbagai band volatiliti ditubuhkan berdasarkan garis asas, menggunakan penyimpangan piawai didarabkan dengan faktor.
Tahap Fibonacci: Tahap retracement Fibonacci (23.6%, 38.2%, 50%, 61.8%) digunakan untuk membahagikan rentang turun naik, mewujudkan lebih banyak peluang perdagangan.
Penyesuaian Dinamik: Pilihan untuk menggunakan pengganda dinamik berdasarkan ATR (Rentang Benar Purata) untuk menyesuaikan lebar jalur turun naik secara automatik.
Logik Masuk: Posisi ditubuhkan apabila harga menyentuh atau melintasi jalur turun naik dalam arah yang sesuai.
Scaling Kedudukan: Jika harga terus bergerak tidak menguntungkan, strategi menambah kedudukan pada tahap rentang turun naik yang lebih lanjut, mewujudkan konsep strategi Martingale.
Logik Keluar: Keuntungan diambil apabila harga kembali ke garis asas. Pilihan untuk menutup kedudukan apabila harga melintasi garis asas juga tersedia.
Masuk Multi-Level: Dengan menetapkan pelbagai jalur turun naik dan tahap Fibonacci, strategi ini menyediakan lebih banyak peluang perdagangan, menangkap turun naik pasaran pada tahap harga yang berbeza.
Kemudahan yang tinggi: Strategi ini membolehkan pengguna memilih pelbagai jenis purata bergerak, tempoh, dan parameter untuk menyesuaikan diri dengan pelbagai persekitaran pasaran dan instrumen perdagangan.
Penyesuaian Dinamik: Ciri pengganda dinamik pilihan membolehkan strategi menyesuaikan diri secara automatik mengikut turun naik pasaran, meningkatkan kesesuaian.
Pengurusan Risiko: Dengan meningkatkan kedudukan semasa pergerakan harga yang tidak baik, strategi ini cuba menurunkan harga masuk purata, meningkatkan kebarangkalian keuntungan akhir.
Konsep Pembalikan Purata: Strategi ini berdasarkan idea bahawa harga akhirnya akan kembali ke purata, yang berfungsi dengan baik di banyak pasaran dan jangka masa.
Kebolehsesuaian: Pengguna boleh menyesuaikan parameter seperti saiz saham dan tahap Fibonacci mengikut pilihan risiko dan gaya perdagangan mereka.
Risiko Kerugian Berturut-turut: Dalam pasaran yang mempunyai trend yang kuat, harga boleh terus menerus menembusi pelbagai rentang turun naik, yang membawa kepada peningkatan kedudukan berturut-turut dan mengumpulkan kerugian yang ketara.
Tekanan Pengurusan Modal: Peningkatan kedudukan gaya Martingale boleh membawa kepada peningkatan keperluan modal yang pesat, berpotensi melebihi kapasiti akaun.
Overtrading: Pelbagai rentang turun naik boleh menghasilkan isyarat dagangan yang berlebihan di pasaran yang terikat julat, meningkatkan kos transaksi.
Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada tetapan parameter; parameter yang tidak sesuai boleh menyebabkan prestasi yang buruk.
Risiko slippage dan kecairan: Di pasaran yang sangat tidak menentu, slippage yang ketara boleh berlaku, terutamanya apabila skala kedudukan.
Risiko pengurangan: Walaupun strategi ini bertujuan untuk menurunkan kos purata melalui skala kedudukan, ia masih boleh menghadapi pengurangan yang besar dalam keadaan pasaran yang melampau.
Memperkenalkan Penapis Trend: Tambah penunjuk trend jangka panjang untuk membuka kedudukan hanya dalam arah trend, mengelakkan perdagangan yang sering bertentangan dengan trend dalam trend yang kuat.
Pengukuran Posisi Dinamik: Sesuaikan bilangan saham yang didagangkan berdasarkan saiz akaun dan turun naik pasaran untuk mengawal risiko dengan lebih baik.
Mengoptimumkan Mekanisme Keluar: Pertimbangkan untuk memperkenalkan penangguhan trailing atau stop-loss dinamik berdasarkan turun naik untuk mengunci keuntungan dan mengawal risiko dengan lebih baik.
Tambah Penapis Masa: Melaksanakan sekatan tetingkap masa dagangan untuk mengelakkan tempoh turun naik yang tinggi atau kecairan yang lemah.
Mengintegrasikan Penunjuk Sentimen Pasaran: Menggabungkan penunjuk turun naik seperti VIX untuk menyesuaikan parameter strategi atau menghentikan perdagangan semasa tempoh turun naik yang tinggi.
Memperkenalkan Pembelajaran Mesin: Gunakan algoritma pembelajaran mesin untuk mengoptimumkan parameter secara dinamik, meningkatkan kemampuan strategi untuk menyesuaikan diri dengan perubahan pasaran.
Tambah Penapis Dasar: Sertakan data asas untuk membenarkan perdagangan hanya di bawah syarat asas tertentu, meningkatkan kualiti perdagangan.
Strategi Perdagangan Band Volatiliti Multi-Layer adalah sistem perdagangan yang kompleks yang menggabungkan analisis teknikal, teori kebarangkalian, dan pengurusan risiko. Ia cuba menangkap keuntungan dari turun naik harga melalui titik kemasukan pelbagai peringkat dan skala kedudukan gaya Martingale.
Untuk berjaya menggunakan strategi ini, peniaga memerlukan pemahaman yang mendalam mengenai ciri pasaran, penetapan parameter yang teliti, dan pelaksanaan pengurusan risiko yang ketat. Melalui pengoptimuman dan pengujian balik yang berterusan, digabungkan dengan wawasan pasaran, strategi ini berpotensi menjadi alat perdagangan yang berkesan. Walau bagaimanapun, memandangkan kerumitan dan risiko yang berpotensi, adalah dinasihatkan untuk menjalankan ujian simulasi dan penilaian risiko yang menyeluruh sebelum perdagangan langsung.
Secara keseluruhannya, Strategi Dagangan Band Volatiliti Multi-Layer menyediakan kerangka kerja yang menarik dan mencabar untuk peniaga kuantitatif.
/*backtest start: 2024-06-30 00:00:00 end: 2024-07-30 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © abtov //@version=5 strategy("Spider Strategy", overlay=true) ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "Bollinger Bands" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) stdev = input.int(56, "STDEV", group="Stdev") mult = input.float(2.3, "Multiplier", group="Stdev") ma_len = input.int(230, "Basis Length", group="Stdev") ma_type = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Stdev") auto_mult = input.bool(true, "Dynamic Mult.", group="Stdev") basis_exit = input.bool(false, "Basis Exit", group="Stdev") col_int = input.int(12, "Collective Value", group="Collective") col_input = input.bool(true, "Collective Input", group="Collective") fib1 = input.float(0.236, "Fibonacci Level 1", group = "Fibonacci") fib2 = input.float(0.382, "Fibonacci Level 2", group = "Fibonacci") fib3 = input.float(0.5, "Fibonacci Level 3", group = "Fibonacci") fib4 = input.float(0.618, "Fibonacci Level 4", group = "Fibonacci") atr_len = input.int(30, "ATR", group="ATR") atr_bias = input.float(0.72, "Bias", group="ATR") shares = input.int(1, "Shares Amount", group="Strategy") if(col_input == true) stdev := col_int ma_len := col_int atr_len := col_int if(auto_mult == true) mult := ma(ta.tr(true), atr_len, ma_type) * atr_bias basis = ma(close, ma_len, ma_type) lower = basis - stdev * mult upper = basis + stdev * mult lower2 = basis - stdev * mult * fib1 upper2 = basis + stdev * mult * fib1 lower3 = basis - stdev * mult * fib2 upper3 = basis + stdev * mult * fib2 lower4 = basis - stdev * mult * fib3 upper4 = basis + stdev * mult * fib3 lower5 = basis - stdev * mult * fib4 upper5 = basis + stdev * mult * fib4 var lowerAct = false var lower2Act = false var lower3Act = false var lower4Act = false var lower5Act = false var upperAct = false var upper2Act = false var upper3Act = false var upper4Act = false var upper5Act = false plot(upper, "limit short", color.red) plot(upper2, "limit 1 short", color.red) plot(upper3, "limit 2 short", color.red) plot(upper4, "limit 3 short", color.red) plot(upper5, "limit 4 short", color.red) plot(basis, "basis", color.white) plot(lower, "limit long", color.green) plot(lower2, "limit 1 long", color.green) plot(lower3, "limit 2 long", color.green) plot(lower4, "limit 3 long", color.green) plot(lower5, "limit 4 long", color.green) if(lowerAct == false) if(close < lower) strategy.entry("long", strategy.long, shares) lowerAct := true else if(low > basis) lowerAct := false if(lower2Act == false) if(close < lower2) strategy.entry("long", strategy.long, shares) lower2Act := true else if(low > basis) lower2Act := false if(lower3Act == false) if(close < lower3) strategy.entry("long", strategy.long, shares) lower3Act := true else if(low > basis) lower3Act := false if(lower4Act == false) if(close < lower4) strategy.entry("long", strategy.long, shares) lower4Act := true else if(low > basis) lower4Act := false if(lower5Act == false) if(close < lower5) strategy.entry("long", strategy.long, shares) lower5Act := true else if(low > basis) lower5Act := false if(upperAct == false) if(close > upper) strategy.entry("short", strategy.short, shares) upperAct := true else if(high < basis) upperAct := false if(upper2Act == false) if(close > upper2) strategy.entry("short", strategy.short, shares) upper2Act := true else if(high < basis) upper2Act := false if(upper3Act == false) if(close > upper3) strategy.entry("short", strategy.short, shares) upper3Act := true else if(high < basis) upper3Act := false if(upper4Act == false) if(close > upper4) strategy.entry("short", strategy.short, shares) upper4Act := true else if(high < basis) upper4Act := false if(upper5Act == false) if(close > upper5) strategy.entry("short", strategy.short, shares) upper5Act := true else if(high < basis) upper5Act := false if((ta.crossover(close, basis) and basis_exit == true)) strategy.close("short") strategy.close("long")