커뮤니티
배열변수에 대하여.
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 상태전의 값을 기억하고
.
.
.
.
.
가 됩니다.
너무 어려우신가요 ?
전문적으로 프로그램을 공부하신분이 아니시라면 조금 어려울수도
있습니다. 그럼 성투하세요...
다음글
이전글