반응형

현재 상태

분봉 데이터 쿼리 후 차트로 표현

 

키움 OpenAPI 예제

[ opt10080 : 주식분봉차트조회요청 ]
종목코드 = 전문 조회할 종목코드
SetInputValue("종목코드" ,  "입력값 1");

틱범위 = 1:1분, 3:3분, 5:5분, 10:10분, 15:15분, 30:30분, 45:45분, 60:60분
SetInputValue("틱범위" ,  "입력값 2");

수정주가구분 = 0 or 1, 수신데이터 1:유상증자, 2:무상증자, 4:배당락, 8:액면분할, 16:액면병합, 32:기업합병, 64:감자, 256:권리락
SetInputValue("수정주가구분" ,  "입력값 3");

CommRqData( "RQName" ,  "opt10080" ,  "0" ,  "화면번호"); 

 

결과

OPT10080 주식분봉차트조회요청을 하면 900개의 데이터를 한 번에 수신합니다.

실제 수신 되는 데이터는 현재가, 거래량, 체결시간, 시가, 고가, 저가 입니다.

 

(candlestickChart.Diagram as XYDiagram).AxisX.DateTimeScaleOptions.WorkTimeOnly = true;

처음부터 한 줄로 모두 입력해도 되지만, 복잡하므로 클래스 별로 나눠줍니다.

using DevExpress.XtraCharts;

...

Series series1 = new Series("Series 1", ViewType.CandleStick);
series1.DataSource = dataPoints;
series1.SetFinancialDataMembers("Argument", "Low", "High", "Open", "Close");
series1.ArgumentScaleType = ScaleType.DateTime;
candlestickChart.Series.Add(series1);
            
CandleStickSeriesView view = (CandleStickSeriesView)series1.View;
XYDiagram diagram = (XYDiagram)candlestickChart.Diagram;
DateTimeScaleOptions xAxisScaleOptions = diagram.AxisX.DateTimeScaleOptions;
WorkTimeRule weekdayRule = new WorkTimeRule();

 

수신 데이터는 24시간, 매일이 아닌 09:00~15:20 까지 이므로 기본 옵션에서는 캔들 사이 공백이 크게 나타납니다.

수신 데이터만 출력하려면

xAxisScaleOptions.WorkdaysOnly = true;
xAxisScaleOptions.WorkTimeOnly = true;

 

 

참고 문서

CandleStickSeriesViewModel Members | WinForms Controls | DevExpress Documentation

AxisXBaseModel Members | WinForms Controls | DevExpress Documentation

DateTimeScaleOptionsModel Members | WinForms Controls | DevExpress Documentation

WorkTimeRuleModel Members | WinForms Controls | DevExpress Documentation

 

반응형

관련글