
Gambaran keseluruhan
Strategi ini menggunakan indikator Bollinger Bands, melakukan shorting apabila harga menyentuh rantaian atas, melakukan lebih banyak apabila menyentuh rantaian bawah, dan menetapkan kedudukan berhenti dinamik, apabila memegang kedudukan mencapai keuntungan 1%. Gagasan utama strategi ini adalah bahawa harga sentiasa bergolak di dalam kawasan Bollinger Bands, dengan ciri-ciri pengembalian nilai rata-rata, oleh itu boleh melakukan operasi terbalik untuk mengambil keuntungan dari perbezaan harga apabila harga menyimpang terlalu jauh dari garis purata bergerak.
Prinsip Strategi
- Mengira purata bergerak dan perbezaan piawai: menggunakan purata bergerak sederhana (SMA) untuk mengira purata bergerak harga penutupan (basis), dan kemudian mengira perbezaan piawai harga penutupan berbanding purata bergerak (dev).
- Hitung di atas dan di bawah landasan: atas ((upper) menjadi basis + dev *multiplier, downtrack ((lower) sebagai basis - dev *multiplier, di mana multiplier adalah kali ganda daripada amplitudo lonjakan.
- Menjana isyarat dagangan: menghasilkan isyarat berganda apabila harga penutupan turun dan harga penutupan semasa lebih kecil daripada harga pembukaan; menghasilkan isyarat shorting apabila harga penutupan turun dan harga penutupan semasa lebih besar daripada harga pembukaan.
- Hentian dinamik: Selepas membuka kedudukan, harga berhenti dikira berdasarkan harga pembukaan dan peratusan berhenti (takeProfitPercentage), dan apabila harga mencapai harga berhenti, ia akan ditutup.
- Visualisasi: Menggambar jalur Bollinger, purata bergerak dan isyarat perdagangan di carta.
Kelebihan Strategik
- Sederhana dan berkesan: Strategi ini mempunyai logik yang jelas, menggunakan satu indikator teknikal sahaja, mudah difahami dan dilaksanakan.
- Kebolehgunaan yang meluas: Bollinger Bands mempunyai kebolehgunaan yang meluas dan boleh digunakan untuk pelbagai tanda dagangan yang berbeza dan pasaran.
- Hentian dinamik: Berbanding dengan hentian tetap, hentian dinamik membolehkan anda memaksimumkan keuntungan dari kad keuntungan, sambil mengawal risiko.
- Mengambil Trend Secara Berkesan: Dalam keadaan trend, apabila harga menyentuh laluan atas atau bawah, ia biasanya akan terus berjalan di arah asalnya untuk seketika, strategi ini dapat mengambil peluang trend ini dengan berkesan.
Risiko Strategik
- Tidak baik dalam pasaran goyah: Strategi ini mungkin sering muncul isyarat perdagangan apabila pasaran berada dalam goyah lebar dan harga berulang kali menembusi dalam Bollinger Bands, menyebabkan terlalu banyak perdagangan dan kos bayaran yang meningkat.
- Pengunduran yang lebih dalam dalam keadaan trend: Jika trend berlangsung lama, harga jauh dari garis purata jangka panjang, pengunduran mungkin lebih dalam kerana strategi ini berlawanan.
- Kesukaran memilih parameter: Parameter dalam Bollinger Bands (seperti panjang, kelipatan) mempunyai kesan besar terhadap prestasi strategi, tetapi tidak mempunyai parameter optimum yang tepat di mana-mana.
Arah pengoptimuman strategi
- Menggabungkan penghakiman trend: Menambahkan indikator penghakiman trend ke dalam strategi (seperti purata bergerak), boleh menghentikan perdagangan dalam keadaan trend, atau perdagangan beransur-ansur.
- Mengoptimumkan Stop Loss: Anda boleh menyesuaikan Stop Loss secara dinamik berdasarkan indikator turun naik seperti ATR untuk mendapatkan nisbah risiko keuntungan yang lebih baik.
- Kombinasi pelbagai faktor: Pertimbangkan untuk menggunakan jalur Bollinger dengan petunjuk teknikal lain (seperti RSI, MACD, dll.) untuk meningkatkan ketepatan isyarat dan mengurangkan isyarat palsu.
- Penapisan asas: Setelah menghasilkan isyarat perdagangan, pengesahan kedua boleh dilakukan melalui data asas (seperti laporan pendapatan, data industri, dan sebagainya) untuk meningkatkan kestabilan strategi.
ringkaskan
Strategi ini menggunakan Bollinger Bands untuk membina sistem perdagangan yang mudah dan berkesan, dengan harga menyentuh ke atas dan ke bawah sebagai isyarat, sambil menggunakan cara berhenti dinamik untuk mengawal risiko. Strategi ini berfungsi dengan baik dalam keadaan trend, tetapi mungkin menghadapi masalah perdagangan yang kerap di pasaran yang bergolak.
Kod sumber strategi
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Future Price Prediction", overlay=true)
// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0
// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev
// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")
// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]
// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na
if longCondition
longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
shortTakeProfit := close * (1 - takeProfitPercentage / 100)
// Strateji Giriş ve Çıkış
if longCondition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)
if shortCondition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)
// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
table.cell(data, 0, 0, "Current Price", text_color=color.white)
table.cell(data, 1, 0, str.tostring(close))
table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
table.cell(data, 1, 1, str.tostring(basis))