Sumber daya yang dimuat... Pemuatan...

Strategi perdagangan rentang volatilitas berdasarkan osilator stokastik

Penulis:ChaoZhang, Tanggal: 2024-06-17 14:52:10
Tag:ATR

img

Gambaran umum

Strategi ini menggunakan Stochastic Oscillator untuk mengidentifikasi kondisi pasar yang terlalu banyak dibeli dan terlalu banyak dijual, memicu perdagangan dengan parameter risiko dan imbalan yang telah ditentukan untuk memanfaatkan fluktuasi harga dalam kisaran perdagangan yang fluktuatif.

Logika Strategi

  1. Ketika Stochastic Oscillator melintasi di bawah tingkat oversold (20), strategi memasuki posisi panjang; ketika melintasi di atas tingkat overbought (80), strategi memasuki posisi pendek.
  2. Stop-loss dan level take-profit ditetapkan berdasarkan 2x Average True Range (ATR), dan setiap perdagangan berisiko 1% dari ekuitas akun.
  3. Untuk mencegah overtrading, strategi ini menerapkan minimal 20 bar antara setiap perdagangan, memungkinkan periode pendinginan dan menghindari whipsaws.

Keuntungan Strategi

  1. Strategi ini dapat menangkap fluktuasi harga dalam rentang perdagangan yang tidak stabil, membeli pada titik rendah dan menjual pada titik tinggi untuk berpotensi mendapatkan keuntungan.
  2. Ini menggunakan langkah-langkah manajemen risiko yang ketat, termasuk tingkat stop-loss dan take-profit berbasis ATR dan risiko tetap 1% per perdagangan, yang membantu mengendalikan drawdown dan kerugian tunggal perdagangan.
  3. Dengan menetapkan interval minimum antara perdagangan (20 bar), strategi ini menghindari perdagangan yang sering dan tertipu oleh kebisingan pasar.
  4. Logika strategi jelas, mudah dimengerti, dan diterapkan, membuatnya cocok untuk aplikasi di berbagai lingkungan pasar.

Risiko Strategi

  1. Keberhasilan strategi sebagian besar tergantung pada pengidentifikasian rentang perdagangan yang benar; jika rentang tersebut salah diidentifikasi, hal itu dapat menyebabkan kehilangan perdagangan.
  2. Jika pasar keluar dari kisaran perdagangan dan membentuk tren, strategi dapat kehilangan peluang mengikuti tren.
  3. Terlepas dari langkah-langkah manajemen risiko yang ada, strategi masih dapat mengalami kerugian yang melebihi harapan dalam kondisi pasar yang ekstrim.
  4. Parameter strategi (misalnya, tingkat overbought/oversold, ATR multiple) perlu dioptimalkan untuk kondisi pasar yang berbeda; parameter yang tidak tepat dapat menyebabkan kinerja yang buruk.

Arah Optimasi Strategi

  1. Pertimbangkan untuk menggabungkan indikator teknis lainnya (misalnya, MACD, RSI) untuk mengkonfirmasi sinyal perdagangan dan meningkatkan keandalan sinyal.
  2. Memperkenalkan mekanisme stop-loss dan take-profit yang dinamis, seperti menyesuaikan tingkat stop-loss saat harga bergerak ke arah yang menguntungkan, untuk berpotensi mencapai pengembalian yang lebih tinggi.
  3. Untuk identifikasi jangkauan perdagangan, jelajahi menggunakan teknik yang lebih canggih, seperti algoritma pembelajaran mesin, untuk meningkatkan akurasi.
  4. Di pasar tren, pertimbangkan untuk memperkenalkan filter tren untuk menghindari perdagangan melawan tren.

Ringkasan

Strategi trading range volatility berdasarkan Stochastic Oscillator berusaha untuk memanfaatkan sinyal overbought dan oversold oscillator dalam range trading yang telah ditentukan sebelumnya. Strategi ini mengendalikan risiko melalui manajemen risiko dan interval perdagangan yang ketat. Meskipun strategi ini memiliki keuntungan tertentu, kesuksesannya sebagian besar tergantung pada pengidentifikasian range trading yang benar. Arah optimasi masa depan termasuk menggabungkan indikator teknis lainnya, memperkenalkan tingkat stop-loss dan take-profit yang dinamis, menggunakan teknik identifikasi range yang lebih canggih, dan menambahkan filter tren.


/*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")



Berkaitan

Lebih banyak