이 전략은 CCI, RSI, 스토카스틱 및 MFI 지표를 기하급수적으로 매끄럽게 통합하여 포괄적인 시장 분석 프레임워크를 구축하는 여러 기술적 지표에 기반한 거래 시스템입니다. 이 전략은 IFT (이버스 피셔 변환) 을 사용하여 지표 출력을 정상화하고 신호 합성을 통해 거래 결정을 생성합니다.
전략의 핵심은 다중 지표 융합을 통해 더 신뢰할 수있는 거래 신호를 제공하는 것입니다. 프로세스는 다음을 포함합니다.
이 전략은 멀티 지표 융합과 신호 최적화를 통해 비교적 완전한 거래 시스템을 구축합니다. 이 전략의 장점은 신호 신뢰성과 포괄적인 위험 통제에 있습니다. 그러나 매개 변수는 여전히 시장 특성에 따라 최적화가 필요합니다. 제안된 최적화 방향을 통해 전략은 다양한 시장 환경에서 더 나은 성과를 낼 가능성이 있습니다.
/*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)