Strategi henti rugi bergerak menggabungkan kitaran Parobel dan jalur Bollinger


Tarikh penciptaan: 2024-02-02 11:05:57 Akhirnya diubah suai: 2024-02-02 11:05:57
Salin: 2 Bilangan klik: 749
1
fokus pada
1617
Pengikut

Strategi henti rugi bergerak menggabungkan kitaran Parobel dan jalur Bollinger

Gambaran keseluruhan

Artikel ini akan membincangkan strategi perdagangan kuantitatif yang menggabungkan indikator kitaran Parobel dengan indikator Brin untuk menetapkan strategi berhenti bergerak. Strategi ini menggunakan garis kitaran Parobel untuk menentukan arah trend pasaran, kemudian menggunakan pergerakan Brin untuk menetapkan kedudukan berhenti, yang membolehkan berhenti bergerak untuk mengunci keuntungan.

Prinsip Strategi

Pertama, strategi ini menggunakan parameter Parobel untuk menentukan trend pasaran semasa. Apabila harga penutupan hari ini melintasi garis kitaran Parobel semalam, anda boleh melakukan lebih banyak dengan menganggap bahawa harga telah berbalik menjadi bullish; Apabila harga penutupan hari ini melintasi garis kitaran semalam, harga turun, anda boleh melakukan pengurangan.

Kedua, strategi ini menggabungkan titik hentian yang ditetapkan oleh indikator Brin Belt secara dinamik. Jalur atas dalam Brin Belt boleh dilihat sebagai kawasan yang terlalu banyak dibeli, dan jalur bawah sebagai kawasan yang terlalu banyak dijual. Apabila dilakukan lebih banyak, jika harga jatuh kembali ke bawah Brin Belt, maka ia akan menghentikan kedudukan yang sama; apabila dilakukan kosong, jika harga kembali menembusi jalur atas, maka ia akan menghentikan jalan keluar.

Melalui prinsip di atas, strategi ini dapat menentukan arah pasaran, dan pada masa yang sama menetapkan mekanisme berhenti kehilangan yang dinamik untuk mengesan keuntungan. Ini membolehkan ia menangkap kenaikan dan penurunan sebahagian dalam trend besar, dan juga dapat mengunci keuntungan dengan berhenti kehilangan, untuk mengelakkan risiko.

Kelebihan Strategik

Berbanding dengan strategi berhenti tradisional yang hanya menetapkan satu titik berhenti yang tetap, strategi ini menggunakan indikator Brin sebagai garisan berhenti, yang membolehkan garisan berhenti bergerak dengan pergerakan harga. Ini membolehkan ia mengunci lebih banyak keuntungan dalam keadaan yang lebih besar. Selain itu, berbanding dengan menggunakan garisan kitaran Parobel secara tunggal, strategi ini menambah indikator Brin untuk menilai kawasan yang lebih banyak dibeli dan lebih banyak dijual, dapat lebih tepat.

Risiko dan penyelesaian

Risiko utama strategi ini adalah bahawa penilaian parameter Parobel tidak mempunyai kecenderungan yang kuat. Dalam keadaan goyah, harga mungkin naik dan turun beberapa kali melintasi garis kitaran Parobel, menjadikan strategi menghasilkan perdagangan yang kerap tetapi sedikit menguntungkan. Pada masa ini, kos perdagangan dan kos slip mungkin menyumbang kepada peratusan besar, yang mengurangkan keuntungan strategi.

Untuk menangani risiko yang disebutkan di atas, anda boleh mempertimbangkan untuk menyesuaikan parameter, meningkatkan tahap perubahan pada garis peredaran Parobel, mengurangkan kemungkinan kesalahan; atau menggabungkan penapis masa masuk ke pasaran dengan penunjuk lain. Contohnya, penunjuk gegaran boleh dimasukkan untuk menilai keadaan sebagai tren atau gegaran, untuk mengurangkan perdagangan yang tidak perlu.

Pengoptimuman Strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter penunjuk Parobel, menyesuaikan kelajuan perubahan parameter penunjuk, mengurangkan kebarangkalian kesalahan

  2. Menambah penapis untuk petunjuk teknikal lain, seperti penambahan MACD, KD dan lain-lain untuk menilai jenis pasaran, mengelakkan pasaran yang bergolak dari penarikan

  3. Mengoptimumkan parameter Brinband, menyesuaikan parameter lebar jalur untuk menjadikan Brinband lebih dekat dengan perubahan harga

  4. Meningkatkan ukuran kuantiti, seperti jumlah dagangan, jumlah pegangan dan lain-lain untuk mengelakkan penembusan palsu

  5. Menggabungkan maklumat asas saham untuk mengelakkan masalah yang menjejaskan prestasi saham pegangan strategi

ringkaskan

Strategi ini menggunakan parameter Parobel untuk menentukan arah dan kekuatan trend pasaran, dan kemudian menggunakan Bolling Belt untuk menetapkan stop loss sebagai tempat berhenti bergerak. Strategi ini mewujudkan gabungan trend dan kawalan risiko. Berbanding dengan strategi berhenti tetap tradisional, strategi ini dapat memperoleh keuntungan yang lebih tinggi dalam keadaan yang lebih besar. Dengan pengoptimuman parameter dan menambah petunjuk penilaian tambahan, anda dapat meningkatkan kestabilan strategi dan mengurangkan perdagangan yang tidak perlu.

Kod sumber strategi
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
basePeriod: 15m
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/
// © maxencetajet

//@version=5
strategy("HA_RSI", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=0.5, slippage=25)

closeHA = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"), 
     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("5 July 2022"),
     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.")

inTradeWindow = true

swingHighV = input.int(10, title="Swing High", group="number of past candles")
swingLowV = input.int(10, title="Swing Low", group="number of past candles")

emaV = input.int(200, title="Ema Period", group="EMA")

rsiV = input.int(14, title="RSI Period", group="RSI")

start = input(0.02, group="Parabolic SAR")
increment = input(0.02, group="Parabolic SAR")
maximum = input(0.2, "Max Value", group="Parabolic SAR")

ema = ta.ema(closeHA, emaV)
rsi = ta.rsi(closeHA, rsiV)
SAR = ta.sar(start, increment, maximum)

myColor = SAR < low?color.green:color.red

longcondition = closeHA > ema and rsi > 50 and closeHA[1] > SAR and closeHA[1] < SAR[1] 
shortcondition = closeHA < ema and rsi < 50 and closeHA[1] < SAR and closeHA[1] > SAR[1]

float risk_long = na
float risk_short = na
float stopLoss = na
float entry_price = na
float takeProfit = na

risk_long := risk_long[1]
risk_short := risk_short[1]

swingHigh = ta.highest(closeHA, swingHighV)
swingLow = ta.lowest(closeHA, swingLowV)

if strategy.position_size == 0 and longcondition and inTradeWindow
    risk_long := (close - swingLow) / close
    strategy.entry("long", strategy.long, comment="Buy")
    
if strategy.position_size == 0 and shortcondition and inTradeWindow
    risk_short := (swingHigh - close) / close       
    strategy.entry("short", strategy.short, comment="Sell")
    
if strategy.position_size > 0

    stopLoss := strategy.position_avg_price * (1 - risk_long)
    entry_price := strategy.position_avg_price
    strategy.exit("long exit", "long", stop = stopLoss)
    
if strategy.position_size < 0 

    stopLoss := strategy.position_avg_price * (1 + risk_short)
    entry_price := strategy.position_avg_price
    strategy.exit("short exit", "short", stop = stopLoss)

if closeHA[1] < SAR and close > strategy.position_avg_price
    strategy.close("long", comment="Exit Long")
    
if closeHA[1] > SAR and close < strategy.position_avg_price
    strategy.close("short", comment="Exit Short")

p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
fill(p_sl, p_ep, color.new(color.red, transp=85))

plot(SAR, "ParabolicSAR", style=plot.style_circles, color=myColor, linewidth=1)
plot(ema, color=color.white, linewidth=2, title="EMA")