Strategi BB+RSI+Aroon yang boleh dikonfigurasikan


Tarikh penciptaan: 2023-09-21 15:05:38 Akhirnya diubah suai: 2023-09-21 15:05:38
Salin: 0 Bilangan klik: 739
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggabungkan Bollinger Bands (BB), RSI (RSI) dan Aroon untuk memanfaatkan kelebihan setiap indikator dan memberikan isyarat masuk dan keluar yang cekap untuk perdagangan.

Prinsip Strategi

  1. Apabila harga menembusi BRI, tanda multihead akan muncul.

  2. Apabila RSI melintasi garisan overbought, ia menunjukkan isyarat pengesahan multihead.

  3. Apabila Aroon memakai dan memakai, ia menunjukkan isyarat pengesahan berbilang kepala.

  4. Apabila ketiga-tiga syarat di atas dipenuhi, lakukan lebih banyak lagi.

  5. Apabila harga melepasi Brin, isyarat kepala kosong akan ditunjukkan.

  6. Apabila RSI melintasi garis oversold, isyarat pengesahan kosong dipaparkan.

  7. Tanda pengesahan kepala kosong dipaparkan apabila Aroon memakai pakaian.

  8. Apabila ketiga-tiga syarat di atas dipenuhi bersama-sama, kosong.

Kelebihan Strategik

  • Parameter yang boleh dikonfigurasi, dioptimumkan untuk kombinasi terbaik
  • Pengesahan pelbagai petunjuk untuk meningkatkan ketepatan isyarat
  • Sesuai untuk pelbagai persekitaran pasaran
  • Logik perdagangan yang mudah dan mudah dilaksanakan

Risiko Strategik

  • Parameter tidak dioptimumkan dengan betul, mungkin menghasilkan terlalu banyak isyarat yang salah
  • Penambahbaikan dalam pelbagai indikator mungkin terlepas daripada perubahan yang cepat
  • Operasi terbalik meningkatkan frekuensi dan kos transaksi

Arah pengoptimuman

  • Pemantauan balik jangka masa berbilang pasaran mencari parameter terbaik
  • Menilai kesan setiap indikator dan hapuskan jika perlu
  • Cuba mengoptimumkan parameter berdasarkan pembelajaran mesin
  • Optimumkan kod strategi, mengurangkan jumlah pengiraan
  • Uji parameter masa pegangan yang berbeza

ringkaskan

Strategi ini menggabungkan kelebihan beberapa indikator untuk membentuk isyarat masuk yang lebih kuat. Kesan strategi dapat dinaikkan ke tahap yang lebih tinggi melalui pengoptimuman parameter, penghapusan indikator berlebihan dan kod pengoptimuman. Secara keseluruhannya, strategi ini menyediakan penyelesaian khusus yang berkesan untuk perdagangan.

Kod sumber strategi
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
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/
// Developed by Marco Jarquin as part of Arkansas 22 Project for Binary Options
// CBRA for binary options (Configurable Bollinger Bands, RSI and Aroon)

//@version=4
// ====================================================================================

//strategy("A22.CBRA.Strat", overlay=true, initial_capital=10000, currency="USD", calc_on_every_tick=true, default_qty_type=strategy.cash, default_qty_value=4000, commission_type=strategy.commission.cash_per_order, commission_value=0)

// Aroonish Parameters
// ====================================================================================

Aroonish_length = input(4, minval=1, title="Aroonish Lenght")
Aroonish_ConfVal = input(50, minval=0, maxval=100, step=25, title="Aroonish Confirmation Value")
Aroonish_upper = 100 * (-highestbars(high, Aroonish_length+1) + Aroonish_length)/Aroonish_length
Aroonish_lower = 100 * (-lowestbars(low, Aroonish_length+1) + Aroonish_length)/Aroonish_length

// Aroonish confirmations
// ====================================================================================
Aroonish_ConfLong = (Aroonish_lower >= Aroonish_ConfVal) and (Aroonish_upper < Aroonish_lower)
Aroonish_ConfShrt = (Aroonish_upper >= Aroonish_ConfVal) and (Aroonish_upper > Aroonish_lower)

plotshape(crossover(Aroonish_lower, Aroonish_upper), color = color.red, style = shape.triangledown, location = location.abovebar, size = size.auto, title = "Ar-B")
plotshape(crossover(Aroonish_upper, Aroonish_lower), color = color.green, style = shape.triangleup, location = location.belowbar, size = size.auto, transp = 0, title = "Ar-S")

// RSI Parameters
// ====================================================================================
RSI_length = input(4, title="RSI Lenght")
RSI_overSold = input(20, title="RSI Oversold Limit")
RSI_overBought = input(80, title="RSI Overbought Limit" )

RSI = rsi(close, RSI_length)

plotshape(crossover(RSI, RSI_overSold), color = color.orange, style = shape.square, location = location.belowbar, size = size.auto, title = "RSI-B")
plotshape(crossunder(RSI, RSI_overBought), color = color.orange, style = shape.square, location = location.abovebar, size = size.auto, transp = 0, title = "RSI-S")

// Bollinger Parameters
// ====================================================================================
BB_length = input(20, minval=1, title="Bollinger Lenght")
BB_mult = input(2.5, minval=0.1, maxval=50, step=0.1, title="Bollinger Std Dev")
// BB_bars = input(3, minval=1, maxval=5, title="Check bars after crossing")

BB_basis = sma(close, BB_length)
BB_dev = BB_mult * stdev(close, BB_length)

BB_upper = BB_basis + BB_dev
BB_lower = BB_basis - BB_dev

p1 = plot(BB_upper, color=color.blue)
p2 = plot(BB_lower, color=color.blue)

// Bars to have the operation open
// ====================================================================================
nBars = input(3, minval=1, maxval=30, title="Bars to keep the operation open")

// Strategy condition short or long
// ====================================================================================
ConditionShrt = ((crossunder(close, BB_upper) or crossunder(close[1], BB_upper[1])) and Aroonish_ConfShrt) and (crossunder(RSI, RSI_overBought) or crossunder(RSI[1], RSI_overBought[1]))
ConditionLong = ((crossover(close, BB_lower) or crossover(close[1], BB_lower[1])) and Aroonish_ConfLong) and (crossover(RSI, RSI_overSold) or crossover(RSI[1], RSI_overSold[1]))

plotshape(crossover(close, BB_lower), color = color.blue, style = shape.circle, location = location.belowbar, size = size.auto, title = "BB-B")
plotshape(crossunder(close, BB_upper), color = color.blue, style = shape.circle, location = location.abovebar, size = size.auto, transp = 0, title = "BB-S")


// Make input options that configure backtest date range
// ====================================================================================
iMo = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12)
iDy = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31)
iYr = input(title="Start Year", type=input.integer, defval=(2020), minval=1800, maxval=2100)

eMo = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12)
eDy = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=31)
eYr = input(title="End Year", type=input.integer, defval=(2021), minval=1800, maxval=2100)

// Look if the close time of the current bar falls inside the date range
// ====================================================================================
inDateRange = true


// Evaluates conditions to enter short or long
// ====================================================================================
if (inDateRange and ConditionLong)
    strategy.entry("A22.L", strategy.long)

if (inDateRange and ConditionLong[nBars])
    strategy.close("A22.L", comment="A22.L Exit")
    
if (inDateRange and ConditionShrt)
    strategy.entry("A22.S", strategy.short)

if (inDateRange and ConditionShrt[nBars])
    strategy.close("A22.S", comment="A22.S Exit")

if (not inDateRange)
    strategy.close_all()