Strategi perdagangan rentang berdasarkan osilator stokastik

ATR
Tanggal Pembuatan: 2024-06-17 14:52:10 Akhirnya memodifikasi: 2024-06-17 14:52:10
menyalin: 0 Jumlah klik: 568
1
fokus pada
1617
Pengikut

Strategi perdagangan rentang berdasarkan osilator stokastik

Ringkasan

Strategi ini menggunakan indikator berosilasi acak (Stochastic Oscillator) untuk mengidentifikasi kondisi overbought dan oversold di pasar, dan memicu perdagangan dengan parameter risiko dan imbalan yang telah ditentukan, dengan harapan untuk mendapatkan keuntungan dalam zona perdagangan yang berfluktuasi. Gagasan utama strategi ini adalah membeli di zona perdagangan yang rendah dan menjual di zona perdagangan yang tinggi, sambil secara ketat mengendalikan risiko.

Prinsip Strategi

  1. Ketika indikator oscillasi acak jatuh ke level oversold ((20), strategi membuka posisi lebih banyak; Ketika indikator oscillasi acak menembus level overbought ((80), strategi membuka posisi kosong.
  2. Stop loss dan stop-loss level diatur berdasarkan rata-rata true amplitude ((ATR) 2x, sementara risiko setiap transaksi dikendalikan dalam 1% dari ekuitas akun.
  3. Untuk mencegah overtrading, strategi ini memaksakan setidaknya 20 garis K di antara setiap transaksi untuk membiarkan periode pendinginan dan menghindari fluktuasi.

Keunggulan Strategis

  1. Strategi ini mampu menangkap pergerakan harga dalam zona perdagangan yang berfluktuasi, membeli di titik rendah dan menjual di titik tinggi dengan harapan mendapatkan keuntungan.
  2. Strategi ini menggunakan langkah-langkah manajemen risiko yang ketat, termasuk stop loss dan stop loss berbasis ATR dan risiko tetap 1% per transaksi, untuk membantu mengendalikan penarikan dan kerugian per transaksi.
  3. Dengan mengatur interval minimum antara transaksi (< 20 K-line), strategi ini menghindari transaksi yang sering dan tertipu oleh kebisingan pasar.
  4. Strategi ini memiliki logika yang jelas, mudah dipahami dan diterapkan, dan cocok untuk berbagai lingkungan pasar.

Risiko Strategis

  1. Keberhasilan strategi sangat bergantung pada identifikasi yang tepat dari zona perdagangan, dan identifikasi yang tidak akurat dari zona perdagangan dapat menyebabkan perdagangan yang merugikan.
  2. Strategi ini dapat kehilangan peluang perdagangan tren jika pasar menembus batas perdagangan dan membentuk tren.
  3. Meskipun strategi telah mengambil langkah-langkah manajemen risiko, dalam kondisi pasar yang ekstrim, kerugian yang lebih besar dari yang diharapkan masih dapat terjadi.
  4. Parameter strategi (seperti tingkat overbought/oversold, ATR, dll.) perlu dioptimalkan untuk kondisi pasar yang berbeda, dan parameter yang tidak tepat dapat menyebabkan kinerja yang buruk.

Arah optimasi strategi

  1. Pertimbangkan untuk menggabungkan indikator teknis lainnya (seperti MACD, RSI, dll.) untuk mengkonfirmasi sinyal perdagangan dan meningkatkan keandalan sinyal.
  2. Memperkenalkan mekanisme stop loss dan stop loss yang dinamis, misalnya dengan penyesuaian posisi stop loss seiring pergerakan harga ke arah yang menguntungkan, dengan harapan mendapatkan tingkat keuntungan yang lebih tinggi.
  3. Untuk identifikasi zona transaksi, dapat dieksplorasi menggunakan teknologi yang lebih canggih, seperti algoritma pembelajaran mesin, untuk meningkatkan akurasi.
  4. Dalam pasar tren, Anda dapat mempertimbangkan untuk memperkenalkan filter tren untuk menghindari perdagangan di pasar tren.

Meringkaskan

Strategi perdagangan berskala oscillasi berdasarkan indikator oscillasi acak mencoba untuk memicu perdagangan dalam zona perdagangan yang telah ditentukan sebelumnya, menggunakan sinyal overbought dan oversold dari indikator acak. Strategi ini mengendalikan risiko melalui manajemen risiko yang ketat dan interval perdagangan. Meskipun ada beberapa keuntungan dari strategi ini, keberhasilannya sangat bergantung pada identifikasi zona perdagangan yang benar.

Kode Sumber Strategi
/*backtest
start: 2023-06-11 00:00:00
end: 2024-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Range Trading with Stochastic", overlay=true)

// Input Parameters
overboughtLevel = input.int(80, title="Overbought Level", minval=1, maxval=100)
oversoldLevel = input.int(20, title="Oversold Level", minval=1, maxval=100)
stochLength = input.int(14, title="Stochastic Length", minval=1)
riskPerTrade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=100, step=0.01)
barsBetweenTrades = input.int(20, title="Bars Between Trades", minval=1)

// Calculate Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, stochLength), 3)
d = ta.sma(k, 3)

// Variables to Track Time Since Last Trade
var lastTradeBar = 0
barsSinceLastTrade = bar_index - lastTradeBar

// Risk Management
atr = ta.atr(14)
stopLoss = 2 * atr
takeProfit = 2 * atr
riskAmount = strategy.equity * riskPerTrade / 100
positionSize = 1

// Entry Conditions
longCondition = k < oversoldLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades
shortCondition = k > overboughtLevel and strategy.position_size == 0 and barsSinceLastTrade >= barsBetweenTrades

// Entry/Exit Orders
if longCondition
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Long Exit", "Long", stop=close - stopLoss, limit=close + takeProfit)
    lastTradeBar := bar_index // Update last trade bar
if shortCondition
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Short Exit", "Short", stop=close + stopLoss, limit=close - takeProfit)
    lastTradeBar := bar_index // Update last trade bar

// Plot Stochastic
plot(k, color=color.blue, title="%K")
plot(d, color=color.orange, title="%D")
hline(overboughtLevel, color=color.red, title="Overbought")
hline(oversoldLevel, color=color.green, title="Oversold")