커뮤니티

수식문의

프로필 이미지
프리윌
2019-10-19 13:05:45
150
글번호 132939
답변완료
아래 해당 수식에서 for문의 partMV 값이 출력이 되지 않습니다. 문법적으로는 이상이 없는데 값이 나오지 않는 이유를 모르겠네요. 한번 수식 검토 부탁드립니다. Input : Period(30); Var : totalMV(0), partMV(0), val(0), SFract(0); totalMV = abs(C-C[Period]); for val=0 to Period-1 Begin partMV = partMV + abs(C[val]-C[val+1]); End; SFract = totalMV/partMV; Plot1(SFract,"SFract"); Plot2(totalMV,"totalMV"); Plot3(partMV,"partMV");
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2019-10-21 10:49:05

안녕하세요 예스스탁입니다. 차트에서 30개봉이 만들어지기 전에는 C[val]-C[val+1]이 N/A입니다. 이값이 하나의 변수에 계속 누적이 되므로 값이 계산이 되지 않습니다. 또한 partMV은 최근 30개봉의 값을 누적해야 하는데 작성하신 수식은 초기화없이 전체기간에 대해 누적하게 됩니다. for문 전에 partMV를 0으로 초기화하시면 됩니다. Input : Period(30); Var : totalMV(0), partMV(0), val(0), SFract(0); totalMV = abs(C-C[Period]); partMV = 0; for val=0 to Period-1 Begin partMV = partMV + abs(C[val]-C[val+1]); End; SFract = totalMV/partMV; Plot1(SFract,"SFract"); Plot2(totalMV,"totalMV"); Plot3(partMV,"partMV"); 즐거운 하루되세요 > 프리윌 님이 쓴 글입니다. > 제목 : 수식문의 > 아래 해당 수식에서 for문의 partMV 값이 출력이 되지 않습니다. 문법적으로는 이상이 없는데 값이 나오지 않는 이유를 모르겠네요. 한번 수식 검토 부탁드립니다. Input : Period(30); Var : totalMV(0), partMV(0), val(0), SFract(0); totalMV = abs(C-C[Period]); for val=0 to Period-1 Begin partMV = partMV + abs(C[val]-C[val+1]); End; SFract = totalMV/partMV; Plot1(SFract,"SFract"); Plot2(totalMV,"totalMV"); Plot3(partMV,"partMV");
프로필 이미지

프리윌

2019-10-21 11:29:31

해당부분 적용하여 테스트해봤으나 증상이 동일합니다. 봉이 30개가 만들어지고 부터 된다 하였으나 건수가 보통 300이상이므로 기본적으로 270개 봉전 부터라도 나와야 하는게 정상인데 아예 안나오네요. 초기화 부분은 원래 내부변수 선언부에서 같이 이뤄지는게 아닌지.. 배열 선언하여 사용하고자 하는 변수가 있으면 항상 저런식으로 사용하여야 하는지? 한번 확인 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 > 안녕하세요 예스스탁입니다. 차트에서 30개봉이 만들어지기 전에는 C[val]-C[val+1]이 N/A입니다. 이값이 하나의 변수에 계속 누적이 되므로 값이 계산이 되지 않습니다. 또한 partMV은 최근 30개봉의 값을 누적해야 하는데 작성하신 수식은 초기화없이 전체기간에 대해 누적하게 됩니다. for문 전에 partMV를 0으로 초기화하시면 됩니다. Input : Period(30); Var : totalMV(0), partMV(0), val(0), SFract(0); totalMV = abs(C-C[Period]); partMV = 0; for val=0 to Period-1 Begin partMV = partMV + abs(C[val]-C[val+1]); End; SFract = totalMV/partMV; Plot1(SFract,"SFract"); Plot2(totalMV,"totalMV"); Plot3(partMV,"partMV"); 즐거운 하루되세요 > 프리윌 님이 쓴 글입니다. > 제목 : 수식문의 > 아래 해당 수식에서 for문의 partMV 값이 출력이 되지 않습니다. 문법적으로는 이상이 없는데 값이 나오지 않는 이유를 모르겠네요. 한번 수식 검토 부탁드립니다. Input : Period(30); Var : totalMV(0), partMV(0), val(0), SFract(0); totalMV = abs(C-C[Period]); for val=0 to Period-1 Begin partMV = partMV + abs(C[val]-C[val+1]); End; SFract = totalMV/partMV; Plot1(SFract,"SFract"); Plot2(totalMV,"totalMV"); Plot3(partMV,"partMV");