Strategi Pengayun Stokastik berbilang masa dan Sistem Perdagangan Pengesahan Trend

STOCH MTF HH/LL SL/TP KDJ
Tarikh penciptaan: 2025-02-19 10:53:25 Akhirnya diubah suai: 2025-02-19 10:53:25
Salin: 5 Bilangan klik: 413
1
fokus pada
1617
Pengikut

Strategi Pengayun Stokastik berbilang masa dan Sistem Perdagangan Pengesahan Trend

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan yang berdasarkan stochastic, yang menggabungkan pengesahan trend dan analisis bentuk harga. Strategi ini menggunakan tiga kitaran masa 15 minit, 30 minit dan 60 minit, untuk mengenal pasti peluang perdagangan melalui isyarat silang indikator rawak dan pengesahan bentuk yang lebih tinggi dan lebih rendah.

Prinsip Strategi

Logik teras strategi merangkumi bahagian penting berikut:

  1. Menggunakan tiga tempoh masa yang berbeza (15 minit, 30 minit, 60 minit) untuk menganalisis pergerakan pasaran
  2. Pada kitaran masa utama (15 minit), apabila garis K melangkaui garis D dan berada di kawasan oversold, gabungan bentuk rendah yang lebih tinggi mengesahkan isyarat beli
  3. Begitu juga, apabila garis K jatuh di bawah garis D dan berada di kawasan overbought, ia memberi isyarat jual yang disahkan dengan bentuk titik tinggi yang lebih rendah
  4. Menggunakan sasaran stop loss 3.7% dan keuntungan 1.8% untuk menguruskan risiko dan keuntungan setiap perdagangan

Kelebihan Strategik

  1. Analisis kitaran masa berbilang memberikan pandangan pasaran yang lebih menyeluruh dan dapat menyaring isyarat palsu dengan lebih baik
  2. Analisis bentuk harga ditambah dengan kebolehpercayaan isyarat perdagangan
  3. Parameter pengurusan risiko tetap menjadikan hasil dagangan lebih stabil dan terkawal
  4. Strategi yang sesuai untuk persekitaran pasaran yang lebih turun naik
  5. Isyarat masuk dan keluar automatik mengurangkan kesan emosi dari penilaian subjektif

Risiko Strategik

  1. Isyarat palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  2. Tetapan pegangan rugi dan keuntungan yang tetap mungkin tidak sesuai untuk semua keadaan pasaran
  3. Isyarat dengan tempoh masa yang panjang boleh menyebabkan kelewatan
  4. Dalam pasaran yang bergerak pantas, tetapan stop-loss boleh mengunci keuntungan terlalu awal
  5. Pengurusan dana yang lebih besar diperlukan untuk menanggung kerugian berhenti 3.7%

Arah pengoptimuman strategi

  1. Penetapan kerugian dan sasaran keuntungan boleh dipertimbangkan untuk disesuaikan dengan pergerakan kadar turun naik pasaran
  2. Meningkatkan penunjuk jumlah transaksi sebagai isyarat pengesahan tambahan
  3. Pengenalan penunjuk kekuatan trend untuk memperbaiki prestasi dalam pasaran goyah
  4. Mengoptimumkan penyetempatan berat antara tempoh masa yang berbilang
  5. Pertimbangkan untuk memasukkan indikator sentimen pasaran untuk meningkatkan ketepatan isyarat

ringkaskan

Ini adalah sistem perdagangan yang lengkap yang menggabungkan analisis pelbagai kitaran masa dan pengesahan trend. Dengan penggunaan penunjuk acak dan bentuk harga, ia dapat menangkap titik perubahan pasaran dengan lebih baik. Parameter pengurusan risiko yang tetap, walaupun sederhana, memastikan konsistensi perdagangan.

Kod 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)