Strategi regresi pecahan berdasarkan saluran Bollinger Bands


Tarikh penciptaan: 2024-01-22 10:47:45 Akhirnya diubah suai: 2024-01-22 10:47:45
Salin: 0 Bilangan klik: 552
1
fokus pada
1617
Pengikut

Strategi regresi pecahan berdasarkan saluran Bollinger Bands

Gambaran keseluruhan

Strategi ini adalah berdasarkan strategi penembusan kembalian pada laluan Brin. Apabila harga jatuh ke bawah laluan Brin, masuklah ke dalam kedudukan panjang.

Prinsip Strategi

Strategi ini menggunakan laluan tali pinggang Brin 20 kitaran. Laluan tali pinggang Brin terdiri daripada lintasan tengah, lintasan atas dan lintasan bawah. Lintasan tengah adalah purata bergerak sederhana 20 kitaran, lintasan atas terdiri daripada lintasan tengah ditambah 2 kali perbezaan piawai, lintasan bawah terdiri daripada lintasan tengah tolak 2 kali perbezaan piawai.

Apabila harga jatuh ke bawah landasan, menunjukkan harga memasuki keadaan oversold, ketika ini dilakukan long position entry. Selepas masuk, harga berhenti ditetapkan sebagai harga terendah K baris ketika masuk, sasaran berhenti adalah Brin jalur di atas landasan. Dengan demikian, strategi adalah proses mengejar harga dari keadaan oversold kembali ke garis rata, mencapai keuntungan.

Analisis kelebihan strategi

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan saluran Brin untuk menilai keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual, mempunyai beberapa keberkesanan
  2. Kembali ke Strategi Dagangan untuk Mengelakkan Docname Berjaya
  3. Tetapan titik hentian yang munasabah untuk mengawal risiko

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Blink tidak dapat melihat trend harga dengan sempurna, dan harga tidak akan bangkit semula selepas terjatuh.
  2. Floating P/L mungkin mencetuskan stop loss pertama apabila pasaran besar terus menurun
  3. Titik henti berhampiran dengan laluan atas, risiko kos henti terlalu tinggi

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter Brin untuk mencari kombinasi parameter yang terbaik
  2. Menambah isyarat penapisan penunjuk lain untuk meningkatkan ketepatan kemasukan
  3. Mengoptimumkan strategi henti rugi dan meningkatkan kadar keuntungan

ringkaskan

Strategi ini secara keseluruhan mempunyai pemikiran yang jelas dan mempunyai kebolehan operasi tertentu. Tetapi, ia menggunakan jangka masa yang tidak tinggi untuk menilai overbought dan oversold, tidak dapat menilai trend harga dengan sempurna. Selain itu, mekanisme stop loss juga perlu dioptimumkan. Kemudian dapat dioptimumkan dari segi memilih penunjuk yang lebih tepat, parameter pengoptimuman dan memperbaiki mekanisme stop loss, meningkatkan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ronsword
//@version=5

strategy("bb 2ND target", overlay=true)
 
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 1997"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Sept 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if the current bar falls inside the date range
inTradeWindow = true

// Bollinger Bands inputs
length = input.int(20, title="Bollinger Bands Length")
mult = input.float(2.0, title="Multiplier")
src = input(close, title="Source")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// EMA Settings
ema20 = ta.ema(close, 20)
plot(ema20, color=color.blue, title="20 EMA")

// Entry condition
longEntryCondition = ta.crossover(close, lower)

// Define stop loss level as the low of the entry bar
var float stopLossPrice = na
if longEntryCondition
    stopLossPrice := low

// Top Bollinger Band itself is set as the target
topBandTarget = upper

// Enter long position when conditions are met
if inTradeWindow and longEntryCondition
    strategy.entry("Long", strategy.long, qty=1)

// Set profit targets
strategy.exit("ProfitTarget2", from_entry="Long", limit=topBandTarget)

// Set stop loss
strategy.exit("StopLoss", stop=stopLossPrice)

// Plot Bollinger Bands with the same gray color
plot(upper, color=color.gray, title="Upper Bollinger Band")
plot(lower, color=color.gray, title="Lower Bollinger Band")