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.종가);
}
}
}
}
주봉 가져오기
월봉 가져오기
년봉 가져오기
키움API 조건검색 사용 하위 항목