답변완료
검색식문의
안녕하세요 빠른 답변 감사합니다.
주봉에서 아래 검색식을 사용자함수를 사용하여 만들었습니다. 그런데 실제 검색을 해보면
검색식과는 다른 종목이 검색이 되어서요(첨부파일참조) 어떻게 수정해야 할지 문의드립니다.
Var : conditionMet(false); // 최종 조건 만족 여부 플래그
Var : weekIndex(0); // 이전 주를 순회할 루프 인덱스
Var : matchCount(0); // 조건 만족 주 개수 카운터
Var : highestHigh4Weeks(0); // '최근 4주간의 최고가'를 저장할 변수
highestHigh4Weeks = max(WeekHigh(0), WeekHigh(1), WeekHigh(2), WeekHigh(3));
if (highestHigh4Weeks > Ma(C,5)[0] &&
highestHigh4Weeks > Ma(C,20)[0] &&
Ma(C,5)[0] > Ma(C,20)[0] &&
C[0] > Ma(C,5)[0] && // 현재 종가가 5주선 위에 있을 때
C[0] > Ma(C,20)[0]) Then { // 현재 종가가 20주선 위에 있을 때
// === 2단계: 1단계 조건 만족 시 과거 50주를 스캔 ===
matchCount = 0;
For weekIndex = 0 to 99 Begin
if (WeekHigh(weekIndex) >= highestHigh4Weeks * 0.99 &&
WeekHigh(weekIndex) <= highestHigh4Weeks * 1.01 &&
Ma(C,5)[weekIndex] > Ma(C,20)[weekIndex] &&
C[weekIndex] > Ma(C,5)[weekIndex] && // 해당 주의 종가가 5주선 위에 있을 때
C[weekIndex] > Ma(C,20)[weekIndex]) Then { // 해당 주의 종가가 20주선 위에 있을 때
matchCount = matchCount + 1; // 조건이 모두 만족하면 카운트 증가
}
End;
// 과거 조건 만족 횟수가 2회 이상이면 최종 조건 만족
if (matchCount >= 2) Then {
conditionMet = true;
}
}
Else {
conditionMet = False;
}
// 최종 조건이 만족하면 종목 검색
if (conditionMet) Then
Find(1);
// WeekHigh 사용자 함수
Input : N(Numeric); // 입력: N (숫자)
Var : j(0); // 변수: j (초기값 0)
Var : 요일(0); // 변수: 요일 (초기값 0)
Array: WH[100](0); // 배열: WH (크기 99, 모든 요소 초기값 0)
Begin
요일 = DayOfWeek(Date); // 현재 날짜의 요일을 가져옵니다.
// 이전 날짜가 현재 날짜보다 이전이고 (날짜가 진행되었고),
// 이전 날짜의 요일이 현재 날짜의 요일보다 크거나 같을 때 (새로운 주기 시작 조건)
If Date[1] < Date and 요일[1] >= 요일 Then Begin
For j = 99 Downto 1 Begin // 배열 요소를 뒤로 한 칸씩 밉니다.
WH[j] = WH[j-1];
End;
WH[0] = H; // 현재 날짜의 고가(H)를 WH[0]에 저장합니다.
End;
WeekHigh = WH[N]; // WH 배열의 N번째 요소를 반환합니다.
End;
2025-06-01
186
글번호 191315
검색