커뮤니티

배열

프로필 이미지
행복충전
2011-06-30 14:31:16
1035
글번호 40340
답변완료
* 다운로드 메뉴얼 63페이지의 1분봉 차트에 적용하여 60분봉의 고가를 구현하는 지표식 var : Frame(0), count(0); Array : Hval[10](0); Frame = TimeToMinutes(stime)%60; if dayindex == 0 or Frame < Frame[1] Then{ Hval[0] = H; for count = 1 to 9{ &#10122; Hval[count] = Hval[count-1][1]; } } if H > Hval[0] Then Hval[0] = H; plot1(Hval[0]); &#10122; Hval[count] = Hval[count-1][1]; for문이 처음 실행될때 Hval[1] = Hval[0][1] 이렇게 될것 같은데요. Hval[1] = Hval[0] // 1번방에 0번방 값을 대입하라??? Hval[1] = Hval[0][1] // 1번방에 0번방 이전방의 값을 대입하라??? // 즉 (-1)번방 값을 대입하라??? Hval[0][1]에서 [1]이 무슨 뜻이고 왜 붙는지 궁금합니다 그림과 같은 그래프가 그려지는게 맞는지요?
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-06-30 14:27:22

안녕하세요 예스스탁입니다. Hval은 배열변수 입니다. 일반변수는 현재시점에서 값을 하나만 저장할 수 있지만 배열변수는 공간을 여러개로 분할하여 여러값을 저장할 수 있습니다. Array : Hval[10](0); 와 같이 작성하시면 Hval은 배열변수이고 분할된 공간이 10개인 수치형변수로 선언한 것입니다. 각 분할 공간은 모두 이전값 참조도 가능합니다. 그러므로 문의하신 hval[0][1]로 작성하면 0번 분할공간의 1봉전값을 나타내게 됩니다. var : Frame(0), count(0); Array : Hval[10](0); Frame = TimeToMinutes(stime)%60; if dayindex == 0 or Frame < Frame[1] Then{ Hval[0] = H; for count = 1 to 9{ Hval[count] = Hval[count-1][1]; } } if H > Hval[0] Then Hval[0] = H; plot1(Hval[0]); 위식은 60분봉 이하에서 60분봉의 최고가를 계산하는 식입니다. 현재의 60분간 최고가는 hval[0]에 저장하고 직전 값들은 hval[1],hval[2],..에 순차적으로 저장됩니다. 이때 60분 주기가 변경될때 먼저 새로운 60분주기가 시작되므로 hval[0]은 해당 봉의 고가로 최초값을 잡고 직전봉까지 hval[0]에 저장된 값을 hval[1]로 옮기고 기존의 hval[1]에 있었던 값은 hval[2]로 옮기며 순차적으로 옮기게 됩니다. 즉 Hval[1] = Hval[0-1][1]; 1번공간에 직전0번공간에 저장된 값을 저장합니다. 값을 순차적으로 옮길때는 첨부된 그림과 같이 2가지 정도의 방법이 사용되는데 주로 초기값을 먼저 지정하고 for문으로 값을 순차적으로 옮길대는 수식과 같이 방법1을 사용하고 값을 먼저 옮기고 [0]번 공간의 초기값을 할당할때는 방법2가 사용됩니다. 수식 작성에 참고하시기 바랍니다. 즐거운 하루되세요 > 행복충전 님이 쓴 글입니다. > 제목 : 배열 > * 다운로드 메뉴얼 63페이지의 1분봉 차트에 적용하여 60분봉의 고가를 구현하는 지표식 var : Frame(0), count(0); Array : Hval[10](0); Frame = TimeToMinutes(stime)%60; if dayindex == 0 or Frame < Frame[1] Then{ Hval[0] = H; for count = 1 to 9{ &#10122; Hval[count] = Hval[count-1][1]; } } if H > Hval[0] Then Hval[0] = H; plot1(Hval[0]); &#10122; Hval[count] = Hval[count-1][1]; for문이 처음 실행될때 Hval[1] = Hval[0][1] 이렇게 될것 같은데요. Hval[1] = Hval[0] // 1번방에 0번방 값을 대입하라??? Hval[1] = Hval[0][1] // 1번방에 0번방 이전방의 값을 대입하라??? // 즉 (-1)번방 값을 대입하라??? Hval[0][1]에서 [1]이 무슨 뜻이고 왜 붙는지 궁금합니다 그림과 같은 그래프가 그려지는게 맞는지요?