커뮤니티

수식 변경 가능할까요??

프로필 이미지
arron
2019-10-02 17:10:27
514
글번호 132474
답변완료
안녕하세요. 항상 도움에 감사드립니다. 아래 수식은 특정 기간동안 매물대를 표현하는 수식지왕님의 사용자 함수인데. 1. 특정 기간이 아닌 일단위 매물대로 변경( 시작 시간 변경 가능 하게) 2. 원하는 날짜 부터 매물대 표현 ( ex, 19.09.25 ~ 현재 까지 ) ==================== 아래 =========================== Input:기간(NumericSimple),개수(NumericSimple), 매물대[MaxSize1,MaxSize2](NumericArrayRef); // 행번호는 순위, 열번호=1:가격이상,2:가격미만,3:수량,4:비율 Var:j(0),k(0),q(0),구간최고가(0),구간최저가(0),총거래량(0),가격단위(0); //============= 매물대 계산 =======================// 구간최고가 = Highest(H,기간); 구간최저가 = Lowest(L,기간); 총거래량 = AccumN(V,기간); 가격단위 = (구간최고가 - 구간최저가)/개수; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; For j = 2 To 개수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } For k = 0 To 기간 - 1 { For j = 1 To 개수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 개수; } } } // 수량순으로 소팅 For j = 1 To 개수 - 1 { For k = j + 1 To 개수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 { // 열번호 1~4 var1 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var1; } } } } VolProfile = 1;
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-07 09:36:43

안녕하세요 예스스탁입니다. 1 Input:시작시간(Numeric),기간(NumericSimple),개수(NumericSimple), 매물대[MaxSize1,MaxSize2](NumericArrayRef); // 행번호는 순위, 열번호=1:가격이상,2:가격미만,3:수량,4:비율 Var:j(0),k(0),q(0),구간최고가(0),구간최저가(0),총거래량(0),가격단위(0),cnt(0); Array : HH[100](0),LL[100](0),CC[100](0),VV[100](0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) then { HH[0] = H; LL[0] = L; VV[0] = V; for cnt = 1 to 99 { HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; VV[cnt] = VV[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; VV[0] = VV[0] +v; //============= 매물대 계산 =======================// if HH[기간-1] > 0 and LL[기간-1] > 0 then { 구간최고가 = HH[0]; 구간최저가 = LL[0]; 총거래량 = 0; for cnt = 0 to 기간-1 { if HH[cnt] > 구간최고가 Then 구간최고가 = HH[cnt]; if LL[cnt] < 구간최저가 Then 구간최저가 = LL[cnt]; 총거래량 = 총거래량 + VV[cnt]; } 가격단위 = (구간최고가 - 구간최저가)/개수; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; For j = 2 To 개수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } For k = 0 To 기간 - 1 { For j = 1 To 개수 { If 매물대[j,1] <= CC[k] and CC[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + VV[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 개수; } } } // 수량순으로 소팅 For j = 1 To 개수 - 1 { For k = j + 1 To 개수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 { // 열번호 1~4 var1 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var1; } } } } VolProfile = 1; } 2 Input : 시작시간(Numeric),시작일(Numeric),개수(NumericSimple), 매물대[MaxSize1,MaxSize2](NumericArrayRef); // 행번호는 순위, 열번호=1:가격이상,2:가격미만,3:수량,4:비율 Var:j(0),k(0),q(0),구간최고가(0),구간최저가(0),총거래량(0),가격단위(0),cnt(0),idx(0),HH(0),LL(0); Array : CC[200](0),VV[200](0); if sdate >= 시작일 then { if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) then { HH = H; LL = L; VV[0] = V; for cnt = 1 to 199 { CC[cnt] = CC[cnt-1][1]; VV[cnt] = VV[cnt-1][1]; } idx = idx+1; } if H > HH Then HH = H; if L < LL Then LL = L; CC[0] = C; VV[0] = VV[0] +v; //============= 매물대 계산 =======================// 구간최고가 = HH; 구간최저가 = LL; 총거래량 = 0; for cnt = 0 to idx-1 { if HH[cnt] > 구간최고가 Then 구간최고가 = HH[cnt]; if LL[cnt] < 구간최저가 Then 구간최저가 = LL[cnt]; 총거래량 = 총거래량 + VV[cnt]; } 가격단위 = (구간최고가 - 구간최저가)/개수; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; For j = 2 To 개수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } For k = 0 To idx - 1 { For j = 1 To 개수 { If 매물대[j,1] <= CC[k] and CC[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + VV[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 개수; } } } // 수량순으로 소팅 For j = 1 To 개수 - 1 { For k = j + 1 To 개수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 { // 열번호 1~4 var1 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var1; } } } } VolProfile = 1; } 즐거운 하루되세요 > arron 님이 쓴 글입니다. > 제목 : 수식 변경 가능할까요?? > 안녕하세요. 항상 도움에 감사드립니다. 아래 수식은 특정 기간동안 매물대를 표현하는 수식지왕님의 사용자 함수인데. 1. 특정 기간이 아닌 일단위 매물대로 변경( 시작 시간 변경 가능 하게) 2. 원하는 날짜 부터 매물대 표현 ( ex, 19.09.25 ~ 현재 까지 ) ==================== 아래 =========================== Input:기간(NumericSimple),개수(NumericSimple), 매물대[MaxSize1,MaxSize2](NumericArrayRef); // 행번호는 순위, 열번호=1:가격이상,2:가격미만,3:수량,4:비율 Var:j(0),k(0),q(0),구간최고가(0),구간최저가(0),총거래량(0),가격단위(0); //============= 매물대 계산 =======================// 구간최고가 = Highest(H,기간); 구간최저가 = Lowest(L,기간); 총거래량 = AccumN(V,기간); 가격단위 = (구간최고가 - 구간최저가)/개수; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; 매물대[1,4] = 0; For j = 2 To 개수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } For k = 0 To 기간 - 1 { For j = 1 To 개수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; 매물대[j,4] = 매물대[j,3] / 총거래량 * 100; j = 개수; } } } // 수량순으로 소팅 For j = 1 To 개수 - 1 { For k = j + 1 To 개수 { If 매물대[j,3] < 매물대[k,3] Then { For q = 1 To 4 { // 열번호 1~4 var1 = 매물대[j,q]; // 데이터를 맞바꾸기 매물대[j,q] = 매물대[k,q]; 매물대[k,q] = Var1; } } } } VolProfile = 1;