Strategi Osilator Stokastik Multi-Kerangka Waktu dan Sistem Perdagangan Konfirmasi Tren

STOCH MTF HH/LL SL/TP KDJ
Tanggal Pembuatan: 2025-02-19 10:53:25 Akhirnya memodifikasi: 2025-02-19 10:53:25
menyalin: 5 Jumlah klik: 413
1
fokus pada
1617
Pengikut

Strategi Osilator Stokastik Multi-Kerangka Waktu dan Sistem Perdagangan Konfirmasi Tren

Ringkasan

Strategi ini adalah sistem perdagangan yang didasarkan pada indikator stochastic acak multi-frame, yang menggabungkan konfirmasi tren dan analisis bentuk harga. Strategi ini menggunakan tiga periode waktu 15 menit, 30 menit, dan 60 menit untuk mengidentifikasi peluang perdagangan melalui sinyal silang indikator acak dan konfirmasi bentuk yang lebih tinggi (Higher High) dan lebih rendah (Lower Low).

Prinsip Strategi

Logika inti dari strategi ini mencakup bagian-bagian utama berikut:

  1. Analisis pergerakan pasar menggunakan tiga periode waktu yang berbeda: 15 menit, 30 menit, dan 60 menit
  2. Pada periode waktu utama (15 menit), ketika garis K menembus garis D dan berada di zona oversold, kombinasi dengan bentuk titik rendah yang lebih tinggi mengkonfirmasi sinyal beli
  3. Demikian pula, ketika garis K jatuh di bawah garis D dan berada di zona overbought, kombinasi dengan bentuk konfirmasi harga tinggi yang lebih rendah memberikan sinyal jual
  4. Menggunakan stop loss 3.7% dan target keuntungan 1.8% untuk mengelola risiko dan keuntungan per transaksi

Keunggulan Strategis

  1. Analisis multi-siklus waktu memberikan pandangan pasar yang lebih komprehensif dan dapat lebih baik memfilter sinyal palsu
  2. Kombinasi analisis pola harga meningkatkan keandalan sinyal perdagangan
  3. Parameter manajemen risiko tetap membuat hasil perdagangan lebih stabil dan terkendali
  4. Strategi untuk lingkungan pasar yang lebih berfluktuasi
  5. Sinyal masuk dan keluar otomatis mengurangi dampak emosional dari penilaian subjektif

Risiko Strategis

  1. Sinyal palsu sering terjadi di pasar yang bergejolak
  2. Pengaturan stop loss dan profit tetap mungkin tidak cocok untuk semua kondisi pasar
  3. Sinyal dengan periode waktu yang panjang dapat mengalami lag
  4. Dalam pasar yang cepat tren, stop-loss mungkin terlambat untuk mengunci keuntungan
  5. Dibutuhkan pengelolaan dana yang lebih besar untuk menanggung stop loss sebesar 3,7%

Arah optimasi strategi

  1. Tujuan stop loss dan profit dapat dipertimbangkan untuk disesuaikan dengan dinamika fluktuasi pasar
  2. Meningkatkan indikator volume transaksi sebagai sinyal konfirmasi tambahan
  3. Memperkenalkan indikator intensitas tren untuk memperbaiki kinerja di pasar yang bergolak
  4. Mengoptimalkan pengaturan berat antara periode waktu yang berbeda
  5. Pertimbangkan untuk menambahkan indikator sentimen pasar untuk meningkatkan akurasi sinyal.

Meringkaskan

Ini adalah sistem perdagangan lengkap yang menggabungkan analisis siklus waktu dan pengesahan tren. Dengan menggunakan indikator acak dan pola harga, dapat menangkap titik-titik perubahan pasar dengan lebih baik. Parameter manajemen risiko tetap, meskipun sederhana, menjamin konsistensi perdagangan.

Kode Sumber Strategi
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Swing Fairas Oil", overlay=true)

// Pilih Timeframe Utama & 2 Timeframe Konfirmasi
tf_main = "15"
tf_mid = "30"
tf_high = "60"

// Parameter Stochastic
length = input(15, title="Stochastic Length")
k_smooth = input(4, title="K Smoothing")
d_smooth = input(5, title="D Smoothing")

// Overbought & Oversold Levels
overbought = input(85, title="Overbought Level")
oversold = input(15, title="Oversold Level")

// Stochastic pada Timeframe Utama
k1 = ta.sma(ta.stoch(close, high, low, length), k_smooth)
d1 = ta.sma(k1, d_smooth)

// Stochastic pada Timeframe Menengah
k2 = request.security(syminfo.tickerid, tf_mid, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d2 = request.security(syminfo.tickerid, tf_mid, ta.sma(k2, d_smooth))

// Stochastic pada Timeframe Tinggi
k3 = request.security(syminfo.tickerid, tf_high, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d3 = request.security(syminfo.tickerid, tf_high, ta.sma(k3, d_smooth))

// **Konfirmasi Higher High & Lower Low**
hh = ta.highest(high, 5)   // Highest High dalam 5 candle terakhir
ll = ta.lowest(low, 5)     // Lowest Low dalam 5 candle terakhir

// **Kondisi Buy**
confirm_buy = ta.crossover(k1, d1) and k1 < oversold  // Stochastic Bullish
higher_low = low > ta.lowest(low[1], 5)  // Higher Low terbentuk

longCondition = confirm_buy and higher_low

// **Kondisi Sell**
confirm_sell = ta.crossunder(k1, d1) and k1 > overbought  // Stochastic Bearish
lower_high = high < ta.highest(high[1], 5)  // Lower High terbentuk

shortCondition = confirm_sell and lower_high

// Stop Loss & Take Profit
sl = input(3.7, title="Stop Loss (%)") / 100
tp = input(1.8, title="Take Profit (%)") / 100

longStopLoss = close * (1 - sl)
longTakeProfit = close * (1 + tp)

shortStopLoss = close * (1 + sl)
shortTakeProfit = close * (1 - tp)

// Eksekusi Order
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell TP/SL", from_entry="Buy", stop=longStopLoss, limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover TP/SL", from_entry="Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Label Buy & Sell
if longCondition
    label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)

if shortCondition
    label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)

// Label Stop Loss & Take Profit
if longCondition
    label.new(bar_index, longStopLoss, "SL: " + str.tostring(longStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, longTakeProfit, "TP: " + str.tostring(longTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)

if shortCondition
    label.new(bar_index, shortStopLoss, "SL: " + str.tostring(shortStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, shortTakeProfit, "TP: " + str.tostring(shortTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)