728x90

Programing Story's 260

[C# WinForm] 키움 증권 Open API 조회횟수 제한

키움 증권 Open API를 이용할 시 사용제한이 되는 경우가 있습니다 조회 요청으로 CommRqData / SendCondition / CommKwRqData 3가지가 묶음으로 1초당 5회로 제한되며 주문 요청으로 SendOrder / SendOrderFO / SendOrderCredit 3가지가 묶음으로 1초당 5회로 제한됩니다 이를 회피하기 위해서는 Thread를 활용해 주문 요청을 하고 순차적으로 처리하는 방식으로 프로그래밍되어야 합니다 간단한 예제로 0.3초당 1건의 데이터와 1시간에 1천 건의 데이터를 처리하는 구문은 아래와 같습니다 using System.Collections; private static int m_iOrderCount; private static DateTime m_dtOr..

[C# WinForm] 키움 증권 OpenAPI 당일 순익률 가져오기

당일 수익률을 가져오기 위한 TR 코드는 opt10074를 이용하면 됩니다 해당 코드를 이용할 시 당일 매수금액 / 매도 금액 / 매도손익금 / 수수료+세금 값을 가져올 수 있습니다 아래와 같이 코드를 작성해서 OpenAPI를 통해 메시지를 전달합니다 m_axKHOpenAPI.SetInputValue("계좌번호", {계좌번호}); m_axKHOpenAPI.SetInputValue("시작일자", DateTime.Now.ToString("yyyyMMdd")); m_axKHOpenAPI.SetInputValue("종료일자", DateTime.Now.ToString("yyyyMMdd")); m_axKHOpenAPI.CommRqData("일자별실현손익요청", "opt10074", 0, "0200"); 이후 OnR..

[C# WinForm] 키움 증권 Open API 잔고 가져오기

현재 잔고를 가져오기 위해서는 TR 코드의 OPW00004 를 이용하면 됩니다 우선 SetInputValue 를 진행 후 TRData를 요청합니다 m_axKHOpenAPI.SetInputValue("계좌번호", "계좌번호"); m_axKHOpenAPI.SetInputValue("비밀번호", ""); m_axKHOpenAPI.SetInputValue("상장폐지조회구분", "0"); m_axKHOpenAPI.SetInputValue("비밀번호입력매체구분", "00"); m_axKHOpenAPI.CommRqData("계좌평가현황요청", "OPW00004", 0, "0200"); 이후 수신받은 ReceiveTrData 에서 처리 구문을 추가하면 됩니다 private void m_axKHOpenAPI1_OnRec..

[C# WinForm] 키움 증권 Open API 전 종목 실시간 데이터 등록하기

키움 증권 Open API를 이용하여 현재 키움 증권에 등록된 전 종목의 데이터를 실시간으로 가져오기 위해서는 GetCodeListByMarket 함수를 이용해 모든 종목을 조회하여 SetRealReg 데이터로 등록을 진행하면 됩니다 우선 로그인 이후 아래와 같이 작성해 주면 전 종목을 실시간 데이터로 등록이 가능합니다 public enum ENUM_REAL_주식체결 : int { 체결시간 = 20, 현재가 = 10, 전일대비 = 11, 등락율 = 12, 최우선_매도호가 = 27, 최우선_매수호가 = 28, 거래량 = 15, 누적거래량 = 13, 누적거래대금 = 14, 시가 = 16, 고가 = 17, 저가 = 18, 전일대비기호 = 25, 전일거래량대비 = 26, 거래대금증감 = 29, 전일거래량대비_비..

[공식] 주식 수익률 계산

수익률의 계산 공식은 다음과 같습니다 1-1. 매도 전 수익률 공식((현재가 - 평균 매수가) / 평균 매수가) * 100 = 수익률 1-2. 매도 전 수익 금액 공식(현재가 - 평균 매수가) * 매수 량 = 수익 금액 2-1.  매도 후 수익률 공식((평균 매도가 - 평균 매수가) / 평균 매수가) * 100 = 수익률 2-2. 매도 후 수익 금액 공식(평균 매도가 - 평균 매수가 ) * 매수 량 = 수익 금액 위의 계산 공식으로 작성하면 수익률 및 수익 금액을 계산할 수 있습니다  제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

정보/공식 2023.02.27

[C# WinForm] 키움 증권 Open API 사용법 (OCX 사용)

키움증권 계좌 개설 및 OpenAPI 사용 신청 등 다른 초기 준비사항은 제외하고 포스팅 하겠습니다 아래 페이지로 접속하셔서 키움 Open API+ 모듈을 다운로드합니다 https://www.kiwoom.com/h/customer/download/VOpenApiInfoView 키움증권 대한민국 주식시장 점유율 1위 www.kiwoom.com 모듈 다운로드 후 설치를 하면 C:\OpenAPI 위치에 API 파일들이 설치가 진행됩니다 이후 비주얼스튜디오 C# 코드를 열어서 솔루션 탐색기에서 참조 위치를 마우스 오른쪽 버튼으로 눌러 추가합니다 설치된 C:\OpenAPI 폴더 내 khopenapi.ocx 를 선택 후 확인을 눌러줍니다 이후 도구 상자에서 오른쪽 마우스 클릭하여 항목 선택을 눌러 줍니다 도구 상자..

[C# WinForm] 시간 차 구하기 (DateTime, TimeSpan)

두 시간의 차이를 구하고자 하면 TimeSpan 구조체를 쓰면 됩니다 TimeSpan tsStart = new TimeSpan(DateTime.Now.Ticks); ..... TimeSpan tsFinish = new TimeSpan(DateTime.Now.Ticks); TimeSpan tsGap = tsFinish.Subtract(tsStart); int iGapMilliSecond = (int)(tsGap.Ticks / 10000); 이렇게 작성하면 Start 와 Finish 의 차이를 알 수 있고 틱으로 계산을 하면 MilliSecond까지 구할 수 있습니다

[MFC] 응답 없음 회피하기

단일 스레드의 경우 루프문이 돌아갈 때 응답 없음이 발생합니다 이럴 때 중간중간 윈도우 메시지를 처리하는 구문만 넣으면 응답 없음 없이 프로그램을 개발할 수 있습니다 간단히 아래와 같이 작성하면 됩니다 void MyClass::Loop() { MSG msg; for(DWORD dwCnt = 0; dwCnt < MAXWORD; dwCnt++) { ..... while(PeekMessage(&msg, m_hWnd, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } } } m_hWnd의 경우 Dialog의 핸들을 가져오면 됩니다 제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀

Application/MFC 2023.02.22

[MFC] 심볼릭 링크 혹은 정션 링크 위치 가져오기

Symbolic Link 혹은 Junction Link의 위치를 가져오고 싶다면 GetFinalPathNameByHandle 함수를 사용 하면 됩니다 사용법으로는 아래와 같이 작성 하면 링크가 바라보는 위치를 가져올 수 있습니다 CString GetFinalPath(CString strSource) { WCHAR szPath[MAX_PATH]; HANDLE hFile = CreateFile(strSource, 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); if(hFile == INVALID_HANDLE_VALUE) { return _T(""); } wcscpy_s(szPath, strSource); if(GetFin..

Application/MFC 2023.02.21
728x90
반응형