
A estratégia é um sistema de negociação baseado em uma combinação de vários indicadores tecnológicos, que constrói uma estrutura de análise de mercado abrangente por meio da integração de quatro indicadores principais, como CCI, RSI, Stochastic e MFI, e em combinação com o processamento de suavização de índices. A estratégia usa a conversão Inverse Fisher Transform (IFT) para normalizar a saída de indicadores e, finalmente, produz decisões de negociação por meio da síntese de sinais.
O núcleo da estratégia é fornecer um sinal de negociação mais confiável por meio da fusão de vários indicadores. Primeiro, o processamento padronizado e a suavização WMA de cada indicador, e depois o mapeamento do valor do indicador para[-1,1], que inclui:
A estratégia, por meio da fusão de vários indicadores e otimização de sinais, constrói um sistema de negociação relativamente completo. A vantagem da estratégia reside na confiabilidade do sinal e na integridade do controle de risco, mas ainda requer otimização de parâmetros de acordo com as características do mercado na aplicação real.
/*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)