커뮤니티

문의 드립니다

프로필 이미지
zmfha
2026-03-11 23:01:27
80
글번호 231056
답변완료

현재 제 수식에서는 A선이 패턴 발생 시 TL_New로 생성되고,

해당 가격값은 lvl 변수(또는 TL_GetValue로 읽은 값)로 관리하고 있습니다.


관리자님 예시의 A = highest(H,5) 대신

이미 생성된 수평선 가격값(lvl 또는 TL_GetValue값)을 기준으로

동일한 retest 상태관리 구조를 적용해도 되는지 궁금합니다.


즉,

A선 생성 → 가격 이탈 → 다시 A선 근접

구조에서 기준값 A를 “임의 계산값”이 아니라

“이미 생성된 수평선 값”으로 써도 되는지 확인 부탁드립니다.

추가로, 첫 재테스트 1회 표시 후

다음 재테스트를 다시 허용하려면 retest 플래그를 언제 초기화하는 것이 일반적인지 궁금합니다.


예를 들어

1) 새로운 A선이 생성될 때 초기화하는지

2) 가격이 다시 일정 거리 이상 이탈했을 때 초기화하는지

3) A선을 종가로 재돌파/재이탈할 때 초기화하는지


보통 어떤 방식이 권장되는지 간단한 예시와 함께 부탁드립니다.

지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-03-12 08:22:56

안녕하세요 예스스탁입니다.
TL_GetValue로 추세선값을 lvl변수에 저장하는 것으로 보고 수정해 드립니다.
일반적으로는 새로운 조건이 발생해서 A선이 새로 만들어지면 초기화하는 방식으로 많이 작성되며
A값을 상향 후 내려와 근접할때 retest가 출력되므로 이런 경우에는 보통 A값을 하향하면 초기화해서
다음 상승시 다시 출력할 수 있게 합니다. input : 최소이탈틱(20),근접틱(5); var : A(0),T(0),diff(0),hdiff(0),retest(False),tx(0); var : lvl(0); var1 = ma(C,5); var2 = ma(C,20); //이평골드 if CrossUp(var1,Var2) Then { Var3 = highest(H,5); A = TL_new(sdate,sTime,Var3,NextBarSdate,NextBarStime,Var3) ; //A선 (골드기준 5개봉 최고가) T = 1; } Else TL_SetEnd(A,NextBarSdate,NextBarStime,Var3); lvl = TL_GetValue(A,sDate,sTime); //종가가 A선을 상향돌파하면 Hdiff, retest 초기화 if T == 1 and CrossUp(C,lvl) Then { T = 2; Hdiff = 0; retest = False; } if T == 2 Then { if retest == False Then { //종가가 A선을 돌파한 이후에 차이값의 최고값 계산 diff = C-lvl; if diff > hdiff Then { hdiff = diff; } //최고 차이값이 최소이탈틱이상이고 현재차이가 근접틱이내이면 출력 if hdiff >= PriceScale*최소이탈틱 and diff <= PriceScale*근접틱 Then { retest = true; //조건만족하면 retest는 false로 만들어 최초만 표시되게 함 tx = Text_New(sDate,sTime,h,"retest"); Text_SetStyle(tx,2,1); } } if CrossDown(C,lvl) Then { retest = False; T = 1; } } 즐거운 하루되세요