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