커뮤니티
MonthOpen..., WeeOpen... 등의 문제점
2010-02-26 10:23:44
662
글번호 28414
업무에 수고가 많으십니다.
게시물을 읽다가 Month, Week 데이터에 대한 시고저종 함수를 다운받고
적용해 보았습니다. (에스스탁에서 올린 파일임)
시뮬레이션 셋팅>
- 연결선물지수
- 1분봉 조회 (2010/01/04 ~ 2010/02/25)
- 지표식 추가 (ex: _주봉월봉로그)
- 지표식 내용
// 금일 시고저종, 금주 시고저종, 금월 시고저종 출력
messageLog("%.2f, %.2f, %.2f, %.2f", DayOpen, DayHigh, DayLow, DayClose);
messageLog("%.2f, %.2f, %.2f, %.2f", WeekOpen(0), WeekHigh(0), WeekLow(0), WeekClose(0));
messageLog("%.2f, %.2f, %.2f, %.2f", MonthOpen(0), MonthHigh(0), MonthLow(0), MonthClose(0));
messageLog("============");
문제점>
1. 주간,월간 데이터의 시고저종이 제대로 출력되지 않음
2. 2010년 01월 기준으로 일,주,월의 모든 시가는 222.90 이 되어야 함에도 그렇지 않음
3. 이전값 참조시 더욱 문제
ex> 시뮬레이션이 2010/01/04 기준이더라도 2009/12/30 의 일간시고저종은 참조가능
(DayOpen(1), DayHigh(1), DayLow(1), DayClose(1) 출력해보면 제대로 출력됨)
하지만 아래값들은 모두 참조 불가임
WeekOpen(1), WeekHigh(1), WeekLow(1), WeekClose(1)
MonthOpen(1), MonthHigh(1), MonthLow(1), MonthClose(1)
4. Data2를 일봉으로 해놓은 후에 출력해 봐도 문제 발생은 마찬가지임 (엉뚱한값 출력)
messageLog("%.2f, %.2f, %.2f, %.2f", Data2(WeekOpen(0)), Data2(WeekHigh(0)), Data2(WeekLow(0)), Data2(WeekClose(0)));
messageLog("%.2f, %.2f, %.2f, %.2f", Data2(MonthOpen(0)), Data2(MonthHigh(0)), Data2(MonthLow(0)), Data2(MonthClose(0)));
5. Week, Month등의 함수를 열어보니 계산식이 좀 이상한듯 싶습니다.
요청사항>
1. 시뮬레이션 이전값들도 DayOpen, DayHigh...등의 값들은 모두 참조 가능한것 처럼
Week, Month 들의 값들도 시뮬레이션 이전값들이 참조가능할 수 있도록 기능 요청
2. 특히 시뮬레이션이 아닌 실거래시 참조봉 최대값이 5000 이므로 분봉 시스템일 경우
주봉이나 월봉값들에 대한 참조가 불가능함
3. 기타 추가 요청 함수들
3.1 sDate 에 대한 세부기능 (아래와 같이 년,월,일로 추출)
- getYear(sDate) : 2010
- getMonth(sDate): 02
- getDay(sDate): 25
3.2 문자열, 숫자열 분리 함수
- java의 StringTokenizer 처럼 문자열을 분리할 수 있는 함수 요청
예를들면 2010/02/25 값이라면 슬래시(/) 단위로 구분할 수 있으면 좋겠음
3.3 오늘이 해당월의 처음인지 마지막인지 아닌지에 대한 함수
(이건 좀 구현이 불가능할 듯 싶지만...)
- ex> 20100104 는 해당월의 시작일, 해당주의 시작일
(휴일및 장개시여부에 따른 해당월의 시작과, 마지막)
isFirstMonth, isLastMonth, isFirstWeek, isLastWeek
(월은 1~30, 주는 월~금 이 아닌 장 개시여부에 따라 틀려져야함)
문제점에 대한 해결방법과 요청사항에 대한 가능여부를
알고 싶습니다. 정확한 답변 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2010-02-26 11:30:27
안녕하세요
예스스탁입니다.
기본으로 제공되는 함수에서 일간의 데이터는
dayopen/dayhigh/daylow/dayclose함수로 가져와 사용하실 수 있고
차트의 기간+99일의 데이터를 추가로 사용하실 수 있게 되어 있습니다.
차트는 20100104부터지만 그 이전 99일데이터를 사용하실 수 있습니다.
하지만 주간이나 월간의 값을 계산하는 함수는 기본으로 제공되는 함수는 없고
게시판에서 얻으신 사용자함수와 같이 따로 만들어서 사용하시거나
수식에서 계산하여 사용하셔야 하며 차트의 기간 이상의 값이 계산하게끔 작성될 수 없습니다.
Week와 month로 작성된 사용자함수가
주가 변경되고 월이 변경되는 부분을 감지하여
기초값을 설정하게 되는데 1월 4일부터 차트를 여실 경우
12월의 마지막 봉이 없으므로 해당일의 첫봉의 날짜가 주가변경되는지 월이 변경되는지 감지를 하지 못하므로(전봉과의 날짜비교로 주변경 월별경을 감지하여 기초값을 설정합니다.)
전체 차트에서 첫주나 첫월에는 0값을 리턴하거나 해당주나 월의 값을 반영하지 못합니다.두번째 주나 월부터 반영이 됩니다. 즉 차트 전체에서 첫월과 첫주는 버리고
식에서 사용하게끔 되어 있습니다.
사용자함수를 수정해서 올려드립니다.
요청하신 내용은 건의하도록 하겠습니다.
즐거운 하루되세요
> 루미 님이 쓴 글입니다.
> 제목 : MonthOpen..., WeeOpen... 등의 문제점
> 업무에 수고가 많으십니다.
게시물을 읽다가 Month, Week 데이터에 대한 시고저종 함수를 다운받고
적용해 보았습니다. (에스스탁에서 올린 파일임)
시뮬레이션 셋팅>
- 연결선물지수
- 1분봉 조회 (2010/01/04 ~ 2010/02/25)
- 지표식 추가 (ex: _주봉월봉로그)
- 지표식 내용
// 금일 시고저종, 금주 시고저종, 금월 시고저종 출력
messageLog("%.2f, %.2f, %.2f, %.2f", DayOpen, DayHigh, DayLow, DayClose);
messageLog("%.2f, %.2f, %.2f, %.2f", WeekOpen(0), WeekHigh(0), WeekLow(0), WeekClose(0));
messageLog("%.2f, %.2f, %.2f, %.2f", MonthOpen(0), MonthHigh(0), MonthLow(0), MonthClose(0));
messageLog("============");
문제점>
1. 주간,월간 데이터의 시고저종이 제대로 출력되지 않음
2. 2010년 01월 기준으로 일,주,월의 모든 시가는 222.90 이 되어야 함에도 그렇지 않음
3. 이전값 참조시 더욱 문제
ex> 시뮬레이션이 2010/01/04 기준이더라도 2009/12/30 의 일간시고저종은 참조가능
(DayOpen(1), DayHigh(1), DayLow(1), DayClose(1) 출력해보면 제대로 출력됨)
하지만 아래값들은 모두 참조 불가임
WeekOpen(1), WeekHigh(1), WeekLow(1), WeekClose(1)
MonthOpen(1), MonthHigh(1), MonthLow(1), MonthClose(1)
4. Data2를 일봉으로 해놓은 후에 출력해 봐도 문제 발생은 마찬가지임 (엉뚱한값 출력)
messageLog("%.2f, %.2f, %.2f, %.2f", Data2(WeekOpen(0)), Data2(WeekHigh(0)), Data2(WeekLow(0)), Data2(WeekClose(0)));
messageLog("%.2f, %.2f, %.2f, %.2f", Data2(MonthOpen(0)), Data2(MonthHigh(0)), Data2(MonthLow(0)), Data2(MonthClose(0)));
5. Week, Month등의 함수를 열어보니 계산식이 좀 이상한듯 싶습니다.
요청사항>
1. 시뮬레이션 이전값들도 DayOpen, DayHigh...등의 값들은 모두 참조 가능한것 처럼
Week, Month 들의 값들도 시뮬레이션 이전값들이 참조가능할 수 있도록 기능 요청
2. 특히 시뮬레이션이 아닌 실거래시 참조봉 최대값이 5000 이므로 분봉 시스템일 경우
주봉이나 월봉값들에 대한 참조가 불가능함
3. 기타 추가 요청 함수들
3.1 sDate 에 대한 세부기능 (아래와 같이 년,월,일로 추출)
- getYear(sDate) : 2010
- getMonth(sDate): 02
- getDay(sDate): 25
3.2 문자열, 숫자열 분리 함수
- java의 StringTokenizer 처럼 문자열을 분리할 수 있는 함수 요청
예를들면 2010/02/25 값이라면 슬래시(/) 단위로 구분할 수 있으면 좋겠음
3.3 오늘이 해당월의 처음인지 마지막인지 아닌지에 대한 함수
(이건 좀 구현이 불가능할 듯 싶지만...)
- ex> 20100104 는 해당월의 시작일, 해당주의 시작일
(휴일및 장개시여부에 따른 해당월의 시작과, 마지막)
isFirstMonth, isLastMonth, isFirstWeek, isLastWeek
(월은 1~30, 주는 월~금 이 아닌 장 개시여부에 따라 틀려져야함)
문제점에 대한 해결방법과 요청사항에 대한 가능여부를
알고 싶습니다. 정확한 답변 부탁드립니다.