Strategi Mengunci Ayunan Jalur Lebar


Tarikh penciptaan: 2024-02-22 13:43:14 Akhirnya diubah suai: 2024-02-22 13:43:14
Salin: 0 Bilangan klik: 777
1
fokus pada
1617
Pengikut

Strategi Mengunci Ayunan Jalur Lebar

Gambaran keseluruhan

Strategi penutupan gegaran jalur lebar adalah strategi penembusan garis panjang berdasarkan indikator Burin untuk menentukan apakah turun naik turun naik turun naik. Apabila pasaran memasuki tahap penyusunan gegaran, Burin turun naik akan bertepatan, ketika ini kami menilai peluang masuk ke dalam. Kami juga menggabungkan indikator Julat Gegar Saham purata untuk mengesahkan turun naik turun naik harga.

Prinsip Strategi

Strategi ini bergantung kepada indikator Burin untuk menentukan apakah harga memasuki masa turun naik rendah. Garis tengah Burin adalah purata bergerak harga penutupan, dan dua selisih piawaian di atas dan di bawah masing-masing di atas dan di bawah. Apabila turun naik harga berkurangan, selisih atas dan bawah akan menjadi lebih ketat.

Untuk lebih mengesahkan turun naik turun naik, kami mengesan sama ada purata bergerak nilai ATR menunjukkan trend menurun. Penurunan nilai rata-rata ATR juga membuktikan turun naik turun naik. Apabila kedua-dua syarat di atas dipenuhi, kami memutuskan bahawa terdapat perpaduan jelas di Burin, yang merupakan masa yang sangat baik untuk membeli.

Apabila kita membeli, kita akan mengaktifkan strategi berhenti bergerak dengan dua kali ganda nilai ATR sebagai jarak berhenti. Ia boleh mengawal kerugian dengan berkesan.

Analisis kelebihan

Kelebihan utama strategi ini adalah kebolehpastian untuk menentukan masa terbaik untuk membeli apabila pasaran memasuki tempoh penyesuaian goyah yang tidak menentu. Berbanding dengan strategi garis panjang yang lain, peluang keuntungan yang lebih tinggi dalam strategi penutupan goyah jalur lebar.

Kedua, strategi ini juga menggunakan stop loss bergerak untuk mengawal risiko secara aktif. Ini membolehkan anda meminimumkan kerugian walaupun dalam keadaan buruk. Ini adalah sesuatu yang tidak dimiliki oleh banyak strategi garis panjang.

Analisis risiko

Risiko utama strategi ini adalah bahawa indikator Bollinger Bands tidak dapat menilai perubahan dalam turun naik harga dengan tepat. Apabila turun naik Bollinger Bands salah, masa pembelian kita mungkin tidak menguntungkan. Pada masa ini, stop loss bergerak memainkan peranan penting untuk menghentikan kerugian dan keluar secepat mungkin.

Selain itu, pelbagai parameter dalam strategi juga akan memberi kesan kepada hasilnya. Kita perlu mengoptimumkan parameter dengan banyak tinjauan semula untuk menjadikan strategi lebih mantap.

Arah pengoptimuman

Kita boleh pertimbangkan untuk menambah indikator lain untuk mengesahkan bahawa indikator trend juga menunjukkan tanda-tanda pembalikan. Sebagai contoh, apabila Brin berdekatan, kita juga meminta perbezaan MACD telah bertukar positif negatif, atau RSI telah dipantau oleh kawasan overbought dan sebagainya. Ini dapat meningkatkan lagi ketepatan masa pembelian.

Arah lain ialah menguji kesan parameter yang berbeza terhadap hasil, seperti seting kitaran Brin, kitaran ATR dan penggandaan stop loss bergerak. Kita perlu menggunakan pengoptimuman langkah demi langkah untuk mencari kombinasi parameter yang optimum.

ringkaskan

Strategi mengunci gegaran jalur lebar adalah strategi penembusan garis panjang yang agak stabil. Kami masih perlu mengoptimumkan parameter lebih lanjut dan menggabungkan indikator lain untuk meningkatkan kestabilan strategi.

Kod sumber strategi
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-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/
// © DojiEmoji

//@version=4
strategy("[KL] Bollinger Bands Consolidation Strategy",overlay=true,pyramiding=1)

// Timeframe {
backtest_timeframe_start = input(defval = timestamp("01 Apr 2016 13:30 +0000"), title = "Backtest Start Time", type = input.time)
USE_ENDTIME = input(false,title="Define backtest end-time (If false, will test up to most recent candle)")
backtest_timeframe_end = input(defval = timestamp("19 Apr 2021 19:30 +0000"), title = "Backtest End Time (if checked above)", type = input.time)
within_timeframe = true
// }

// Indicator: BOLL bands {
BOLL_length = 20//input(20,title="Periods to lookback for BOLL and ATR calc. (default 20)")
BOLL_src = close
BOLL_center = sma(BOLL_src, BOLL_length)
BOLL_sDEV_x2 = 2 * stdev(BOLL_src, BOLL_length)
BOLL_upper = BOLL_center + BOLL_sDEV_x2
BOLL_lower = BOLL_center - BOLL_sDEV_x2
plot(BOLL_center, "Basis", color=#872323, offset = 0)
BOLL_p1 = plot(BOLL_upper, "Upper", color=color.navy, offset = 0, transp=50)
BOLL_p2 = plot(BOLL_lower, "Lower", color=color.navy, offset = 0, transp=50)
fill(BOLL_p1, BOLL_p2, title = "Background", color=#198787, transp=85)
// }
// ATR and volatility Indicator {
ATR_x2 = atr(BOLL_length) * 2 // multiplier aligns with BOLL
avg_volat = sma(ATR_x2, BOLL_length)
//}

// Trailing stop loss {
var entry_price = float(0)
var trailing_SL_buffer = float(0)
var stop_loss_price = float(0)
trail_profit_line_color = color.green
UPDATE_ATR_TSL = false
if strategy.position_size == 0 or not within_timeframe // make TSL line less visible
    trail_profit_line_color := color.black
    stop_loss_price := close - trailing_SL_buffer
else if strategy.position_size > 0
    if UPDATE_ATR_TSL and ATR_x2 < trailing_SL_buffer
        trailing_SL_buffer := ATR_x2
    stop_loss_price := max(stop_loss_price, close[1] - trailing_SL_buffer)
plot(stop_loss_price,color=trail_profit_line_color)
// }


IGNORE_BOLL_SHAPE = false//input(false,title="Ignore BOLL (vs ATR) during entry (experimental)")
IGNORE_VOLATILITY = false///input(false,title="Ignore average ATR during entry (experimental)")
// Main:
if within_timeframe
    // ENTRY:
    if (ATR_x2 > BOLL_sDEV_x2 or IGNORE_BOLL_SHAPE) and (avg_volat < avg_volat[1] or IGNORE_VOLATILITY)
        if strategy.position_size == 0
            entry_price := close
            trailing_SL_buffer := ATR_x2
            stop_loss_price := close - ATR_x2
            strategy.entry("Long",strategy.long, comment="enter")
        if strategy.position_size > 0
            strategy.entry("Long",strategy.long, comment="+")

    // EXIT:
    if strategy.position_size > 0
        if low <= stop_loss_price
            if close > entry_price
                strategy.close("Long", comment="take profit")
            else if low <= entry_price
                strategy.close("Long", comment="stop loss")
    
            if strategy.position_size == 0
                entry_price := 0