MFI-RSI Convergence Strategy by Kingjmaes
By Kingjmaes
Performance Metrics
- Author: Kingjmaes
- Symbol: NASDAQ:SMCI
- Timeframe: 1 day
- Net P&L: −256.25 USD (−2.56%)
- Win Rate: 41.7%
- Profit Factor: 0.534
- Max Drawdown: 559.52 USD (5.53%)
- Total Trades: 12
Description
거래량(Volume)과 가격 모멘텀을 동시에 고려하는 **MFI(Money Flow Index)**는 지지선에서의 '진짜 반등'을 포착하는 데 가장 강력한 도구입니다. 여기에 RSI를 결합하여 모멘텀의 강도까지 확인하는 'Hybrid Volume-Momentum Oscillator' 전략을 작성해 드립니다.하이브리드 지표의 핵심 메커니즘MFI(Money Flow Index)의 역할:MFI는 단순히 가격이 낮아졌는가만 보는 것이 아니라, **'낮은 가격에서 거래량이 터졌는가'**를 계산합니다.지지선에서 MFI가 20 이하로 떨어진다는 것은 "스마트 머니"가 매집을 준비하는 단계이거나, 투매가 정점에 달해 거래량이 실린 반등이 임박했음을 뜻합니다.RSI와의 컨버전스(Convergence):RSI는 가격의 속도를 측정합니다. MFI가 과매도인데 RSI가 아직 높다면, 거래량은 들어오지만 가격의 하락 관성이 여전히 강하다는 뜻입니다.이 코드의 핵심은 mfi_val time >= start_time and time = mfi_high) and (rsi_val >= rsi_high)// --- [ 모듈 4: 주문 실행 ] ---if within_window() if long_condition strategy.entry("Long", strategy.long, comment="VLM+MOM Bottom") if short_condition strategy.entry("Short", strategy.short, comment="VLM+MOM Top")// 익절 및 손절 설정strategy.exit("Ex Long", "Long", limit=strategy.position_avg_price * (1 + tp_pct), stop=strategy.position_avg_price * (1 - sl_pct))strategy.exit("Ex Short", "Short", limit=strategy.position_avg_price * (1 - tp_pct), stop=strategy.position_avg_price * (1 + sl_pct))// --- [ 모듈 5: 시각화 (하단 지표 영역) ] ---// 배경 가이드라인hline(mfi_high, "Upper Boundary", color=color.gray, linestyle=hline.style_dashed)hline(50, "Middle", color=color.new(color.gray, 50))hline(mfi_low, "Lower Boundary", color=color.gray, linestyle=hline.style_dashed)// 지표 플롯plot(mfi_val, "MFI (Volume Flow)", color=color.aqua, linewidth=2)plot(rsi_val, "RSI (Momentum)", color=color.yellow, linewidth=1)// 중첩 구간 강조 (Convergence)fill_color = (mfi_val = mfi_high and rsi_val >= rsi_high) ? color.new(color.red, 70) : nabgcolor(fill_color)// 신호 발생 시 하단에 아이콘 표시plotshape(long_condition, title="Buy Signal", location=location.bottom, color=color.green, style=shape.triangleup, size=size.small)plotshape(short_condition, title="Sell Signal", location=location.top, color=color.red, style=shape.triangledown, size=size.small)Expand 68 lines