커뮤니티

지표 구하는 식

프로필 이미지
ouou1
2016-02-22 11:32:46
154
글번호 95631
답변완료
안녕하세요. 배열을 사용하여 지표값 계산식만드는데 값을 구하지 못하여 문의드립니다. 1. 절대값(당일 고가 - 당일 저가) 2. 절대값(전일 종가 - 당일 고가) 3. 절대값(전일 종가 - 당일 저가) 4. 3개값중 최대값을 구하고 15개 평균값을 계산 (15일전의 최대값 부터 당일까지의 최대값의 평균값) Var : cnt(0),Ts(0),T(0); ARRAY : Tm[16](0); ARRAY : T1[16](0); ARRAY : T2[16](0); ARRAY : T3[16](0); For cnt = 0 To 14{ T1[cnt] = ABSVALUE(High[cnt]- Low[cnt]); T2[cnt] = ABSVALUE(C[cnt+1]- High[cnt]); T3[cnt] = ABSVALUE(C[cnt+1]- Low[cnt]); Tm[cnt] = MAXLIST(T1[cnt],T2[cnt],T3[cnt]); } Begin Ts = (Tm[0]+Tm[1]+Tm[2]+Tm[3]+Tm[4]+Tm[5]+Tm[6]+Tm[7]+Tm[8]+Tm[9]+Tm[10]+Tm[11]+Tm[12]+Tm[13]+Tm[14]+Tm[15]+Tm[16]+Tm[17]+Tm[18]+Tm[19]); T = (Ts / 20); End; PLOT1(T,"T"); 이렇게 작성하여 돌리는데 T값이 0으로 나오는데 어디가 잘못 되었는지요?
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-02-22 14:31:29

안녕하세요 예스스탁입니다. 차트가 일간이시면 아래식 이용하시면 됩니다. input : N(15); Var : cnt(0),Ts (0),T(0); Ts = 0; For cnt = 0 To N-1{ var1 = ABS(High[cnt]- Low[cnt]); var2 = ABS(C[cnt+1]- High[cnt]); var3 = ABS(C[cnt+1]- Low[cnt]); var4 = max(var1,var2,var3); Ts = Ts + var4; } T = (Ts /N); PLOT1(T,"T"); 차트가 분봉이고 일간의 값을 계산하고자 하시면 아래식 이용하시면 됩니다. input : N(15); Var : cnt(0),Ts (0),T(0); Ts = 0; For cnt = 0 To N-1{ var1 = ABS(dayhigh(cnt) - DayLow(cnt)); var2 = ABS(DayClose(cnt+1)- DayHigh(cnt)); var3 = ABS(DayClose(cnt+1)- DayLow(cnt)); var4 = max(var1,var2,var3); Ts = Ts + var4; } T = (Ts /N); PLOT1(T,"T"); 즐거운 하루되세요 > ouou1 님이 쓴 글입니다. > 제목 : 지표 구하는 식 > 안녕하세요. 배열을 사용하여 지표값 계산식만드는데 값을 구하지 못하여 문의드립니다. 1. 절대값(당일 고가 - 당일 저가) 2. 절대값(전일 종가 - 당일 고가) 3. 절대값(전일 종가 - 당일 저가) 4. 3개값중 최대값을 구하고 15개 평균값을 계산 (15일전의 최대값 부터 당일까지의 최대값의 평균값) Var : cnt(0),Ts(0),T(0); ARRAY : Tm[16](0); ARRAY : T1[16](0); ARRAY : T2[16](0); ARRAY : T3[16](0); For cnt = 0 To 14{ T1[cnt] = ABSVALUE(High[cnt]- Low[cnt]); T2[cnt] = ABSVALUE(C[cnt+1]- High[cnt]); T3[cnt] = ABSVALUE(C[cnt+1]- Low[cnt]); Tm[cnt] = MAXLIST(T1[cnt],T2[cnt],T3[cnt]); } Begin Ts = (Tm[0]+Tm[1]+Tm[2]+Tm[3]+Tm[4]+Tm[5]+Tm[6]+Tm[7]+Tm[8]+Tm[9]+Tm[10]+Tm[11]+Tm[12]+Tm[13]+Tm[14]+Tm[15]+Tm[16]+Tm[17]+Tm[18]+Tm[19]); T = (Ts / 20); End; PLOT1(T,"T"); 이렇게 작성하여 돌리는데 T값이 0으로 나오는데 어디가 잘못 되었는지요?