MFI/RSI Divergence Lower — Strategy by Kingjmaes
By Kingjmaes
Performance Metrics
- Author: Kingjmaes
- Symbol: NASDAQ:SMCI
- Timeframe: 1 day
- Net P&L: +34.29 USD (+0.34%)
- Win Rate: 25.0%
- Profit Factor: 1.193
- Max Drawdown: 182.98 USD (1.83%)
- Total Trades: 8
Description
하단 지표 구성 및 활용법MFI (Aqua Line): 거래량이 가중된 자금 흐름입니다. 지지선 근처에서 이 선이 저점을 높이면(다이버전스) 강력한 매수 신호입니다.RSI (Yellow Line): 가격의 상대적 강도입니다. MFI와 함께 움직임을 비교하여 보조적으로 활용합니다.리페인팅 방지 핵심: offset=-lb_r 설정을 통해, 지표가 확정되는 시점(피벗 완성 시점)에 정확히 신호가 표시되도록 구현했습니다. 이는 과거 백테스트 결과와 실시간 매매 결과가 일치하도록 보장합니다.실전 응용지지/저항 필터: 이 지표 단독으로 사용하기보다, 차트 상의 주요 지지선에 가격이 위치했을 때 발생하는 BULL DIV 신호만 골라 매수하면 승률이 극대화됩니다.손절/익절 최적화: 현재 1.5% 손절, 3% 익절로 설정되어 있습니다. 종목의 변동성(ATR)에 따라 group_risk에서 수치를 조정하며 최적의 수익 곡선을 찾아보십시오.Pine Script®//@version=6strategy("Hybrid MFI/RSI Divergence Lower", overlay=false, // 하단 지표 설정을 위해 false initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05, slippage=1)// --- [ 모듈 1: 사용자 입력 ] ---group_date = "1. 백테스트 기간"start_time = input.time(timestamp("2024-01-01 00:00:00"), "시작일", group=group_date)end_time = input.time(timestamp("2026-12-31 23:59:59"), "종료일", group=group_date)within_window() => time >= start_time and time prev_pl_mfi is_bull_div := true// Bearish Divergence (하락 다이버전스)var float last_ph_mfi = navar float last_ph_price = nabool is_bear_div = falseif not na(ph) last_ph_mfi := mfi_val[lb_r] last_ph_price := high[lb_r] float prev_ph_mfi = ta.valuewhen(not na(ph), mfi_val[lb_r], 1) float prev_ph_price = ta.valuewhen(not na(ph), high[lb_r], 1) if high[lb_r] > prev_ph_price and mfi_val[lb_r] < prev_ph_mfi is_bear_div := true// --- [ 모듈 4: 주문 실행 ] ---if within_window() if is_bull_div strategy.entry("Bull", strategy.long, comment="Bull Div") if is_bear_div strategy.entry("Bear", strategy.short, comment="Bear Div")strategy.exit("ExB", "Bull", limit=strategy.position_avg_price * (1 + tp_pct), stop=strategy.position_avg_price * (1 - sl_pct))strategy.exit("ExS", "Bear", limit=strategy.position_avg_price * (1 - tp_pct), stop=strategy.position_avg_price * (1 + sl_pct))// --- [ 모듈 5: 하단 지표 시각화 ] ---// 배경 레이아웃hline(ob_level, "Overbought", color=color.new(color.red, 50), linestyle=hline.style_dashed)hline(50, "Middle", color=color.new(color.gray, 70))hline(os_level, "Oversold", color=color.new(color.green, 50), linestyle=hline.style_dashed)// 메인 지표 플롯plot(mfi_val, "MFI (Money Flow)", color=color.new(color.aqua, 0), linewidth=2)plot(rsi_val, "RSI (Momentum)", color=color.new(color.yellow, 50), linewidth=1)// 다이버전스 발생 시 하단 지표 영역에 선 그리기plotshape(is_bull_div ? mfi_val[lb_r] : na, "Bull Div Circle", shape.circle, location.absolute, color.green, size=size.tiny, offset=-lb_r)plotshape(is_bear_div ? mfi_val[lb_r] : na, "Bear Div Circle", shape.circle, location.absolute, color.red, size=size.tiny, offset=-lb_r)// 과매수/과매도 배경색fill(hline(ob_level), hline(100), color.new(color.red, 90))fill(hline(0), hline(os_level), color.new(color.green, 90))Expand 93 lines