커뮤니티

조건검색 문의

프로필 이미지
사공하늘
2026-01-22 13:51:09
78
글번호 229990
답변완료

//@version=5

indicator("신호 변환: 고가 돌파 시스템", overlay=true)


// 1. 변수 설정

shin = high - low

ho = math.max(close, open) - low


// 2. 조건 설정 (분모가 0이 되는 것을 방지하기 위해 ho > 0 체크 추가)

// 조건: (전체길이/몸통상단-저가 > 2) AND (당일 고가가 전일 종가 대비 15% 이상 상승)

cond = (ho > 0 ? (shin / ho > 2) : false) and (high / close[1] > 1.15)


// 3. 기준선 설정 (valuewhen 구현)

var float base_line = na

if cond

base_line := high


// 4. 신호 발생 (종가가 기준선을 상향 돌파할 때)

signal = ta.crossover(close, base_line)


// --- 시각화 ---

// 기준선 그리기 (조건이 발생한 적이 있을 때만 표시)

plot(base_line, title="기준선", color=color.new(color.gray, 50), style=plot.style_linebr, linewidth=2)


// 돌파 신호 표시

plotshape(series=signal, title="신호 발생", style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small, text="돌파")


// (옵션) 조건이 만족된 캔들 강조 표시 (노란색)

bgcolor(cond ? color.new(color.yellow, 80) : na)



일봉상 위 신호가 발생한 모든 종목을 검출할 수 있도록 해주시면 감사드리겠습니다 (__)

검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-01-23 10:49:26

안녕하세요 예스스탁입니다. var : shin(0),ho(0),cond(False),base_line(0),signal(False); shin = high - low; ho = max(close, open) - low; cond = ho > 0 and (shin / ho > 2) and (high / close[1] > 1.15); if cond == true Then base_line = high; signal = CrossUp(close, base_line); if signal == true Then Find(1); 즐거운 하루되세요