public void RequestItem(string ItemCode, ReceiveAfter delFunc, CHART_TYPE typeChart = CHART_TYPE.TICK_30) { if (!string.IsNullOrEmpty(ItemCode)) { afterEventFunction = delFunc; chartItemCodeTextBox.Text = ItemCode; ItemName.Text = axKHOpenAPI1.GetMasterCodeName(ItemCode); switch (typeChart) { case CHART_TYPE.TICK_30: Task requestItemInfoTask = new Task(() => { axKHOpenAPI1.SetInputValue("종목코드", ItemCode); axKHOpenAPI1.SetInputValue("틱범위", "30"); axKHOpenAPI1.SetInputValue("수정주가구분", "0"); int result = axKHOpenAPI1.CommRqData(ConstName.RECEIVE_TR_DATA_TICK_CHART + ":" + screenNumber, "opt10079", 0, "1080"); if (result != ErrorCode.정상처리) { Core.CoreEngine.GetInstance().SendLogErrorMessage("ERROR : " + result.ToString()); } }); Core.CoreEngine.GetInstance().requestTrDataManager.RequestTrData(requestItemInfoTask); break; case CHART_TYPE.MINUTE_5: Task requestItemInfoTaskMinute = new Task(() => { axKHOpenAPI1.SetInputValue("종목코드", ItemCode); axKHOpenAPI1.SetInputValue("틱범위", "5"); axKHOpenAPI1.SetInputValue("수정주가구분", "0"); int result = axKHOpenAPI1.CommRqData(ConstName.RECEIVE_TR_DATA_MINUTE_CHART + ":" + screenNumber, "opt10080", 0, "1080"); if (result != ErrorCode.정상처리) { Core.CoreEngine.GetInstance().SendLogErrorMessage("ERROR : " + result.ToString()); } }); Core.CoreEngine.GetInstance().requestTrDataManager.RequestTrData(requestItemInfoTaskMinute); break; default: break; } } }
private Dictionary <String, String> getCodeDictionaryByMarketNum(String marketNum) { DataUtil util = new DataUtil(); String codeData = kiWoomApi.GetCodeListByMarket(marketNum); List <String> codeList = util.parseCodeData(codeData); Dictionary <String, String> codeDic = new Dictionary <String, String>(); codeList.RemoveAt(codeList.Count - 1); foreach (String code in codeList) { String name = kiWoomApi.GetMasterCodeName(code); if (marketNum.Equals("0") && code[0] == '5') { continue; } codeDic.Add(code, name); } return(codeDic); }