Strategi optimasi perdagangan dinamis kombinasi multi-indikator

CCI RSI MFI WMA IFT
Tanggal Pembuatan: 2024-12-20 16:31:21 Akhirnya memodifikasi: 2024-12-20 16:31:21
menyalin: 1 Jumlah klik: 397
1
fokus pada
1617
Pengikut

Strategi optimasi perdagangan dinamis kombinasi multi-indikator

Ringkasan

Strategi ini adalah sistem perdagangan yang didasarkan pada kombinasi beberapa indikator teknis, dengan mengintegrasikan empat indikator utama seperti CCI, RSI, indikator acak (Stochastic) dan MFI, dan digabungkan dengan pengolahan indeks yang halus, untuk membangun kerangka analisis pasar yang komprehensif. Strategi ini menggunakan IFT (Inverse Fisher Transform) transformasi untuk menormalisasi output indikator, dan akhirnya menghasilkan keputusan perdagangan melalui sintesis sinyal.

Prinsip Strategi

Inti dari strategi ini adalah untuk memberikan sinyal perdagangan yang lebih andal melalui penggabungan multi-indikator. Pertama-tama, pengolahan standar dan WMA yang halus dilakukan pada masing-masing indikator, dan kemudian nilai indikator dipetakan melalui konversi IFT ke[-1,1], meliputi:

  1. Empat indikator CCI, RSI, Stochastic dan MFI dihitung dan disatukan secara terpisah
  2. WMA digunakan untuk memperlancar nilai indikator
  3. Konversi nilai indikator ke interval kesatuan melalui konversi IFT
  4. Hitung rata-rata dari empat indikator setelah konversi sebagai sinyal akhir
  5. Ketika garis sinyal menembus -0.5 menghasilkan sinyal multitasking, menembus 0.5 menghasilkan sinyal vakum
  6. Setel Stop Loss 0,5% dan Stop Loss 1% untuk mengendalikan risiko

Keunggulan Strategis

  1. Integrasi multi-indikator memberikan perspektif pasar yang lebih komprehensif dan mengurangi keterbatasan dari satu indikator
  2. Konversi IFT memastikan keseragaman output indikator untuk memudahkan sintesis sinyal
  3. WMA smoothing efektif mengurangi sinyal palsu
  4. Menetapkan Stop Loss yang masuk akal, mengendalikan risiko dan memastikan ruang untuk keuntungan
  5. Mekanisme penciptaan sinyal yang jelas, mudah untuk debug dan optimasi

Risiko Strategis

  1. Beberapa indikator mungkin terbelakang dalam pasar yang sangat bergejolak
  2. Parameter Stop Loss Fixed mungkin tidak cocok untuk semua kondisi pasar
  3. WMA smoothing dapat menyebabkan sinyal tertunda
  4. Parameter indikator perlu dioptimalkan untuk pasar yang berbeda Rekomendasi: Dinamiskan parameter stop loss, masukkan indikator volatilitas, optimalkan parameter smoothing

Arah optimasi strategi

  1. Memperkenalkan Stop Loss Adaptive, yang dapat disesuaikan dengan pergerakan pasar
  2. Menambahkan mekanisme penyaringan lingkungan pasar, menggunakan parameter yang berbeda untuk intensitas tren yang berbeda
  3. Optimalkan cara sintesis sinyal, pertimbangkan rata-rata sederhana sebagai alternatif rata-rata tertimbang
  4. Memperkenalkan mekanisme penambahan volume dan penyesuaian fluktuasi
  5. Sistem pengoptimalan otomatis untuk parameter indikator yang dikembangkan

Meringkaskan

Strategi ini membangun sistem perdagangan yang relatif utuh melalui penggabungan multi-indikator dan optimasi sinyal. Keunggulan strategi ini adalah keandalan sinyal dan integritas kontrol risiko, tetapi masih memerlukan optimasi parameter sesuai dengan karakteristik pasar dalam aplikasi nyata. Dengan arah optimasi yang disarankan, strategi ini diharapkan untuk mendapatkan kinerja yang lebih baik dalam berbagai lingkungan pasar.

Kode Sumber Strategi
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('wombocombo', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// IFTCOMBO Hesaplamaları
ccilength = input.int(5, 'CCI Length')
wmalength = input.int(9, 'Smoothing Length')
rsilength = input.int(5, 'RSI Length')
stochlength = input.int(5, 'STOCH Length')
mfilength = input.int(5, 'MFI Length')

// CCI
v11 = 0.1 * (ta.cci(close, ccilength) / 4)
v21 = ta.wma(v11, wmalength)
INV1 = (math.exp(2 * v21) - 1) / (math.exp(2 * v21) + 1)

// RSI
v12 = 0.1 * (ta.rsi(close, rsilength) - 50)
v22 = ta.wma(v12, wmalength)
INV2 = (math.exp(2 * v22) - 1) / (math.exp(2 * v22) + 1)

// Stochastic
v1 = 0.1 * (ta.stoch(close, high, low, stochlength) - 50)
v2 = ta.wma(v1, wmalength)
INVLine = (math.exp(2 * v2) - 1) / (math.exp(2 * v2) + 1)

// MFI
source = hlc3
up = math.sum(volume * (ta.change(source) <= 0 ? 0 : source), mfilength)
lo = math.sum(volume * (ta.change(source) >= 0 ? 0 : source), mfilength)
mfi = 100.0 - 100.0 / (1.0 + up / lo)
v13 = 0.1 * (mfi - 50)
v23 = ta.wma(v13, wmalength)
INV3 = (math.exp(2 * v23) - 1) / (math.exp(2 * v23) + 1)

// Ortalama IFTCOMBO değeri
AVINV = (INV1 + INV2 + INVLine + INV3) / 4

// Sinyal çizgileri
hline(0.5, color=color.red, linestyle=hline.style_dashed)
hline(-0.5, color=color.green, linestyle=hline.style_dashed)

// IFTCOMBO çizgisi
plot(AVINV, color=color.red, linewidth=2, title='IFTCOMBO')

// Long Trading Sinyalleri
longCondition = ta.crossover(AVINV, -0.5) 
longCloseCondition = ta.crossunder(AVINV, 0.5) 

// Short Trading Sinyalleri
shortCondition = ta.crossunder(AVINV, 0.5) 
shortCloseCondition = ta.crossover(AVINV, -0.5) 

// Stop-loss seviyesi (%0.5 kayıp)
stopLoss = strategy.position_avg_price * (1 - 0.005) // Long için
takeProfit = strategy.position_avg_price * (1 + 0.01) // Long için


// Long Strateji Kuralları
if longCondition
    strategy.entry('Long', strategy.long)
    strategy.exit('Long Exit', 'Long', stop=stopLoss, limit=takeProfit) // Stop-loss eklendi


if longCloseCondition
    strategy.close('Long')

// Stop-loss seviyesi (%0.5 kayıp)
stopLossShort = strategy.position_avg_price * (1 + 0.005) // Short için
takeProfitShort = strategy.position_avg_price * (1 - 0.01) // Short için

// Short Strateji Kuralları
if shortCondition
    strategy.entry('Short', strategy.short)
    strategy.exit('Short Exit', 'Short', stop=stopLossShort, limit=takeProfitShort) // Stop-loss eklendi


if shortCloseCondition
    strategy.close('Short')

// Sinyal noktalarını plotlama
plotshape(longCondition, title='Long Signal', location=location.belowbar, color=color.purple, size=size.small)
plotshape(shortCondition, title='Short Signal', location=location.abovebar, color=color.yellow, size=size.small)