커뮤니티

배열변수에 대하여.

프로필 이미지
하기는해봤나
2009-05-11 00:31:05
777
글번호 22163
var : j(0); array : 전고점[11](0); if h[3] < h[1] and h[2] < h[1] and h[1] > h then { for j = 9 downto 1 { 전고점[j+1] = 전고점[j]; } 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 공부를 하다가 위의 식을 접했는데 배열변수가 어떤것을 의미하는지 아무리 생각해도 모르겠네요. 1. 배열변수의 의미 2. 위의 식을 풀이하면 var : j(0), 전고점0, 전고점1,,,,,,,전고점10 if h[3] < h[1] and h[2] < h[1] and h[1] > h then { 전고점10=전고점9 전고점9=전고점8 전고점8=전고점7 전고점7=전고점6 전고점6=전고점5 전고점5=전고점4 전고점4=전고점3 전고점3=전고점2 전고점2=전고점1 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 일것인데요...그럼 전고점[2]는 전고점[1]이랑 같고 그럼 전고점[3]도 전고점[1]이랑 같은거 아닌가요.. 아...무슨 의미 인지 의미 자체를 모르겠습니다. 식의 의미 자체를 모르니까 무엇을 질문해야 할지도 막막합니다. 배열변수의 의미와 위 식의 내용이 어떻게 되는 것인지요? 아주 초보니까..이해하기 쉽게 설명 부탁드립니다.. 좋은 하루 되세요^^
지표
답변 2
프로필 이미지

홍도리

2009-05-12 00:04:11

> 하기는해봤나 님이 쓴 글입니다. > 제목 : 배열변수에 대하여. > var : j(0); array : 전고점[11](0); if h[3] < h[1] and h[2] < h[1] and h[1] > h then { for j = 9 downto 1 { 전고점[j+1] = 전고점[j]; } 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 공부를 하다가 위의 식을 접했는데 배열변수가 어떤것을 의미하는지 아무리 생각해도 모르겠네요. 1. 배열변수의 의미 2. 위의 식을 풀이하면 var : j(0), 전고점0, 전고점1,,,,,,,전고점10 if h[3] < h[1] and h[2] < h[1] and h[1] > h then { 전고점10=전고점9 전고점9=전고점8 전고점8=전고점7 전고점7=전고점6 전고점6=전고점5 전고점5=전고점4 전고점4=전고점3 전고점3=전고점2 전고점2=전고점1 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 일것인데요...그럼 전고점[2]는 전고점[1]이랑 같고 그럼 전고점[3]도 전고점[1]이랑 같은거 아닌가요.. 아...무슨 의미 인지 의미 자체를 모르겠습니다. 식의 의미 자체를 모르니까 무엇을 질문해야 할지도 막막합니다. 배열변수의 의미와 위 식의 내용이 어떻게 되는 것인지요? 아주 초보니까..이해하기 쉽게 설명 부탁드립니다.. 좋은 하루 되세요^^ ******************************************************************** ******************************************************************** ******************************************************************** 1. 배열변수의 의미 var : j(0); 보통 이렇게 선언하면 j 라는 한개의 변수에 한개의 값을 넣을수가 있습니다. 그런데 10개의 내용을 기억할려면 var : j1(0) ,j2(0) ,j3(0) ,j4(0) ,j5(0) .......; 이런식으로 변수를 만들어야 하니 불편하겠죠? 그래서 array : 전고점[11](0); 이렇게 배열변수로 선언하면 전고점[1] = 12 ; 전고점[2] = 2 ; 전고점[3] = 31 ; 이런식으로 값을 기억할수 있으므로 상당히 편리합니다. 2. 로직의미 예를들어 현재봉을 기준으로봤을때 이전 50 개 정도의 봉에서 오르락 내리락 했다고 가정하면 if h[3] < h[1] and h[2] < h[1] and h[1] > h then { 의 의미는 현재봉-1봉의 고가가 현재봉의 고가보다 크고 현재봉-1봉의 고가가 현재봉-2봉의 고가보다 크고 현재봉-1봉의 고가가 현재봉-3봉의 고가보다 큰경우이므로 한마디로 현재봉-1봉의 고가가 4개봉중 제일 고점이라는 의미입니다. for j = 9 downto 1 { 전고점[j+1] = 전고점[j]; } 이것의 의미는 위에서처럼 현재봉-1봉의 고가가 고점인경우에 전고점[9]=전고점[8] 전고점[8]=전고점[7] 전고점[7]=전고점[6] 전고점[6]=전고점[5] . . . 이것은 밀어내기라고 생각하시면 됩니다. 즉 최초에는 전부다 0 이라는 값이겠죠. 그런데 조금지나서 전고점이(예 150) 되면 처음에는 전부0 이지만 전고점[1] = h[1]; 때문에 전고점[1] 만 150 이 됩니다. 또 조금지나서 전고점이(예 152) 되면 전고점[2] 이상은 계속 0 이지만 전고점[1] 은 위에서 이미 150 으로 변경되었으므로 전고점[2] = 전고점[1] 이니까 전고점[2] 는 150 이 되고 전고점[1] 은 152 가 됩니다. 또 조금지나서 전고점이(예 147) 되면 전고점[3] 이상은 계속 0 이지만 전고점[2] = 150 으로 변경되어있고 전고점[1] = 152 으로 변경되어있으므로 전고점[3] 이 150 으로 변경되고 전고점[2] 는 152 으로 변경되고 전고점[1] 은 147 이 됩니다. 즉 이런식으로 전고점조건이 참이되면 전고점[1] 에는 최근전고점을 기억하고 전고점[2] 에는 최근전고점 바로전의 값을 기억하고 전고점[3] 에는 최근전고점 2 상태전의 값을 기억하고 전고점[4] 에는 최근전고점 3 상태전의 값을 기억하고 전고점[5] 에는 최근전고점 4 상태전의 값을 기억하고 . . . . . 가 됩니다. 너무 어려우신가요 ? 전문적으로 프로그램을 공부하신분이 아니시라면 조금 어려울수도 있습니다. 그럼 성투하세요...
프로필 이미지

하기는해봤나

2009-05-12 09:18:52

홍도리님 너무 감사드립니다. 명괘한 설명이네요^^ 워낙 초보라서 공부하다가 막히는 부분이 많은데 감사드립니다...^^ > 홍도리 님이 쓴 글입니다. > 제목 : Re : 배열변수에 대하여. > > 하기는해봤나 님이 쓴 글입니다. > 제목 : 배열변수에 대하여. > var : j(0); array : 전고점[11](0); if h[3] < h[1] and h[2] < h[1] and h[1] > h then { for j = 9 downto 1 { 전고점[j+1] = 전고점[j]; } 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 공부를 하다가 위의 식을 접했는데 배열변수가 어떤것을 의미하는지 아무리 생각해도 모르겠네요. 1. 배열변수의 의미 2. 위의 식을 풀이하면 var : j(0), 전고점0, 전고점1,,,,,,,전고점10 if h[3] < h[1] and h[2] < h[1] and h[1] > h then { 전고점10=전고점9 전고점9=전고점8 전고점8=전고점7 전고점7=전고점6 전고점6=전고점5 전고점5=전고점4 전고점4=전고점3 전고점3=전고점2 전고점2=전고점1 전고점[1] = h[1]; } plot1(전고점[1]); plot2(전고점[2]); 일것인데요...그럼 전고점[2]는 전고점[1]이랑 같고 그럼 전고점[3]도 전고점[1]이랑 같은거 아닌가요.. 아...무슨 의미 인지 의미 자체를 모르겠습니다. 식의 의미 자체를 모르니까 무엇을 질문해야 할지도 막막합니다. 배열변수의 의미와 위 식의 내용이 어떻게 되는 것인지요? 아주 초보니까..이해하기 쉽게 설명 부탁드립니다.. 좋은 하루 되세요^^ ******************************************************************** ******************************************************************** ******************************************************************** 1. 배열변수의 의미 var : j(0); 보통 이렇게 선언하면 j 라는 한개의 변수에 한개의 값을 넣을수가 있습니다. 그런데 10개의 내용을 기억할려면 var : j1(0) ,j2(0) ,j3(0) ,j4(0) ,j5(0) .......; 이런식으로 변수를 만들어야 하니 불편하겠죠? 그래서 array : 전고점[11](0); 이렇게 배열변수로 선언하면 전고점[1] = 12 ; 전고점[2] = 2 ; 전고점[3] = 31 ; 이런식으로 값을 기억할수 있으므로 상당히 편리합니다. 2. 로직의미 예를들어 현재봉을 기준으로봤을때 이전 50 개 정도의 봉에서 오르락 내리락 했다고 가정하면 if h[3] < h[1] and h[2] < h[1] and h[1] > h then { 의 의미는 현재봉-1봉의 고가가 현재봉의 고가보다 크고 현재봉-1봉의 고가가 현재봉-2봉의 고가보다 크고 현재봉-1봉의 고가가 현재봉-3봉의 고가보다 큰경우이므로 한마디로 현재봉-1봉의 고가가 4개봉중 제일 고점이라는 의미입니다. for j = 9 downto 1 { 전고점[j+1] = 전고점[j]; } 이것의 의미는 위에서처럼 현재봉-1봉의 고가가 고점인경우에 전고점[9]=전고점[8] 전고점[8]=전고점[7] 전고점[7]=전고점[6] 전고점[6]=전고점[5] . . . 이것은 밀어내기라고 생각하시면 됩니다. 즉 최초에는 전부다 0 이라는 값이겠죠. 그런데 조금지나서 전고점이(예 150) 되면 처음에는 전부0 이지만 전고점[1] = h[1]; 때문에 전고점[1] 만 150 이 됩니다. 또 조금지나서 전고점이(예 152) 되면 전고점[2] 이상은 계속 0 이지만 전고점[1] 은 위에서 이미 150 으로 변경되었으므로 전고점[2] = 전고점[1] 이니까 전고점[2] 는 150 이 되고 전고점[1] 은 152 가 됩니다. 또 조금지나서 전고점이(예 147) 되면 전고점[3] 이상은 계속 0 이지만 전고점[2] = 150 으로 변경되어있고 전고점[1] = 152 으로 변경되어있으므로 전고점[3] 이 150 으로 변경되고 전고점[2] 는 152 으로 변경되고 전고점[1] 은 147 이 됩니다. 즉 이런식으로 전고점조건이 참이되면 전고점[1] 에는 최근전고점을 기억하고 전고점[2] 에는 최근전고점 바로전의 값을 기억하고 전고점[3] 에는 최근전고점 2 상태전의 값을 기억하고 전고점[4] 에는 최근전고점 3 상태전의 값을 기억하고 전고점[5] 에는 최근전고점 4 상태전의 값을 기억하고 . . . . . 가 됩니다. 너무 어려우신가요 ? 전문적으로 프로그램을 공부하신분이 아니시라면 조금 어려울수도 있습니다. 그럼 성투하세요...