커뮤니티

timehigh, timelow 값이 이상합니다.-_-;

프로필 이미지
별이아빠
2012-01-30 15:43:46
332
글번호 47052
답변완료

첨부 이미지

아 이것때문에 돌겠네요. 코드는 다음과 같습니다. value47 = 4; value1 = 15; for value1 = (value47-1) downto 0 begin { value51 = 0; value52 = 0; value53 = 0; value54 = 0; value55 = 0; value56 = 0; value57 = 0; value51 = MinutesToTime(540 + (value46*(value1))); value52 = MinutesToTime(540 + (value46*value1) - (value46*1) ); value53 = MinutesToTime(540 + (value46*value1) - (value46*2) ); value54 = timehigh(value53, value52); value55 = timehigh(value52, value51); value56 = timelow(value53, value52); value57 = timelow(value52, value51); MessageLog("%.f %.f %.f %.f %f %f %f %f", value1, value51, value52, value53, value54, value55, value56, value57); } 15분 간격으로 Timehigh, Timelow 값을 구하는 건데요. 첨부한 결과처럼 나옵니다. 결과를 보면 value51, value52, value53 의 값이 계속 변하는데도 불구하고 계속 같은 값이 계산되어져 나옵니다. (실제로 같은 값이 아닌데도 불구하고.) 그릭...계산오류도 나오고요..... 이거 왜이럴까요.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-01-30 18:02:29

안녕하세용 예스스탁입니다. timehigh, timelow등은 가변적인 내용을 받아들이는 함수가 아닙니다. 일반적으로 일간데이터를 가져오는 함수나 포지션관련 함수를 제외하고 함수의 기간값등은 가변적으로 사용하실 수 없습니다. 가령 1분차트에서 차트를 15분 단위로 나누어 최고가와 최저가를 계산하시는 내용이면 아래식을 이용하시면 됩니다. input : Atime(15); var : cnt(0),count(0); Array : HH[100](0),LL[100](0); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = H; plot1(HH[0]);#현재 plot2(LL[0]);#현재 plot3(HH[1]);#직전 plot4(LL[1]);#직전 즐거운 하루되세요 > 별이아빠 님이 쓴 글입니다. > 제목 : timehigh, timelow 값이 이상합니다.-_-; > 아 이것때문에 돌겠네요. 코드는 다음과 같습니다. value47 = 4; value1 = 15; for value1 = (value47-1) downto 0 begin { value51 = 0; value52 = 0; value53 = 0; value54 = 0; value55 = 0; value56 = 0; value57 = 0; value51 = MinutesToTime(540 + (value46*(value1))); value52 = MinutesToTime(540 + (value46*value1) - (value46*1) ); value53 = MinutesToTime(540 + (value46*value1) - (value46*2) ); value54 = timehigh(value53, value52); value55 = timehigh(value52, value51); value56 = timelow(value53, value52); value57 = timelow(value52, value51); MessageLog("%.f %.f %.f %.f %f %f %f %f", value1, value51, value52, value53, value54, value55, value56, value57); } 15분 간격으로 Timehigh, Timelow 값을 구하는 건데요. 첨부한 결과처럼 나옵니다. 결과를 보면 value51, value52, value53 의 값이 계속 변하는데도 불구하고 계속 같은 값이 계산되어져 나옵니다. (실제로 같은 값이 아닌데도 불구하고.) 그릭...계산오류도 나오고요..... 이거 왜이럴까요.