커뮤니티

분봉거래량

프로필 이미지
jdavid
2024-02-27 15:48:56
890
글번호 177021
답변완료
감사합니다 오전 85979 답변 너무 잘 사용하고 있습니다. 아래는 오전에 올려주신 답변 내용입니다. 거래량이 가장 많은 순위에서부터 8번째 까지의 내용인데요. 이것을 거래량이 가장 적은 순위에서부터 8번째 까지로 바꾸고 싶습니다. 그리고 주석처리 부탁드립니다. 어떤 수식인지 알고싶네요. 다시 한 번 감사드립니다. input : nday(10); var : cnt(0); Array : di[100](0), vi[2,300](0),sort[2,300](0),TL[300](0); if Bdate != Bdate[1] Then { for cnt = 99 DownTo 1 { di[cnt] = di[cnt-1]; } di[0] = Index; } For cnt = 299 DownTo 1 { vi[0,cnt] = vi[0,cnt-1]; vi[1,cnt] = vi[1,cnt-1]; TL_Delete(TL[cnt-1]); } vi[0,0] = v; vi[1,0] = Index; if di[nday] > 0 Then { For cnt = 0 to Index-di[nday] { sort[0,cnt] = vi[0,cnt]; sort[1,cnt] = vi[1,cnt]; } Sort2DArray(sort,2,Index-di[nday],1); plot1(c[Index-sort[1,0]],"1",Red); plot2(c[Index-sort[1,1]],"2",Red); plot3(c[Index-sort[1,2]],"3",Red); plot4(c[Index-sort[1,3]],"4",Red); plot7(c[Index-sort[1,4]],"5",Blue); plot8(c[Index-sort[1,5]],"6",Blue); plot9(c[Index-sort[1,6]],"7",Blue); plot10(c[Index-sort[1,7]],"8",Blue); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-02-27 17:23:53

안녕하세요 예스스탁입니다. 1 기존 답변식 주석입니다. input : nday(10); var : cnt(0); Array : di[100](0), vi[2,300](0),sort[2,300](0),TL[300](0); #영업일 변경 if Bdate != Bdate[1] Then { #최근 100일간의 일간 첫봉의 인덱스를 저장 #최근 nday로 지정한 일간의 값으로맨 for 루프를 돌리기 위한 배열변수 for cnt = 99 DownTo 1 { di[cnt] = di[cnt-1]; } di[0] = Index; } #아래는 매봉 최근 300개의 거래량과 봉번호를 2차원 배열변수에 저장하는 내용입니다. #현재봉의 거래량은 [0,0], 전봉은 [0,1],전전봉은 [0,2]와 같이 저장 #현재봉의 봉번호는 [1,0], 전봉은 [1,1],전전봉은 [1,2]와 같이 저장 #새로운 봉이 생기면 #각 방의 값을 다음방(뒷방)으로 넘기고 For cnt = 299 DownTo 1 { vi[0,cnt] = vi[0,cnt-1]; vi[1,cnt] = vi[1,cnt-1]; } #0번방에 새로운 값을 저장 vi[0,0] = v; vi[1,0] = Index; #최근 10일치의 데이터가 확보되었으면 if di[nday] > 0 Then { #내림차순이나 오름차순으로 정렬을 위해 #vi 배열은 매봉 거래량과 봉번호의 원본이므로 정렬해서 훼손해서는 안되므로 sort배열로 모두 옮김 For cnt = 0 to Index-di[nday] { sort[0,cnt] = vi[0,cnt]; sort[1,cnt] = vi[1,cnt]; } #정렬 sort배열의 최근 10일간의 값만 0행(거래량이 저장된행) 기준으로 내림차순으로 정렬됨 #0행기준으로 정렬되면서 1행도 0행따라 이동됨 Sort2DArray(sort,2,Index-di[nday],1); #현재봉의 인덱스에서 정렬된 값을 기준으로 0(첫번째)~7(8번째값)번의 인덱스를 차감해서 #순위에 따른 이전봉갯수를 계산하고 이봉수로 이전봉 참조해서 종가를 가져와 8개를 그림 plot1(c[Index-sort[1,0]],"1",Red); plot2(c[Index-sort[1,1]],"2",Red); plot3(c[Index-sort[1,2]],"3",Red); plot4(c[Index-sort[1,3]],"4",Red); plot7(c[Index-sort[1,4]],"5",Blue); plot8(c[Index-sort[1,5]],"6",Blue); plot9(c[Index-sort[1,6]],"7",Blue); plot10(c[Index-sort[1,7]],"8",Blue); } 2 Sort2DArray(sort,2,Index-di[nday],-1); 작은순서는 정렬함수에서 기준 내림차순을 오름차순으로 변경만 하면 됩니다. input : nday(10); var : cnt(0); Array : di[100](0), vi[2,300](0),sort[2,300](0),TL[300](0); #영업일 변경 if Bdate != Bdate[1] Then { #최근 100일간의 일간 첫봉의 인덱스를 저장 #최근 nday로 지정한 일간의 값으로맨 for 루프를 돌리기 위한 배열변수 for cnt = 99 DownTo 1 { di[cnt] = di[cnt-1]; } di[0] = Index; } #아래는 매봉 최근 300개의 거래량과 봉번호를 2차원 배열변수에 저장하는 내용입니다. #현재봉의 거래량은 [0,0], 전봉은 [0,1],전전봉은 [0,2]와 같이 저장 #현재봉의 봉번호는 [1,0], 전봉은 [1,1],전전봉은 [1,2]와 같이 저장 #새로운 봉이 생기면 #각 방의 값을 다음방(뒷방)으로 넘기고 For cnt = 299 DownTo 1 { vi[0,cnt] = vi[0,cnt-1]; vi[1,cnt] = vi[1,cnt-1]; } #0번방에 새로운 값을 저장 vi[0,0] = v; vi[1,0] = Index; #최근 10일치의 데이터가 확보되었으면 if di[nday] > 0 Then { #내림차순이나 오름차순으로 정렬을 위해 #vi 배열은 매봉 거래량과 봉번호의 원본이므로 정렬해서 훼손해서는 안되므로 sort배열로 모두 옮김 For cnt = 0 to Index-di[nday] { sort[0,cnt] = vi[0,cnt]; sort[1,cnt] = vi[1,cnt]; } #정렬 sort배열의 최근 10일간의 값만 0행(거래량이 저장된행) 기준으로 오름차순으로 정렬됨 #0행기준으로 정렬되면서 1행도 0행따라 이동됨 Sort2DArray(sort,2,Index-di[nday],-1); #현재봉의 인덱스에서 정렬된 값을 기준으로 0(첫번째)~7(8번째값)번의 인덱스를 차감해서 #순위에 따른 이전봉갯수를 계산하고 이봉수로 이전봉 참조해서 종가를 가져와 8개를 그림 plot1(c[Index-sort[1,0]],"1",Red); plot2(c[Index-sort[1,1]],"2",Red); plot3(c[Index-sort[1,2]],"3",Red); plot4(c[Index-sort[1,3]],"4",Red); plot7(c[Index-sort[1,4]],"5",Blue); plot8(c[Index-sort[1,5]],"6",Blue); plot9(c[Index-sort[1,6]],"7",Blue); plot10(c[Index-sort[1,7]],"8",Blue); } 즐거운 하루되세요 > jdavid 님이 쓴 글입니다. > 제목 : 분봉거래량 > 감사합니다 오전 85979 답변 너무 잘 사용하고 있습니다. 아래는 오전에 올려주신 답변 내용입니다. 거래량이 가장 많은 순위에서부터 8번째 까지의 내용인데요. 이것을 거래량이 가장 적은 순위에서부터 8번째 까지로 바꾸고 싶습니다. 그리고 주석처리 부탁드립니다. 어떤 수식인지 알고싶네요. 다시 한 번 감사드립니다. input : nday(10); var : cnt(0); Array : di[100](0), vi[2,300](0),sort[2,300](0),TL[300](0); if Bdate != Bdate[1] Then { for cnt = 99 DownTo 1 { di[cnt] = di[cnt-1]; } di[0] = Index; } For cnt = 299 DownTo 1 { vi[0,cnt] = vi[0,cnt-1]; vi[1,cnt] = vi[1,cnt-1]; TL_Delete(TL[cnt-1]); } vi[0,0] = v; vi[1,0] = Index; if di[nday] > 0 Then { For cnt = 0 to Index-di[nday] { sort[0,cnt] = vi[0,cnt]; sort[1,cnt] = vi[1,cnt]; } Sort2DArray(sort,2,Index-di[nday],1); plot1(c[Index-sort[1,0]],"1",Red); plot2(c[Index-sort[1,1]],"2",Red); plot3(c[Index-sort[1,2]],"3",Red); plot4(c[Index-sort[1,3]],"4",Red); plot7(c[Index-sort[1,4]],"5",Blue); plot8(c[Index-sort[1,5]],"6",Blue); plot9(c[Index-sort[1,6]],"7",Blue); plot10(c[Index-sort[1,7]],"8",Blue); }