목차
11. 분봉,일봉,주봉, 월봉,년봉 가져오기
‘대량 DATA(차트 조회) 수신’ 기능을 이용하여 각 차트에 대한 정보를 가져올 수 있습니다.분봉 가져오기
요청const string MainRequestName = "분봉정보"; API.OnReceiveTrData += api_OnReceiveTrData; // 이벤트 지정 private void RequestLastDayInfo(string _code) { API.SetInputValue("종목코드", _code); API.SetInputValue("틱범위", "1"); API.SetInputValue("기준일자", DateTime.Now.ToString("yyyyMMdd")); API.SetInputValue("수정주가구분", "1"); int nRet = API.CommRqData(MainRequestName, "OPT10080", 0, "2005"); if (nRet != 0) Trace.WriteLine("분봉 정보 정보요청 실패"); }
일봉가져오기
요청const string MainRequestName = "일봉정보"; API.OnReceiveTrData += api_OnReceiveTrData; // 이벤트 지정 private void RequestLastDayInfo(string _code) { API.SetInputValue("종목코드", _code); API.SetInputValue("기준일자", DateTime.Now.AddDays(-2).ToString("yyyyMMdd")); API.SetInputValue("수정주가구분", "1"); int nRet = API.CommRqData(MainRequestName, "OPT10081", 0, "2005"); if (nRet != 0) Trace.WriteLine("단타 전일 일봉 정보 정보요청 실패"); }이벤트 수신
void api_OnReceiveTrData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveTrDataEvent e) { if (e.sRQName == MainRequestName) { object arg = API.GetCommDataEx(e.sTrCode, MainRequestName); int nIdx = 0; // 기본적으로 900개 까지 받을 수 있으며 // 상장한지 900 거래일 이하라면 존재하는 일봉만 받게 됩니다. int DayCount = Math.Min(((Array)arg).GetLength(0), 100); // 100개 이하의 일봉데이터 받기 for (nIdx = 0; nIdx < DayCount; nIdx++) { BarEntityObject day = new BarEntityObject() { 종가 = Convert.ToInt32(((Array)arg).GetValue(nIdx, 1).ToString()), // 거래량 (2) // 거래대금 (3) 일자 = (((Array)arg).GetValue(nIdx, 4).ToString()), 시가 = Convert.ToInt32(((Array)arg).GetValue(nIdx, 5).ToString()), 고가 = Convert.ToInt32(((Array)arg).GetValue(nIdx, 6).ToString()), 저가 = Convert.ToInt32(((Array)arg).GetValue(nIdx, 7).ToString()), }; Trace.WriteLine("일자:" + day.일자 + ",종가:" + day.종가); } } } }