Sumber daya yang dimuat... Pemuatan...

Strategi Optimasi Perdagangan Dinamis Multi-Indikator

Penulis:ChaoZhang, Tanggal: 2024-12-20 16:31:21
Tag:CCIRSIMFIWMAIFT

img

Gambaran umum

Strategi ini adalah sistem perdagangan yang didasarkan pada beberapa indikator teknis, mengintegrasikan indikator CCI, RSI, Stochastic, dan MFI dengan perataan eksponensial untuk membangun kerangka analisis pasar yang komprehensif.

Prinsip Strategi

Inti dari strategi ini adalah untuk menyediakan sinyal perdagangan yang lebih dapat diandalkan melalui fusi multi-indikator.

  1. Menghitung dan menormalkan indikator CCI, RSI, Stochastic, dan MFI
  2. Menerapkan perataan WMA pada nilai indikator
  3. Mengubah nilai ke interval seragam menggunakan IFT
  4. Menghitung rata-rata dari empat indikator yang diubah sebagai sinyal akhir
  5. Menghasilkan sinyal panjang ketika melintasi -0.5 dan sinyal pendek ketika melintasi 0.5
  6. Tentukan stop loss 0,5% dan take profit 1% untuk pengendalian risiko

Keuntungan Strategi

  1. Fusi multi-indikator memberikan perspektif pasar yang komprehensif
  2. Transformasi IFT memastikan konsistensi output indikator
  3. Perataan WMA secara efektif mengurangi sinyal palsu
  4. Pengaturan stop loss dan take profit yang wajar
  5. Mekanisme generasi sinyal yang jelas untuk debugging dan optimasi

Risiko Strategi

  1. Beberapa indikator mungkin tertinggal di pasar yang tidak stabil
  2. Parameter stop loss dan take profit tetap mungkin tidak sesuai dengan semua kondisi pasar
  3. Perataan WMA mungkin menyebabkan keterlambatan sinyal
  4. Parameter indikator perlu dioptimalkan untuk pasar yang berbeda Saran: Menerapkan manajemen risiko yang dinamis, memperkenalkan indikator volatilitas, mengoptimalkan parameter smoothing

Arahan Optimasi

  1. Memperkenalkan mekanisme stop-loss dan take-profit yang adaptif
  2. Tambahkan penyaringan lingkungan pasar
  3. Mengoptimalkan sintesis sinyal dengan rata-rata tertimbang
  4. Mengimplementasikan mekanisme tertimbang volume dan volatilitas disesuaikan
  5. Mengembangkan sistem pengoptimalan parameter otomatis

Ringkasan

Strategi ini membangun sistem perdagangan yang relatif lengkap melalui fusi multi-indikator dan optimasi sinyal. Kekuatannya terletak pada keandalan sinyal dan kontrol risiko yang komprehensif, tetapi parameter masih perlu dioptimalkan berdasarkan karakteristik pasar. Melalui arah optimasi yang disarankan, strategi ini memiliki potensi untuk berkinerja lebih baik di berbagai lingkungan pasar.


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

Berkaitan

Lebih banyak