커뮤니티
타분봉 참조 알고리즘 질문
2011-11-17 15:31:40
470
글번호 44865
안녕하세요.
수고많으십니다. 대충 이것 저것 짜보면서 익히고 있는데요. 타 분봉데이터 참조에 대해서 잘 모르겠어서 질문 드립니다.
예를들어 일봉을 30분봉으로 보면 총 12개의 봉이 나올텐데요. 설명의 편의를 위해 그날의 첫번째 30분봉을 30분(1), 두번째 30분봉을 30분(2), ...이런식으로 이름 붙여보겠습니다.
여기서 기본 차트를 30분봉으로 맞춰놓고 코드를 짠다고 할때, 각 30분봉을 다시 1분봉 단위로 쪼개어 보면 각각 30개의 1분봉이 있을것입니다.
그럼 여기서 최종적으로 각 30분봉마다 몇번째의 1분봉에서 해당 30분봉의 최고점/최저점이 발생했는지를 계산하는 알고리즘을 알고싶습니다. 즉, 30분(1)은 14번째 1분봉에서 (1분봉 종가상)얼마의 가격으로 최고점이었더라...30분(2)는 4번째 1분봉에서 (1분봉 종가상)얼마의 가격으로 최저점이었더라..
일반 알고리즘은 짜겠는데, 복합시간대의 봉 문제는 잘 모르겠습니다. 알고리즘 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2011-11-17 13:55:55
안녕하세요
예스스탁입니다.
var : idx(0),TimeFrame(0),nth(0);
Array : HH[20](0),LL[20](0),Hi[20](0),Li[20](0);
TimeFrame = TimeToMinutes(stime)%30;
# 당일 첫봉에서 30분봉의 번호 0으로 초기화
if dayindex == 0 Then
nth = 0;
# 첫봉과 시간이 30분 주기를 넘으면(30분주기 첫봉)
if dayindex == 0 or (TimeFrame <= TimeFrame[1] and stime > stime[1]) Then{
idx = 0;#30분봉 안의 1분봉의 번호 0으로 초기화
nth = nth+1; #30분봉의 번호를 1씩 증가
HH[nth] = c;# 종가로 초기화
Hi[nth] = 1;#1로 초기화
LL[nth] = c;#종가로 초기화
Li[nth] = 1;#1로 초기화
}
#30분봉 안의 1분봉의 번호를 1씩 증가
idx = idx+1;
#종가중 최고가 계산하고 최고가 갱신될때마다 1분봉의 번호 저장
if c > HH[nth] Then{
HH[nth] = c;
Hi[nth] = idx;
}
#종가중 최저가 계산하고 최저가 갱신될때마다 1분봉의 번호 저장
if c < LL[nth] Then{
LL[nth] = c;
Li[nth] = idx;
}
plot1(HH[2]);
plot2(LL[2]);
HH[1] 30분봉 첫봉 고가
HH[2] 30분봉 두번째봉 고가
HH[3] 30분봉 세번째봉 고가
순입니다.
1분봉상 봉번호는 Hi[1],Hi[2],Hi[3]...순입니다
저가도 위와 같습니다.
즐거운 하루되세요
> 피앙 님이 쓴 글입니다.
> 제목 : 타분봉 참조 알고리즘
> 안녕하세요.
수고많으십니다. 대충 이것 저것 짜보면서 익히고 있는데요. 타 분봉데이터 참조에 대해서 잘 모르겠어서 질문 드립니다.
예를들어 일봉을 30분봉으로 보면 총 12개의 봉이 나올텐데요. 설명의 편의를 위해 그날의 첫번째 30분봉을 30분(1), 두번째 30분봉을 30분(2), ...이런식으로 이름 붙여보겠습니다.
여기서 기본 차트를 30분봉으로 맞춰놓고 코드를 짠다고 할때, 각 30분봉을 다시 1분봉 단위로 쪼개어 보면 각각 30개의 1분봉이 있을것입니다.
그럼 여기서 최종적으로 각 30분봉마다 몇번째의 1분봉에서 해당 30분봉의 최고점/최저점이 발생했는지를 계산하는 알고리즘을 알고싶습니다. 즉, 30분(1)은 14번째 1분봉에서 (1분봉 종가상)얼마의 가격으로 최고점이었더라...30분(2)는 4번째 1분봉에서 (1분봉 종가상)얼마의 가격으로 최저점이었더라..
일반 알고리즘은 짜겠는데, 복합시간대의 봉 문제는 잘 모르겠습니다. 알고리즘 부탁드립니다.
다음글
이전글