
Die Strategie ist ein Handelssystem, das auf einer Kombination aus mehreren technischen Indikatoren basiert und durch die Integration von vier Hauptindikatoren wie CCI, RSI, Stochastic und MFI und in Verbindung mit der Indiceschleimbehandlung einen umfassenden Rahmen für die Marktanalyse erstellt. Die Strategie verwendet die IFT-Inverse Fisher Transform, um die Ausgabe der Indikatoren zu normieren und schließlich Handelsentscheidungen durch Signalsynthese zu treffen.
Der Kern der Strategie besteht darin, ein zuverlässigeres Handelssignal durch die Fusion mehrerer Indikatoren bereitzustellen. Zuerst wird die Standardisierung und WMA-Gleichung für die einzelnen Indikatoren durchgeführt, und dann werden die Indikatorwerte über die IFT-Umwandlung auf[-1,1) umfasst insbesondere:
Die Strategie baut ein relativ vollständiges Handelssystem durch die Integration mehrerer Indikatoren und die Optimierung von Signalen auf. Die Vorteile der Strategie liegen in der Zuverlässigkeit der Signale und der Integrität der Risikokontrolle, aber es ist immer noch erforderlich, die Parameter entsprechend den Merkmalen des Marktes in der praktischen Anwendung zu optimieren. Durch die empfohlene Optimierungsrichtung wird die Strategie in verschiedenen Marktumgebungen besser funktionieren.
/*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)