리소스 로딩... 로딩...

다중 지표 동적 거래 최적화 전략

저자:차오장, 날짜: 2024-12-20 16:31:21
태그:CCIRSIMFIWMAIFT

img

전반적인 설명

이 전략은 CCI, RSI, 스토카스틱 및 MFI 지표를 기하급수적으로 매끄럽게 통합하여 포괄적인 시장 분석 프레임워크를 구축하는 여러 기술적 지표에 기반한 거래 시스템입니다. 이 전략은 IFT (이버스 피셔 변환) 을 사용하여 지표 출력을 정상화하고 신호 합성을 통해 거래 결정을 생성합니다.

전략 원칙

전략의 핵심은 다중 지표 융합을 통해 더 신뢰할 수있는 거래 신호를 제공하는 것입니다. 프로세스는 다음을 포함합니다.

  1. CCI, RSI, 스토카스틱 및 MFI 지표를 계산하고 정상화합니다.
  2. 표시 값에 WMA 평평화를 적용합니다.
  3. IFT를 사용하여 통일된 간격으로 값을 변환
  4. 최종 신호로 변환 된 네 개의 지표의 평균을 계산합니다.
  5. -0.5를 넘을 때 긴 신호를 생성하고 0.5를 넘을 때 짧은 신호를 생성
  6. 리스크 통제를 위해 0.5%의 스톱 로스와 1%의 영업 수익을 설정합니다.

전략적 장점

  1. 다중 지표 융합은 포괄적인 시장 관점을 제공합니다.
  2. IFT 변환은 지표 출력에서 일관성을 보장합니다.
  3. WMA 평평화 효과적 인 잘못된 신호를 줄입니다.
  4. 합리적인 스톱 로스 및 영업 취득 설정
  5. 디버깅 및 최적화를 위한 명확한 신호 생성 메커니즘

전략 위험

  1. 여러 지표가 변동적인 시장에서 뒤쳐질 수 있습니다.
  2. 고정된 스톱 로스 (stop loss) 및 이윤 취득 매개 변수는 모든 시장 조건에 적합하지 않을 수 있습니다.
  3. WMA 평평화 신호 지연을 일으킬 수 있습니다.
  4. 지표 매개 변수는 다른 시장에 최적화되어야합니다. 제안: 역동적 인 위험 관리, 변동성 지표 도입, 평형 매개 변수 최적화

최적화 방향

  1. 적응성 있는 스톱 로스 및 수익 취득 메커니즘을 도입
  2. 시장 환경 필터링 추가
  3. 가중 평균을 통해 신호 합성을 최적화
  4. 부피 가중화 및 변동성 조정 메커니즘을 구현
  5. 자동 매개 변수 최적화 시스템을 개발

요약

이 전략은 멀티 지표 융합과 신호 최적화를 통해 비교적 완전한 거래 시스템을 구축합니다. 이 전략의 장점은 신호 신뢰성과 포괄적인 위험 통제에 있습니다. 그러나 매개 변수는 여전히 시장 특성에 따라 최적화가 필요합니다. 제안된 최적화 방향을 통해 전략은 다양한 시장 환경에서 더 나은 성과를 낼 가능성이 있습니다.


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

관련

더 많은