Strategi ini menggunakan penunjuk Bollinger Bands merentasi jangka masa 1 minit, 3 minit, 5 minit dan 15 minit untuk menganalisis pergerakan harga mata wang kripto, untuk mengenal pasti peluang membeli dan menjual. Ia menggunakan harga Bitcoin 5 minit sebagai penanda aras untuk sentimen pasaran cryptocurrency secara keseluruhan. Apabila harga Bitcoin memecahkan di atas jalur atas, pasaran dianggap bullish. Apabila harga memecahkan di bawah jalur bawah, pasaran dianggap bearish.
Strategi ini mengira Bollinger Bands secara serentak pada jangka masa 1 minit, 3 minit, 5 minit dan 15 minit. Bollinger Bands terdiri daripada purata bergerak n hari (default 20 hari) dan beberapa penyimpangan standard (default 1.5x) di atas dan di bawahnya. Purata bergerak mewakili harga purata kripto dalam tempoh masa dan penyimpangan standard mengukur volatiliti. Apabila harga mendekati atau memecahkan band atas, ia menunjukkan pasaran terlalu meluas dan volatiliti berkembang, menandakan potensi pembalikan ke bawah. Apabila harga mendekati atau memecahkan band bawah, ia menandakan pasaran sedang berkembang dengan peningkatan volatiliti dan potensi pembalikan ke atas.
Mengambil kesempatan daripada ciri Bollinger Bands ini, strategi ini menilai perkembangan pasaran terkini merentasi jangka masa yang berbeza - 1 minit, 3 minit, 5 minit dan 15 minit. Apabila terdapat penembusan jalur atas atau bawah dalam jangka masa 3 minit atau 5 minit, ditambah tanda pengesahan dalam jangka masa 1 minit dan 15 minit, strategi menentukan isyarat beli atau jual terkini dipicu. Di samping itu, strategi ini juga merujuk kepada harga Bitcoin 5 minit untuk mengukur trend pasaran keseluruhan dan sentimen (bias bullish / bearish) di seluruh pasaran crypto. Berdasarkan faktor-faktor ini, strategi memutuskan sama ada untuk pergi panjang atau pendek.
Selepas memasuki perdagangan, strategi ini juga menetapkan mengambil keuntungan dan syarat berhenti kerugian. Jika harga kemasukan meningkat atau jatuh sebanyak 25%, mengambil keuntungan akan dicetuskan. Jika harga bergerak lebih daripada 25% terhadap arah kemasukan, stop loss akan dicetuskan.
Strategi ini menggabungkan kedua-dua pandangan pasaran jangka pendek dan jangka menengah - 1 minit dan 5 minit untuk kemas kini terkini, 15 minit untuk trend jangka menengah, mengelakkan ditipu oleh turun naik pasaran sementara.
Strategi ini memantau kemerosotan kumpulan tengah, kumpulan atas dan kumpulan bawah, meminimumkan peluang yang hilang.
Bitcoin berfungsi sebagai penanda aras dan barometer untuk keadaan dan sentimen pasaran secara keseluruhan, meningkatkan ketepatan keputusan.
Mekanisme mengambil keuntungan dan menghentikan kerugian mengawal risiko dengan berkesan.
Penembusan Bollinger Band mempunyai beberapa sifat yang tertinggal dan mungkin terlepas masa kemasukan terbaik.
Strategi ini mudah terdedah kepada risiko sistemik di seluruh pasaran seperti kata laluan peristiwa black swan.
Walaupun mengambil keuntungan dan menghentikan kerugian di tempat, kerugian masih boleh melebihi margin berhenti kerugian di bawah peristiwa melampau.
Tetapan parameter yang tidak sesuai seperti tempoh masa, pengganda penyimpangan standard boleh menyebabkan kualiti isyarat yang buruk.
Penyelesaian yang sepadan:
Masukkan lebih banyak penunjuk untuk menentukan masa kemasukan yang optimum.
Meningkatkan penilaian risiko sistemik di peringkat pasaran.
Mengurangkan saiz kedudukan dan margin stop loss untuk setiap perdagangan.
Mengoptimumkan tetapan parameter melalui backtesting.
Tambah lebih banyak jangka masa seperti 30 minit atau 60 minit Bollinger Bands.
Pilih parameter Bollinger Bands yang lebih sesuai dengan ciri-ciri setiap crypto.
Masukkan jumlah dagangan untuk pengesahan hasil, kerana jumlah dagangan mengesahkan kebolehpercayaan pergerakan harga.
Menggabungkan penunjuk lain seperti Stoch RSI, MACD untuk meningkatkan ketepatan keputusan.
Bandingkan pergerakan harga dan korelasi antara kripto dan pilih yang mempunyai ruang paling banyak untuk bergerak.
Mengoptimumkan mekanisme mengambil keuntungan dan menghentikan kerugian dengan analisis statistik prestasi sejarah untuk menentukan tetapan optimum.
Ini adalah strategi perdagangan mata wang kripto Bollinger Bands berbilang jangka masa. Ia memberi tumpuan kepada perkembangan harga sepanjang jangka pendek dan jangka menengah, memanfaatkan Bollinger Bands untuk mengukur status MULTI bullish / bearish pasaran. Sementara itu, ia menggunakan tahap harga Bitcoin
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true) length = input.int(20, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev") interval1m = request.security(syminfo.tickerid, '1', src) interval3m = request.security(syminfo.tickerid, '3', src) interval5m = request.security(syminfo.tickerid, '5', src) interval15m = request.security(syminfo.tickerid, '5', src) btcinterval5m = request.security("BTC_USDT:swap", "5", src) bitcoinSignal = 'flat' var entryPrice = 0.000 ma(source, length, _type) => switch _type "SMA" => 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) bitcoinBasis = ma(btcinterval5m, length, maType) bitcoinDev = ta.stdev(btcinterval5m, length) bitcoinUpper = bitcoinBasis + bitcoinDev bitcoinLower = bitcoinBasis - bitcoinDev basis1m = ma(interval1m, length, maType) basis3m = ma(interval3m, length, maType) basis5m = ma(interval5m, length, maType) basis15m = ma(interval5m, length, maType) dev1m = mult * ta.stdev(interval1m, length) dev3m = mult * ta.stdev(interval3m, length) dev5m = mult * ta.stdev(interval5m, length) upper1m = basis1m + dev1m lower1m = basis1m - dev1m upper3m = basis3m + dev3m lower3m = basis3m - dev3m upper5m = basis5m + dev5m lower5m = basis5m - dev5m offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset) p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset) p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset) //Exit protocols if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy' entryPrice := strategy.opentrades.entry_price(0) if ((interval1m - entryPrice)/entryPrice) * 30 > .25 strategy.close('Buy', comment='Take Profit on Buy') if ((interval1m - entryPrice)/entryPrice) * 30 < -.25 strategy.close('Buy', comment='Stop Loss on Buy') if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell' entryPrice := strategy.opentrades.entry_price(0) if ((entryPrice - interval1m)/entryPrice) * 30 > .25 strategy.close('Sell', comment='Take Profit on Sell') if ((entryPrice - interval1m)/entryPrice) * 30 < -.25 strategy.close('Sell', comment='Stop Loss on Sell') //Bitcoin Analysis if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3]) bitcoinSignal := 'Bear' if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3]) bitcoinSignal := 'Bull' //Short protocols if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or (interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3]) and strategy.opentrades.entry_id(0) != 'Sell' and src < basis1m and src < basis15m if strategy.opentrades.entry_id(0) == 'Buy' strategy.close('Buy', 'Basis Band Bearish Reversal') //strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2) if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or (interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3]) and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m and src < basis15m if strategy.opentrades.entry_id(0) == 'Buy' strategy.close('Buy', 'Bearish Trend Reversal') strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2) if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or (interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' and src > basis1m and src > basis15m if strategy.opentrades.entry_id(0) == 'Sell' strategy.close('Sell', 'Basis Band Bullish Reversal') //strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2) if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or (interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' and src > lower1m and src > basis15m and bitcoinSignal == 'Bull' if strategy.opentrades.entry_id(0) == 'Sell' strategy.close('Sell', 'Bullish Trend Reversal') strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)