Strategi stop loss bergerak yang menggabungkan siklus Parobel dan Bollinger band


Tanggal Pembuatan: 2024-02-02 11:05:57 Akhirnya memodifikasi: 2024-02-02 11:05:57
menyalin: 2 Jumlah klik: 749
1
fokus pada
1617
Pengikut

Strategi stop loss bergerak yang menggabungkan siklus Parobel dan Bollinger band

Ringkasan

Artikel ini akan membahas strategi perdagangan kuantitatif yang menggabungkan indikator siklus parobel dengan indikator Brin untuk menetapkan strategi stop loss bergerak. Strategi ini menggunakan perhitungan garis siklus parobel untuk menentukan arah tren pasar, kemudian menggunakan dinamika tren atas dan bawah Brin untuk menetapkan posisi stop loss, sehingga memungkinkan stop loss bergerak untuk mengunci keuntungan.

Prinsip Strategi

Pertama, strategi ini menggunakan indikator parobel untuk menilai tren pasar saat ini. Jika harga tutup hari ini melewati garis siklus parobel kemarin, maka harga pasar akan berbalik menjadi bullish, dan jika harga tutup hari ini melewati garis siklus kemarin, maka harga pasar akan turun, dan Anda bisa melakukan trading.

Kedua, strategi ini menggabungkan stop loss dengan indikator Brin Belt yang mengatur dinamika. Jalur atas di Brin Belt dapat dianggap sebagai zona overbought dan jalur bawah sebagai zona oversold. Setelah melakukan over, jika harga kembali jatuh ke bawah Brin Belt, maka stop loss akan terjadi. Setelah melakukan gap, jika harga kembali menembus jalur atas, maka stop loss akan terjadi.

Dengan prinsip di atas, strategi ini memungkinkan untuk menentukan arah pasar sekaligus mengatur mekanisme stop loss yang dinamis untuk melacak keuntungan. Hal ini memungkinkan untuk menangkap sebagian kenaikan dan penurunan dalam tren besar, dan juga dapat mengunci keuntungan dengan stop loss, menghindari risiko.

Keunggulan Strategis

Berbeda dengan strategi stop loss tradisional yang hanya menetapkan satu stop loss tetap, strategi ini menggunakan indikator Brin sebagai garis stop loss sehingga garis stop loss dapat bergerak seiring dengan pergerakan harga. Hal ini memungkinkan untuk mengunci lebih banyak keuntungan dalam situasi yang lebih besar. Selain itu, strategi ini menambahkan indikator Brin untuk menilai zona overbought dan oversold lebih akurat daripada menggunakan garis siklus parobel saja.

Risiko dan Solusi

Risiko utama dari strategi ini adalah bahwa penilaian indikator parobel tidak memiliki kecenderungan yang kuat. Dalam situasi yang bergejolak, harga mungkin naik dan turun beberapa kali melintasi garis siklus parobel, sehingga strategi menghasilkan perdagangan yang sering tetapi sedikit menguntungkan. Pada saat ini, biaya perdagangan dan biaya slippage mungkin menjadi proporsi yang lebih besar, mengurangi profitabilitas strategi.

Untuk menghadapi risiko di atas, pertimbangan dapat dilakukan untuk menyesuaikan parameter, memperbesar tingkat perubahan pada garis periodik Parobel, mengurangi kemungkinan kesalahan penilaian; atau digabungkan dengan indikator lain untuk memfilter waktu masuk ke pasar. Misalnya, indikator getaran dapat ditambahkan untuk menilai apakah tren atau getaran, untuk mengurangi perdagangan yang tidak perlu.

Optimasi Strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalkan parameter indikator Parobel, menyesuaikan kecepatan perubahan parameter indikator, mengurangi probabilitas kesalahan penilaian

  2. Menambahkan filter untuk indikator teknis lainnya, seperti menambahkan MACD, KD dan lain-lain untuk menilai jenis perdagangan, untuk menghindari arbitrage di pasar yang bergoyang

  3. Optimalkan parameter bandwidth Brin, menyesuaikan parameter bandwidth Brin agar lebih dekat dengan perubahan harga

  4. Meningkatkan indikator kuantitatif, seperti volume transaksi, jumlah kepemilikan, dan penilaian tambahan untuk menghindari false breakout

  5. Menggabungkan informasi dasar saham untuk menghindari masalah yang mempengaruhi kinerja strategi kepemilikan saham

Meringkaskan

Strategi ini menggunakan parameter Parobel untuk menentukan arah dan kekuatan tren pasar, kemudian menggunakan Bollinger Bands ke bawah untuk menetapkan strategi stop loss sebagai posisi stop loss bergerak. Strategi ini memungkinkan kombinasi pelacakan tren dan kontrol risiko. Dibandingkan dengan strategi stop loss tetap tradisional, strategi ini dapat menghasilkan keuntungan yang lebih tinggi dalam situasi yang lebih besar.

Kode 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")