커뮤니티

수식요청

프로필 이미지
풍요
2025-05-18 16:16:51
201
글번호 190922
답변완료
안녕하세요 검색식을 잘쓰고 있습니다. 그런데 아래와 같이 당일고가와 같은 고가가 나오는 종목을 찾으려고 하는데, 잘안되네요 // '▼' 텍스트 표시를 위한 변수 Var : tx(0); Var : conditionMet(false); // 최종 조건 만족 여부 플래그 Var : dayIndex(0); // 이전 날짜를 순회할 루프 인덱스 Var : matchCount(0); // DayHigh(0)와 일치하는 날짜 개수 카운터 // --- 조건 확인 로직: DayHigh(0)의 고가가 DayHigh(0)~DayHigh(99) 내에서 2번 이상 출현하는가? --- // (즉, 현재 날짜 고가가 과거 99 거래일 이내에서 한 번이라도 동일하게 출현하는가?) // 1. DayHigh(0) 고가가 전체 100 거래일(DayHigh(0) ~ DayHigh(99)) 내에서 몇 번 나타나는지 셉니다. // (주의: DayHigh(0) 자기 자신도 카운트되므로, 2번 이상 나타나야 과거 출현을 의미) matchCount = 0; // 카운트 초기화 For dayIndex = 0 to 99 Begin // 스캔 범위를 0부터 99까지 100 거래일로 설정 // 현재 스캔 중인 거래일의 고가가 DayHigh(0)의 고가와 정확히 같은지 확인 if (DayHigh(dayIndex) == DayHigh(0)) Then { matchCount = matchCount + 1; // 같으면 카운트 증가 } End; // --- 100 거래일 스캔 루프 끝 --- // 2. 'matchCount'가 2 이상인지 확인합니다. // (이는 DayHigh(0) 고가가 자기 자신 외에 과거 거래일에서 최소 한 번 더 나타났음을 의미) if (matchCount >= 2) Then { // 조건 만족: DayHigh(0) 고가가 과거 99 거래일 내에서 최소 한 번 이상 반복됨 conditionMet = true; } // --- 최종 판단 --- if (conditionMet) Then { // '▼' 텍스트를 차트에 표시합니다. 위치는 오픈가 기준 위쪽입니다. // (분봉 차트에서 사용 시, 해당 봉의 위치에 표시됩니다) tx = Text_New_Self(sDate,sTime,O+PriceScale*15,"▼"); // 스타일 및 색상 설정 Text_SetStyle(tx,2,0); Text_SetColor(tx,Black); } 상기와 같은 식을 만들었는데 식을 작동시키면 모든 봉에 표시가 됩니다.혹시 확인가능하신지요 감사합니다.
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-19 17:57:57

안녕하세요 예스스탁입니다. if (matchCount >= 2) Then { conditionMet = true; } 변수는 값이 한번 저장되면 다음에 변경전까지 그 값이 유지됩니다. 조건만족하지 않으면 false가 되게 작성하셔야 합니다. 수정한 식입니다. Var : tx(0); Var : conditionMet(false); // 최종 조건 만족 여부 플래그 Var : dayIndex(0); // 이전 날짜를 순회할 루프 인덱스 Var : matchCount(0); // DayHigh(0)와 일치하는 날짜 개수 카운터 // --- 조건 확인 로직: DayHigh(0)의 고가가 DayHigh(0)~DayHigh(99) 내에서 2번 이상 출현하는가? --- // (즉, 현재 날짜 고가가 과거 99 거래일 이내에서 한 번이라도 동일하게 출현하는가?) // 1. DayHigh(0) 고가가 전체 100 거래일(DayHigh(0) ~ DayHigh(99)) 내에서 몇 번 나타나는지 셉니다. // (주의: DayHigh(0) 자기 자신도 카운트되므로, 2번 이상 나타나야 과거 출현을 의미) matchCount = 0; // 카운트 초기화 For dayIndex = 0 to 99 Begin // 스캔 범위를 0부터 99까지 100 거래일로 설정 // 현재 스캔 중인 거래일의 고가가 DayHigh(0)의 고가와 정확히 같은지 확인 if (DayHigh(dayIndex) == DayHigh(0)) Then { matchCount = matchCount + 1; // 같으면 카운트 증가 } End; // --- 100 거래일 스캔 루프 끝 --- // 2. 'matchCount'가 2 이상인지 확인합니다. // (이는 DayHigh(0) 고가가 자기 자신 외에 과거 거래일에서 최소 한 번 더 나타났음을 의미) if (matchCount >= 2) Then { // 조건 만족: DayHigh(0) 고가가 과거 99 거래일 내에서 최소 한 번 이상 반복됨 conditionMet = true; } Else conditionMet = False; // --- 최종 판단 --- if (conditionMet) Then { // '▼' 텍스트를 차트에 표시합니다. 위치는 오픈가 기준 위쪽입니다. // (분봉 차트에서 사용 시, 해당 봉의 위치에 표시됩니다) tx = Text_New_self(sDate,sTime,O+PriceScale*15,"▼"); // 스타일 및 색상 설정 Text_SetStyle(tx,2,0); Text_SetColor(tx,Black); } 즐거운 하루되세요 > 풍요 님이 쓴 글입니다. > 제목 : 수식요청 > 안녕하세요 검색식을 잘쓰고 있습니다. 그런데 아래와 같이 당일고가와 같은 고가가 나오는 종목을 찾으려고 하는데, 잘안되네요 // '▼' 텍스트 표시를 위한 변수 Var : tx(0); Var : conditionMet(false); // 최종 조건 만족 여부 플래그 Var : dayIndex(0); // 이전 날짜를 순회할 루프 인덱스 Var : matchCount(0); // DayHigh(0)와 일치하는 날짜 개수 카운터 // --- 조건 확인 로직: DayHigh(0)의 고가가 DayHigh(0)~DayHigh(99) 내에서 2번 이상 출현하는가? --- // (즉, 현재 날짜 고가가 과거 99 거래일 이내에서 한 번이라도 동일하게 출현하는가?) // 1. DayHigh(0) 고가가 전체 100 거래일(DayHigh(0) ~ DayHigh(99)) 내에서 몇 번 나타나는지 셉니다. // (주의: DayHigh(0) 자기 자신도 카운트되므로, 2번 이상 나타나야 과거 출현을 의미) matchCount = 0; // 카운트 초기화 For dayIndex = 0 to 99 Begin // 스캔 범위를 0부터 99까지 100 거래일로 설정 // 현재 스캔 중인 거래일의 고가가 DayHigh(0)의 고가와 정확히 같은지 확인 if (DayHigh(dayIndex) == DayHigh(0)) Then { matchCount = matchCount + 1; // 같으면 카운트 증가 } End; // --- 100 거래일 스캔 루프 끝 --- // 2. 'matchCount'가 2 이상인지 확인합니다. // (이는 DayHigh(0) 고가가 자기 자신 외에 과거 거래일에서 최소 한 번 더 나타났음을 의미) if (matchCount >= 2) Then { // 조건 만족: DayHigh(0) 고가가 과거 99 거래일 내에서 최소 한 번 이상 반복됨 conditionMet = true; } // --- 최종 판단 --- if (conditionMet) Then { // '▼' 텍스트를 차트에 표시합니다. 위치는 오픈가 기준 위쪽입니다. // (분봉 차트에서 사용 시, 해당 봉의 위치에 표시됩니다) tx = Text_New_Self(sDate,sTime,O+PriceScale*15,"▼"); // 스타일 및 색상 설정 Text_SetStyle(tx,2,0); Text_SetColor(tx,Black); } 상기와 같은 식을 만들었는데 식을 작동시키면 모든 봉에 표시가 됩니다.혹시 확인가능하신지요 감사합니다.