커뮤니티

수식문의

프로필 이미지
ksks
2026-10-06 09:21:55
93
글번호 233802
답변완료

슈퍼트렌드 돌파 1봉전, 돌파봉, 돌파+1봉 3곳 어디에서나

상승CHoCH나 선행1/2돌파 중 하나가 나오는 종목을 검색코자 합니다.

(물론 두 신호가 동시 또는 연속으로 나오는 것 무관)


혹시 한 수식에 담아 표현하기 어려우면

슈퍼트렌드돌파수식에 AND로 연결할 수식만 있어도 되는 것 아닌지요?


3개의 수식은 첨부로 올려드립니다.

종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-10-06 13:19:05

안녕하세요 예스스탁입니다. 돌파 1봉전인지는 알수 없습니다. 돌파봉이거나 1봉 뒤인경우 상승CHoCH나 선행1/2돌파 중 하나가 나오는 종목을 찾게 작성해 드립니다. # Market Structure CHoCH/BOS 종목검색 # # SearchMode # 1 = 하락 구조 뒤 최초 상승 CHoCH # 2 = 상승 BOS와 상승 CHoCH 전체 # 3 = 하락 BOS와 하락 CHoCH 전체 # 4 = 상승 구조 뒤 최초 하락 CHoCH # 5 = 상승·하락 구조 돌파 전체 # # 기본값 1 # 하락 구조에서 최근 상단 프랙탈을 # 종가가 최초 상향 돌파하는 봉 검색 Input: FractalLength(5), SearchMode(1); Vars: PivotBars(0), HighPivotBar(0), LowPivotBar(0), HighPivot(0), LowPivot(0), UpperLevel(0), LowerLevel(0), UpperReady(False), LowerReady(False), UpperCrossed(False), LowerCrossed(False), BullBreak(False), BearBreak(False), BullCHoCH(False), BearCHoCH(False), StructureState(0), Cond(False); PivotBars = IntPortion(FractalLength / 2); # 최근 확정 프랙탈 탐색 HighPivotBar = SwingHighBar( 1, H, PivotBars, PivotBars, FractalLength ); LowPivotBar = SwingLowBar( 1, L, PivotBars, PivotBars, FractalLength ); HighPivot = SwingHigh( 1, H, PivotBars, PivotBars, FractalLength ); LowPivot = SwingLow( 1, L, PivotBars, PivotBars, FractalLength ); # 새로운 상단 프랙탈 확정 if HighPivotBar == PivotBars then UpperLevel = HighPivot; if HighPivotBar == PivotBars then UpperReady = True; if HighPivotBar == PivotBars then UpperCrossed = False; # 새로운 하단 프랙탈 확정 if LowPivotBar == PivotBars then LowerLevel = LowPivot; if LowPivotBar == PivotBars then LowerReady = True; if LowPivotBar == PivotBars then LowerCrossed = False; # 확정 프랙탈의 최초 돌파 BullBreak = UpperReady == True and UpperCrossed == False and CrossUp(C, UpperLevel); BearBreak = LowerReady == True and LowerCrossed == False and CrossDown(C, LowerLevel); # 하락 구조에서 상단 돌파하면 상승 CHoCH BullCHoCH = BullBreak == True and StructureState == -1; # 상승 구조에서 하단 이탈하면 하락 CHoCH BearCHoCH = BearBreak == True and StructureState == 1; Cond = False; # 기본 매수 후보 if SearchMode == 1 then Cond = BullCHoCH; # 상승 구조 돌파 전체 if SearchMode == 2 then Cond = BullBreak; # 하락 구조 돌파 전체 if SearchMode == 3 then Cond = BearBreak; # 하락 CHoCH if SearchMode == 4 then Cond = BearCHoCH; # 양방향 구조 돌파 전체 if SearchMode == 5 then Cond = BullBreak or BearBreak; # 돌파한 프랙탈의 중복 신호 차단 if BullBreak == True then UpperCrossed = True; if BearBreak == True then LowerCrossed = True; # 현재 시장구조 갱신 if BullBreak == True then StructureState = 1; if BearBreak == True then StructureState = -1; Input: ShortLength(9), MidLength(26), LongLength(52), # 1=A가 B를 상향돌파 # 2=A와 B가 동시에 상승 중 # 3=동시상승이 처음 발생한 봉 SignalMode(1); Vars: LineA(0), LineB(0), BothRising(False), CrossSignal(False), RisingStart(False); LineA = (Highest(H, ShortLength) + Lowest(L, ShortLength) + Highest(H, MidLength) + Lowest(L, MidLength)) / 4; LineB = (Highest(H, LongLength) + Lowest(L, LongLength)) / 2; BothRising = LineA > LineA[1] and LineB > LineB[1]; CrossSignal = CrossUp(LineA, LineB); RisingStart = BothRising and BothRising[1] == False; input : AtrPeriod(14),factor(3); var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0); var : prevSuperTrend(0), superTrend(C), direction(0),alpha(0),source(0); var1 = Ema(C,200); if CurrentBar > 1 Then { src = (H+L)/2; alpha = 1 / AtrPeriod ; source = max(high - low, abs(high - close[1]), abs(low - close[1])); ATrV = alpha * source + (1 - alpha) * ATrV[1]; //지수가중이평방식 //ATrV = ma(source,AtrPeriod); //단순이평방식 upperBand = src + factor * AtrV; lowerBand = src - factor * AtrV; prevLowerBand = lowerBand[1]; prevUpperBand = upperBand[1]; if lowerBand > prevLowerBand or close[1] < prevLowerBand Then lowerBand = lowerBand; Else lowerBand = prevLowerBand; if upperBand < prevUpperBand or close[1] > prevUpperBand Then upperBand = upperBand; Else upperBand = prevUpperBand; if C > UpperBand Then direction = 1; if C < LowerBand Then direction = -1; if direction == 1 Then supertrend = lowerband; Else supertrend = upperband; if CountIf(CROSSUP(c,supertrend),2) >= 1 and (Cond == True or (SignalMode == 1 and CrossSignal) or (SignalMode == 2 and BothRising) or (SignalMode == 3 and RisingStart)) then Find(1); } 즐거운 하루되세요