커뮤니티

지표문의

프로필 이미지
성공예견
2025-09-03 12:36:27
110
글번호 193701
답변완료
1.아래지표 수정 좀해주세요 검증이안됨 INPUT: len(300), // 분석할 봉 수 priceStep(100), // 가격 구간 크기 topN(3); // 상위 HVN/LVN 개수 VAR: i(0), j(0), priceMin(0), priceMax(0), level(0), maxVol(0), minVol(999999999), pocLevel(0), pocPrice(0); ARRAY: vap , // 가격대별 거래량 hvnLevel , hvnVol , lvnLevel , lvnVol ; { 1. 최소, 최대 가격 찾기 } priceMin = Low; priceMax = High; FOR i = 1 TO len BEGIN IF Low[i] < priceMin THEN priceMin = Low[i]; IF High[i] > priceMax THEN priceMax = High[i]; END; { 2. vap 배열 초기화 } FOR j = 0 TO 999 BEGIN vap[j] = 0; END; { 3. 거래량 누적 } FOR i = 0 TO len-1 BEGIN level = INTPART( (Close[i] - priceMin) / priceStep ); IF level >= 0 AND level < 1000 THEN vap[level] = vap[level] + Volume[i]; END; { 4. Top N HVN 찾기 } FOR j = 1 TO topN BEGIN maxVol = 0; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > maxVol THEN BEGIN maxVol = vap[i]; pocLevel = i; END; END; hvnLevel[j] = pocLevel; hvnVol[j] = maxVol; vap[pocLevel] = 0; END; { 5. Top N LVN 찾기 } FOR j = 1 TO topN BEGIN minVol = 999999999; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > 0 AND vap[i] < minVol THEN BEGIN minVol = vap[i]; pocLevel = i; END; END; lvnLevel[j] = pocLevel; lvnVol[j] = minVol; vap[pocLevel] = 999999999; END; { 6. HVN / LVN 출력 ? Plot 이름 고정 } IF topN >= 1 THEN BEGIN pocPrice = priceMin + hvnLevel[1] * priceStep; PLOT(pocPrice, "HVN1", RED); pocPrice = priceMin + lvnLevel[1] * priceStep; PLOT(pocPrice, "LVN1", BLUE); END; IF topN >= 2 THEN BEGIN pocPrice = priceMin + hvnLevel[2] * priceStep; PLOT(pocPrice, "HVN2", RED); pocPrice = priceMin + lvnLevel[2] * priceStep; PLOT(pocPrice, "LVN2", BLUE); END; IF topN >= 3 THEN BEGIN pocPrice = priceMin + hvnLevel[3] * priceStep; PLOT(pocPrice, "HVN3", RED); pocPrice = priceMin + lvnLevel[3] * priceStep; PLOT(pocPrice, "LVN3", BLUE); END; 그럼 수고하세요
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-09-03 13:54:53

안녕하세요 예스스탁입니다. 해당식 저희 랭귀지의 수식이 아닙니다. 문법적으로만 오류가 없게 수정해 드립니다. INPUT: len(300), // 분석할 봉 수 priceStep(100), // 가격 구간 크기 topN(3); // 상위 HVN/LVN 개수 VAR: i(0), j(0), priceMin(0), priceMax(0), level(0), maxVol(0), minVol(999999999), pocLevel(0), pocPrice(0); ARRAY: vap[1000](0), // 가격대별 거래량 hvnLevel[1000](0), hvnVol[1000](0), lvnLevel[1000](0), lvnVol[1000](0); #{ 1. 최소, 최대 가격 찾기 } priceMin = Low; priceMax = High; FOR i = 1 TO len BEGIN IF Low[i] < priceMin THEN priceMin = Low[i]; IF High[i] > priceMax THEN priceMax = High[i]; END; #{ 2. vap 배열 초기화 } FOR j = 0 TO 999 BEGIN vap[j] = 0; END; #{ 3. 거래량 누적 } FOR i = 0 TO len-1 BEGIN level = IntPortion( (Close[i] - priceMin) / priceStep ); IF level >= 0 AND level < 1000 THEN vap[level] = vap[level] + Volume[i]; END; #{ 4. Top N HVN 찾기 } FOR j = 1 TO topN BEGIN maxVol = 0; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > maxVol THEN BEGIN maxVol = vap[i]; pocLevel = i; END; END; hvnLevel[j] = pocLevel; hvnVol[j] = maxVol; vap[pocLevel] = 0; END; #{ 5. Top N LVN 찾기 } FOR j = 1 TO topN BEGIN minVol = 999999999; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > 0 AND vap[i] < minVol THEN BEGIN minVol = vap[i]; pocLevel = i; END; END; lvnLevel[j] = pocLevel; lvnVol[j] = minVol; vap[pocLevel] = 999999999; END; #{ 6. HVN / LVN 출력 ? Plot 이름 고정 } IF topN >= 1 THEN BEGIN pocPrice = priceMin + hvnLevel[1] * priceStep; PLOT1(pocPrice, "HVN1", RED); pocPrice = priceMin + lvnLevel[1] * priceStep; PLOT2(pocPrice, "LVN1", BLUE); END; IF topN >= 2 THEN BEGIN pocPrice = priceMin + hvnLevel[2] * priceStep; PLOT3(pocPrice, "HVN2", RED); pocPrice = priceMin + lvnLevel[2] * priceStep; PLOT4(pocPrice, "LVN2", BLUE); END; IF topN >= 3 THEN BEGIN pocPrice = priceMin + hvnLevel[3] * priceStep; PLOT5(pocPrice, "HVN3", RED); pocPrice = priceMin + lvnLevel[3] * priceStep; PLOT6(pocPrice, "LVN3", BLUE); END; 즐거운 하루되세요 > 성공예견 님이 쓴 글입니다. > 제목 : 지표문의 > 1.아래지표 수정 좀해주세요 검증이안됨 INPUT: len(300), // 분석할 봉 수 priceStep(100), // 가격 구간 크기 topN(3); // 상위 HVN/LVN 개수 VAR: i(0), j(0), priceMin(0), priceMax(0), level(0), maxVol(0), minVol(999999999), pocLevel(0), pocPrice(0); ARRAY: vap , // 가격대별 거래량 hvnLevel , hvnVol , lvnLevel , lvnVol ; { 1. 최소, 최대 가격 찾기 } priceMin = Low; priceMax = High; FOR i = 1 TO len BEGIN IF Low[i] < priceMin THEN priceMin = Low[i]; IF High[i] > priceMax THEN priceMax = High[i]; END; { 2. vap 배열 초기화 } FOR j = 0 TO 999 BEGIN vap[j] = 0; END; { 3. 거래량 누적 } FOR i = 0 TO len-1 BEGIN level = INTPART( (Close[i] - priceMin) / priceStep ); IF level >= 0 AND level < 1000 THEN vap[level] = vap[level] + Volume[i]; END; { 4. Top N HVN 찾기 } FOR j = 1 TO topN BEGIN maxVol = 0; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > maxVol THEN BEGIN maxVol = vap[i]; pocLevel = i; END; END; hvnLevel[j] = pocLevel; hvnVol[j] = maxVol; vap[pocLevel] = 0; END; { 5. Top N LVN 찾기 } FOR j = 1 TO topN BEGIN minVol = 999999999; pocLevel = 0; FOR i = 0 TO 999 BEGIN IF vap[i] > 0 AND vap[i] < minVol THEN BEGIN minVol = vap[i]; pocLevel = i; END; END; lvnLevel[j] = pocLevel; lvnVol[j] = minVol; vap[pocLevel] = 999999999; END; { 6. HVN / LVN 출력 ? Plot 이름 고정 } IF topN >= 1 THEN BEGIN pocPrice = priceMin + hvnLevel[1] * priceStep; PLOT(pocPrice, "HVN1", RED); pocPrice = priceMin + lvnLevel[1] * priceStep; PLOT(pocPrice, "LVN1", BLUE); END; IF topN >= 2 THEN BEGIN pocPrice = priceMin + hvnLevel[2] * priceStep; PLOT(pocPrice, "HVN2", RED); pocPrice = priceMin + lvnLevel[2] * priceStep; PLOT(pocPrice, "LVN2", BLUE); END; IF topN >= 3 THEN BEGIN pocPrice = priceMin + hvnLevel[3] * priceStep; PLOT(pocPrice, "HVN3", RED); pocPrice = priceMin + lvnLevel[3] * priceStep; PLOT(pocPrice, "LVN3", BLUE); END; 그럼 수고하세요