커뮤니티

조건검색 문의

프로필 이미지
사공하늘
2026-01-14 00:43:15
35
글번호 229780
답변완료

//@version=5

indicator("RSI Shift Zone Middle Breakout Only", overlay = true)


// --------------------------------------------------------------------------------------------------------------------{

// 입력값 설정

// --------------------------------------------------------------------------------------------------------------------{

rsi_len = input.int(14, "RSI length")

upper_level = input.int(70, "Upper RSI Level", minval = 50)

min_channel_len = input.int(15, "Minimal bars length of the channel")

mid_col = input.color(color.yellow, "Middle BUY Color")


// 변수 초기화

var int start = na

var bool trigger = false

var float upper = na

var float lower = na

var int zone_type = 0 // 1: 과매수(Upper) 구역 기록용


// --------------------------------------------------------------------------------------------------------------------{

// 로직 계산

// --------------------------------------------------------------------------------------------------------------------{

rsi = ta.rsi(close, rsi_len)


// RSI가 상단 레벨(70)을 돌파할 때 당시의 고가(upper)와 저가(lower)를 저장

channel_upper = ta.crossover(rsi, upper_level) and not trigger


if channel_upper

start := bar_index

trigger := true

upper := high

lower := low

zone_type := 1 // 과매수 구역 진입 표시


// 일정 기간이 지나면 트리거 초기화

if bar_index - start >= min_channel_len

trigger := false


// 현재 구역의 중심선(Middle Line) 계산

mid_line = math.avg(upper, lower)


// 🎯 BUY 신호 로직: 과매수 구역(zone_type 1) 내에서 가격이 중심선(mid_line)을 상향 돌파할 때

buy_signal = (zone_type == 1) and ta.crossover(close, mid_line)


// --------------------------------------------------------------------------------------------------------------------{

// 신호 출력

// --------------------------------------------------------------------------------------------------------------------{

plotshape(buy_signal,

title="Middle Breakout BUY",

style=shape.triangleup,

location=location.belowbar,

color=mid_col,

size=size.normal,

text="MID BUY",

textcolor=mid_col)




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

검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-01-14 13:04:51

안녕하세요 예스스탁입니다. input : rsi_len(14); input : upper_level(70); input : min_channel_len(15); var : start(Nan),trigger(false),upper(nan),lower(nan),zone_type(0); var : R(0),channel_upper(false),mid_line(0),buy_signal(False); R = rsi(rsi_len); channel_upper = CrossUp(R, upper_level) and trigger == False; if channel_upper then { start = index; trigger = true; upper = high; lower = low; zone_type = 1; } // 일정 기간이 지나면 트리거 초기화 if index - start >= min_channel_len Then trigger = false; mid_line = avg(upper, lower); buy_signal = (zone_type == 1) and CrossUp(close, mid_line); if buy_signal == true Then Find(1); 즐거운 하루 되세요