커뮤니티

문의드립니다.

프로필 이미지
진팡이
2017-11-13 12:00:52
169
글번호 114122
답변완료
1. 아래의 식에서 가장큰 가격대만 표현하고싶습니다. #==========================================# Input:기간(20), 구간개수(10); //최대 20 Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0), 시작번호(0),끝번호(0); Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0); #----------------------------------------------------------------------------------# # 가격대를 배열변수에 세팅한다. #----------------------------------------------------------------------------------# 최대 = Highest(H,기간-1); 최소 = Lowest(L,기간-1); Value1 = (최대-최소)/구간개수;#Round((최대-최소)/구간개수,0); 가격대[0] = 최대; For 행번호 = 0 To 구간개수-1 { 가격대[행번호+1] = 가격대[행번호] - Value1; 거래량[행번호] = 0; 비율[행번호] = 0; } 총거래량 = 0; For j = 0 To 기간-2 { 총거래량 = 총거래량 + V[j]; #----------------------------------------------------------------------------------# # 거래량을 걸쳐있는 가격대에 분배 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호; if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호; } 가격대거래량 = V[j]/(끝번호-시작번호+1); for 행번호 = 시작번호 To 끝번호 { 거래량[행번호] = 거래량[행번호] + 가격대거래량; } } #----------------------------------------------------------------------------------# # 비율 계산 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { 비율[행번호] = 거래량[행번호] * 100 / 총거래량; } #----------------------------------------------------------------------------------# # 지표출력 #----------------------------------------------------------------------------------# for j = 0 to 구간개수-1 { TL_Delete(TL[j]); TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]); Text_Delete(Text[j]); Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,""+NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],2)+" ~ "+NumToStr(가격대[j],2)+")"); Text_SetColor(text[j], WHITE); Text_SetStyle(Text[j],0, 2); } j = 구간개수; TL_Delete(TL[j]); TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-14 09:01:00

안녕하세요 예스스탁입니다. #==========================================# Input:기간(20), 구간개수(10); //최대 20 Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0), 시작번호(0),끝번호(0),hv(0),hi(0); Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0); #----------------------------------------------------------------------------------# # 가격대를 배열변수에 세팅한다. #----------------------------------------------------------------------------------# 최대 = Highest(H,기간-1); 최소 = Lowest(L,기간-1); Value1 = (최대-최소)/구간개수;#Round((최대-최소)/구간개수,0); 가격대[0] = 최대; For 행번호 = 0 To 구간개수-1 { 가격대[행번호+1] = 가격대[행번호] - Value1; 거래량[행번호] = 0; 비율[행번호] = 0; } 총거래량 = 0; For j = 0 To 기간-2 { 총거래량 = 총거래량 + V[j]; #----------------------------------------------------------------------------------# # 거래량을 걸쳐있는 가격대에 분배 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호; if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호; } 가격대거래량 = V[j]/(끝번호-시작번호+1); for 행번호 = 시작번호 To 끝번호 { 거래량[행번호] = 거래량[행번호] + 가격대거래량; } } #----------------------------------------------------------------------------------# # 비율 계산 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { 비율[행번호] = 거래량[행번호] * 100 / 총거래량; } #----------------------------------------------------------------------------------# # 지표출력 #----------------------------------------------------------------------------------# Hv = 거래량[0]; Hi = 0; for j = 0 to 구간개수 { if 거래량[j] > Hv Then{ Hv = 거래량[j]; Hi = j; } } TL_Delete(TL[0]); TL[0] = TL_New(Date[기간-2],sTime[기간-2],가격대[hi],Date[0],sTime[0],가격대[hi]); Text_Delete(Text[0]); Text[0] = Text_New(date[0], stime[0], (가격대[hi]+가격대[hi+1])/2,""+NumToStr(거래량[hi],0)+" ("+NumToStr(비율[hi],2)+"%)("+NumToStr(가격대[hi+1],2)+" ~ "+NumToStr(가격대[hi],2)+")"); Text_SetColor(text[0], WHITE); Text_SetStyle(Text[0],0, 2); 즐거운 하루되세요 > 진팡이 님이 쓴 글입니다. > 제목 : 문의드립니다. > 1. 아래의 식에서 가장큰 가격대만 표현하고싶습니다. #==========================================# Input:기간(20), 구간개수(10); //최대 20 Var:최대(0),최소(0),j(0),행번호(0),총거래량(0),가격대거래량(0), 시작번호(0),끝번호(0); Array:가격대[21](0),거래량[21](0),비율[21](0),Text[21](0),TL[21](0); #----------------------------------------------------------------------------------# # 가격대를 배열변수에 세팅한다. #----------------------------------------------------------------------------------# 최대 = Highest(H,기간-1); 최소 = Lowest(L,기간-1); Value1 = (최대-최소)/구간개수;#Round((최대-최소)/구간개수,0); 가격대[0] = 최대; For 행번호 = 0 To 구간개수-1 { 가격대[행번호+1] = 가격대[행번호] - Value1; 거래량[행번호] = 0; 비율[행번호] = 0; } 총거래량 = 0; For j = 0 To 기간-2 { 총거래량 = 총거래량 + V[j]; #----------------------------------------------------------------------------------# # 거래량을 걸쳐있는 가격대에 분배 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { if 가격대[행번호] >= H[j] and 가격대[행번호+1] < H[j] then 시작번호 = 행번호; if 가격대[행번호] >= L[j] and 가격대[행번호+1] < L[j] then 끝번호 = 행번호; } 가격대거래량 = V[j]/(끝번호-시작번호+1); for 행번호 = 시작번호 To 끝번호 { 거래량[행번호] = 거래량[행번호] + 가격대거래량; } } #----------------------------------------------------------------------------------# # 비율 계산 #----------------------------------------------------------------------------------# for 행번호 = 0 To 구간개수-1 { 비율[행번호] = 거래량[행번호] * 100 / 총거래량; } #----------------------------------------------------------------------------------# # 지표출력 #----------------------------------------------------------------------------------# for j = 0 to 구간개수-1 { TL_Delete(TL[j]); TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]); Text_Delete(Text[j]); Text[j] = Text_New(date[0], stime[0], (가격대[j]+가격대[j+1])/2,""+NumToStr(거래량[j],0)+" ("+NumToStr(비율[j],2)+"%)("+NumToStr(가격대[j+1],2)+" ~ "+NumToStr(가격대[j],2)+")"); Text_SetColor(text[j], WHITE); Text_SetStyle(Text[j],0, 2); } j = 구간개수; TL_Delete(TL[j]); TL[j] = TL_New(Date[기간-2],sTime[기간-2],가격대[j],Date[0],sTime[0],가격대[j]);