Bollinger Bands Golden Cross dan Strategi Palang Mati


Tarikh penciptaan: 2023-11-23 14:01:57 Akhirnya diubah suai: 2023-11-23 14:01:57
Salin: 0 Bilangan klik: 548
1
fokus pada
1617
Pengikut

Bollinger Bands Golden Cross dan Strategi Palang Mati

Gambaran keseluruhan

Strategi ini adalah berdasarkan Bollinger Bands Gold Fork Dead Fork untuk melakukan lebih banyak shorting. Apabila harga menembusi Bollinger Bands ke atas, buat shorting; apabila harga menembusi Bollinger Bands ke bawah, buat lebih banyak.

Prinsip Strategi

Strategi ini menggunakan 3 lintasan atas dan bawah dalam Brin Belt. Lintasan tengah Brin Belt adalah purata bergerak n hari, lintasan atas adalah lintasan tengah + k kali n hari standard perbezaan, lintasan bawah adalah lintasan tengah - k kali n hari standard perbezaan.

Apabila harga dari bawah ke atas menembusi downtrend, menunjukkan harga mula naik, maka lakukan lebih banyak; apabila harga dari atas ke bawah menembusi uptrend, menunjukkan harga mula turun, maka lakukan kosong.

Selepas melakukan penyingkiran lebih banyak, kedudukan akan diteruskan. Syarat penyingkiran adalah berdasarkan kedudukan yang telah dipegang, jika harga menyentuh garis rata-rata lagi, kedudukan akan dibuka lagi untuk melakukan penyingkiran atau penyingkiran.

Pengesanan berhenti untuk semua pegangan juga dikemas kini dalam masa nyata. Garis berhenti akan ditetapkan berdasarkan perbezaan harga purata pegangan semasa dengan harga Brin.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan penunjuk Bollinger Bands untuk menangkap harga yang lebih tinggi dan lebih tepat.
  2. Pendaftaran yang teratur dengan menggunakan kaedah garpu emas
  3. “Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa.
  4. Pembaruan terhad dalam masa nyata untuk mengelakkan terhad terhad

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Bollinger Bands sebagai penunjuk, lebih sensitif terhadap turun naik pasaran dan mungkin akan dilaburkan
  2. Kaedah pembiayaan menambah risiko, dan kerugian akan bertambah besar
  3. Barisan Hentian Kerosakan Tidak Mutlak, Mungkin Ada Kemalangan

Untuk menangani risiko ini, anda boleh mengoptimumkan dari beberapa aspek:

  1. Menyesuaikan parameter Brinband untuk beradaptasi dengan kitaran yang berbeza
  2. Mengoptimumkan kadar dan kekerapan kenaikan
  3. Menambah rel tengah sebagai garisan hentian lanjut

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan parameter Brin Belt untuk menyesuaikan diri dengan lebih banyak keadaan pasaran
  2. Mengoptimumkan logik peleburan, mengimbangi risiko dan keuntungan
  3. Menambah garis hentian, seperti hentian di tengah landasan
  4. Menambah strategi pencegahan dan tindakan pencegahan yang lebih aktif
  5. Penapisan masa masuk bersama-sama dengan penunjuk lain
  6. Pengurusan dana yang optimum dan kawalan risiko tunggal

ringkaskan

Strategi ini secara keseluruhan adalah strategi pengesanan trend yang tipikal. Ia dapat mengambil keuntungan apabila trend muncul. Pada masa yang sama, ia juga mempunyai risiko tertentu yang memerlukan pengoptimuman dan penambahbaikan lebih lanjut untuk menyesuaikan diri dengan keadaan pasaran yang lebih banyak dan mengurangkan risiko yang disebabkan oleh perobosan palsu.

Kod sumber strategi
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy(title='Bollinger Band strategy with split, limit, stop', shorttitle='bb strategy', overlay=true,commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, pyramiding = 4)



//Summary: Going Long or Short when Entering after Breaking the Bollinger Bands\
//At this time, the stop-loss, profit-taking price, and pyramiding standard\
// are determined from the difference between the position average price and the band price.

//After entering the position, if the price crosses the mid-band line, the stop loss is adjusted to the mid-band line.



//each trade, entry position size = 10% of total cash
//max pyramiding is 4
//commission = 0.01%





in_period = true


bb_length = input.int(20)
bb_mult = input.int(2)

[middle, upper, lower] = ta.bb(close,bb_length, bb_mult)
plot(middle, color=color.aqua)
plot(upper, color=color.orange)
plot(lower, color=color.orange)
long_cond = ta.crossover(close,lower)
short_cond = ta.crossunder(close,upper)

var saved_ph = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    saved_ph := upper[1]
var saved_pl = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size < 0
    saved_pl := lower[1]

avg = strategy.position_avg_price

long_diff = saved_ph-avg
short_diff = saved_pl-avg

long_stoploss = avg - 1*long_diff
short_stoploss = avg - 1*short_diff

long_avgdown = avg - 0.5*long_diff
short_avgup = avg - 0.5*short_diff

long_profit_price = avg + 0.5*long_diff
short_profit_price = avg + 0.5*short_diff

var label _label = na
if in_period
    if long_cond and strategy.opentrades==0
        strategy.entry("Long",strategy.long)
    if long_cond and strategy.opentrades >0 and (close[1]<long_avgdown or close[2]<long_avgdown)
        strategy.entry("Long",strategy.long)

    if short_cond and strategy.opentrades==0
        strategy.entry("Short", strategy.short)
    if short_cond and strategy.opentrades>0 and (close[1]>short_avgup or close[2]>short_avgup)
        strategy.entry("Short",strategy.short)

plot(avg, style=plot.style_linebr)


plot(strategy.position_size > 0? long_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0? long_avgdown: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size > 0? long_stoploss: na,color=color.red, style=plot.style_linebr)

plot(strategy.position_size < 0? short_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0? short_avgup: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size < 0? short_stoploss: na,color=color.red, style=plot.style_linebr)

if strategy.position_size > 0
    if ta.crossover(close, middle)
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=middle)
    else
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=long_stoploss)
if strategy.position_size < 0
    if ta.crossunder(close, middle)
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=middle)
    else
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=short_stoploss)