Strategi Breakout Rata-rata Pembalikan


Tanggal Pembuatan: 2023-12-20 14:48:57 Akhirnya memodifikasi: 2023-12-20 14:48:57
menyalin: 0 Jumlah klik: 638
1
fokus pada
1621
Pengikut

Strategi Breakout Rata-rata Pembalikan

Ringkasan

Strategi reversal breakout adalah strategi reversal tren dengan kombinasi berbagai faktor. Ini menggabungkan beberapa indikator teknis seperti moving average, Brinband, CCI, RSI, dan lainnya untuk menangkap peluang untuk membalikkan harga dari zona overbought dan oversold. Strategi ini juga menggabungkan analisis dispersi reguler untuk mendeteksi apakah tren saat ini konsisten dengan yang sebelumnya, sehingga menghindari perdagangan palsu.

Prinsip Strategi

Logika inti dari strategi ini adalah bahwa ketika harga berbalik dari zona overbought ke zona oversold, melakukan shorting yang tepat. Secara khusus, strategi ini menilai peluang untuk berbalik dari empat aspek:

  1. Indikator CCI atau Indikator Momentum mengirimkan sinyal Gold Fork Dead Fork untuk menilai overbought dan oversold.

  2. Indikator RSI menentukan apakah berada di zona overbought atau oversold. RSI di atas 65 adalah zona overbought dan di bawah 35 adalah zona oversold.

  3. Dengan menggunakan Brin Belt di bawah rel, menilai apakah harga menyimpang dari zona normal. Ketika harga kembali ke zona normal, mungkin berbalik.

  4. Untuk mendeteksi dispersi normal RSI, hindari mengejar false breakout.

Jika kondisi di atas terpenuhi, strategi akan mengambil langkah ke arah yang berlawanan. Dan mengatur posisi stop loss untuk mengendalikan risiko.

Keunggulan Strategis

Keuntungan terbesar dari strategi ini adalah kombinasi dari beberapa indikator untuk menilai peluang terbalik, rata-rata tingkat kemenangan yang lebih tinggi. Secara khusus, ada beberapa poin utama:

  1. Multi faktor penilaian, reliabilitas yang lebih tinggi. Tidak hanya bergantung pada satu indikator, mengurangi kemungkinan kesalahan penilaian.

  2. Perdagangan reversal memiliki probabilitas menang yang tinggi. Perdagangan reversal adalah metode perdagangan yang lebih andal.

  3. Mengindikasikan dispersi, menghindari perburuan palsu, dan mengurangi risiko sistemik.

  4. Pengendalian risiko dari mekanisme penghentian kerugian.

Risiko dan Solusi

Strategi ini juga memiliki beberapa risiko, terutama yang berkaitan dengan:

  1. Pengertian titik waktu pembalikan tidak benar. menyebabkan stop loss dipicu. dapat memperluas jangkauan stop loss sesuai.

  2. Setelan parameter Brin-band yang tidak tepat, menganggap harga normal sebagai abnormal. Harus bekerja sama dengan setelan parameter tingkat fluktuasi pasar.

  3. Jumlah transaksi mungkin lebih banyak. Perluasan yang tepat dari berbagai parameter penilaian seperti CCI, mengurangi frekuensi transaksi.

  4. Keseimbangan multifungsi dapat bervariasi. Parameter indikator harus dinilai berdasarkan data historis.

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter indikator secara otomatis.

  2. Menambahkan indikator Shale, indikator amplitudo dan lain-lain untuk menilai intensitas overbought dan oversold.

  3. Meningkatkan volume transaksi untuk menentukan reliabilitas. Misalnya volume transaksi, data kepemilikan, dll.

  4. Menggabungkan data blockchain untuk menilai sentimen pasar. Meningkatkan kemampuan adaptasi strategi.

  5. Memperkenalkan mekanisme penangguhan kerugian adaptif. Mengatur stop loss sesuai dengan perubahan volatilitas pasar.

Meringkaskan

Strategi reversal mean breakthrough menggunakan berbagai indikator untuk menilai peluang reversal. Dengan risiko yang terkendali, probabilitas kemenangannya lebih besar. Strategi ini memiliki kepraktisan yang kuat dan ada ruang untuk pengoptimalan lebih lanjut. Jika parameternya diatur dengan benar, efek yang lebih ideal harus diperoleh.

Kode Sumber Strategi
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='BroTheJo Strategy', shorttitle='BTJ INV', overlay=true)

// Input settings
stopLossInPips = input.int(10, minval=0, title='Stop Loss (in Pips)')
ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum'])
ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length')
useDivergence = input.bool(false, title='Find Regular Bullish/Bearish Divergence')
rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level')
rsiOversold = input.int(35, minval=1, title='RSI Oversold Level')
rsiLength = input.int(14, minval=1, title='RSI Length')
plotMeanReversion = input.bool(true, 'Plot Mean Reversion Bands on the chart')
emaPeriod = input(200, title='Lookback Period (EMA)')
bandMultiplier = input.float(1.6, title='Outer Bands Multiplier')

// CCI and Momentum calculation
momLength = ccimomCross == 'Momentum' ? ccimomLength : 10
mom = close - close[momLength]
cci = ta.cci(close, ccimomLength)
ccimomCrossUp = ccimomCross == 'Momentum' ? ta.cross(mom, 0) : ta.cross(cci, 0)
ccimomCrossDown = ccimomCross == 'Momentum' ? ta.cross(0, mom) : ta.cross(0, cci)

// RSI calculation
src = close
up = ta.rma(math.max(ta.change(src), 0), rsiLength)
down = ta.rma(-math.min(ta.change(src), 0), rsiLength)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
oversoldAgo = rsi[0] <= rsiOversold or rsi[1] <= rsiOversold or rsi[2] <= rsiOversold or rsi[3] <= rsiOversold
overboughtAgo = rsi[0] >= rsiOverbought or rsi[1] >= rsiOverbought or rsi[2] >= rsiOverbought or rsi[3] >= rsiOverbought

// Regular Divergence Conditions
bullishDivergenceCondition = rsi[0] > rsi[1] and rsi[1] < rsi[2]
bearishDivergenceCondition = rsi[0] < rsi[1] and rsi[1] > rsi[2]

// Mean Reversion Indicator
meanReversion = plotMeanReversion ? ta.ema(close, emaPeriod) : na
stdDev = plotMeanReversion ? ta.stdev(close, emaPeriod) : na
upperBand = plotMeanReversion ? meanReversion + stdDev * bandMultiplier : na
lowerBand = plotMeanReversion ? meanReversion - stdDev * bandMultiplier : na

// Entry Conditions
prevHigh = ta.highest(high, 1)
prevLow = ta.lowest(low, 1)
shortEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion)
longEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion)

// Plotting
oldShortEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition)
oldLongEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition)
plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, text='B', location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(oldShortEntryCondition, title='SELL', style=shape.triangledown, text='S', location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Strategy logic
if (longEntryCondition)
    stopLoss = close - stopLossInPips
    strategy.entry("Buy", strategy.long)
    strategy.exit("exit", "Buy", stop=stopLoss)
if (shortEntryCondition)
    stopLoss = close + stopLossInPips
    strategy.entry("Sell", strategy.short)
    strategy.exit("exit", "Sell", stop=stopLoss)

// Close all open positions when outside of bands
closeAll = (high >= upperBand) or (low <= lowerBand)

if (closeAll)
    strategy.close_all("Take Profit/Cut Loss")

// Plotting
plot(upperBand, title='Upper Band', color=color.fuchsia, linewidth=1)
plot(meanReversion, title='Mean', color=color.gray, linewidth=1)
plot(lowerBand, title='Lower Band', color=color.blue, linewidth=1)