Exemplo n.º 1
0
        public void onReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            //주문 접수 , 체결시
            if (e.sGubun == "0")
            {
                alertListBox.Items.Add("계좌번호 : " + axKHOpenAPI1.GetChejanData(9201) + " | " + " 주문번호 : " + axKHOpenAPI1.GetChejanData(9203));
                alertListBox.Items.Add("주문상태 : " + axKHOpenAPI1.GetChejanData(913) + " | " + " 종목명 : " + axKHOpenAPI1.GetChejanData(302));
                alertListBox.Items.Add("매매구분" + axKHOpenAPI1.GetChejanData(906) + " | " + " 주문수량 : " + axKHOpenAPI1.GetChejanData(900));

                string orderTime   = axKHOpenAPI1.GetChejanData(908);
                string orderHour   = orderTime[0] + "" + orderTime[1];
                string orderMinute = orderTime[2] + "" + orderTime[3];
                string orderSecond = orderTime[4] + "" + orderTime[5];
                long   orderPrice  = long.Parse(axKHOpenAPI1.GetChejanData(901));

                alertListBox.Items.Add("주문/체결시간 : " + orderHour + "시 " + orderMinute + "분 " + orderSecond + "초");
                alertListBox.Items.Add("주문구분 : " + axKHOpenAPI1.GetChejanData(905));
                alertListBox.Items.Add("주문가격 : " + String.Format("{0:#,###}", orderPrice));
                alertListBox.Items.Add("----------------------------------------------------------");
            }
            else if (e.sGubun == "1")
            {
                string stockName    = axKHOpenAPI1.GetChejanData(302);
                long   currentPrice = long.Parse(axKHOpenAPI1.GetChejanData(10).Replace("-", ""));

                string profitRate       = axKHOpenAPI1.GetChejanData(8019);
                long   totalBuyingPrice = long.Parse(axKHOpenAPI1.GetChejanData(932));
                long   profitMoney      = long.Parse(axKHOpenAPI1.GetChejanData(950));

                balanceListBox.Items.Add("종목명 : " + stockName + " | 현재 종가 : " + String.Format("{0:#,###}", currentPrice));
                balanceListBox.Items.Add("매입주문금액 : " + String.Format("{0:#,###}", totalBuyingPrice) + " | 금일 실현손익 : " + String.Format("{0:#,###}", profitMoney));
                balanceListBox.Items.Add("금일 실현 손익율 : " + profitRate);
                balanceListBox.Items.Add("----------------------------------------------------------");
            }
        }
Exemplo n.º 2
0
 private void axKHOpenAPI_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
     if (e.sGubun == "0")
     {
         LogUtil.Instance.WriteLog("=========================================");
         LogUtil.Instance.WriteLog("주문/체결시간 : " + axKHOpenAPI1.GetChejanData(908));
         LogUtil.Instance.WriteLog("종목명 : " + axKHOpenAPI1.GetChejanData(302));
         LogUtil.Instance.WriteLog("주문수량 : " + axKHOpenAPI1.GetChejanData(900));
         LogUtil.Instance.WriteLog("체결수량 : " + axKHOpenAPI1.GetChejanData(930));
         LogUtil.Instance.WriteLog("체결가격 : " + axKHOpenAPI1.GetChejanData(910));
         LogUtil.Instance.WriteLog("=========================================");
     }
     else if (e.sGubun == "1")
     {
         LogUtil.Instance.WriteLog("=========================================");
         LogUtil.Instance.WriteLog("종목코드 : " + axKHOpenAPI1.GetChejanData(9001));
         LogUtil.Instance.WriteLog("보유수량 : " + axKHOpenAPI1.GetChejanData(930));
         LogUtil.Instance.WriteLog("예수금 : " + axKHOpenAPI1.GetChejanData(951));
         LogUtil.Instance.WriteLog("=========================================");
     }
     else if (e.sGubun == "3")
     {
         LogUtil.Instance.WriteLog("=========================================");
         LogUtil.Instance.WriteLog("구분 : 특이신호");
         LogUtil.Instance.WriteLog("=========================================");
     }
 }
Exemplo n.º 3
0
        public void onReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            if (e.sGubun == "0")//주문 접수 , 체결시
            {
                string orderNumber      = axKHOpenAPI1.GetChejanData(9203);
                string orderStatus      = axKHOpenAPI1.GetChejanData(913);
                string orderStockName   = axKHOpenAPI1.GetChejanData(302);
                string orderStockNumber = axKHOpenAPI1.GetChejanData(900);
                long   orderPrice       = long.Parse(axKHOpenAPI1.GetChejanData(901));
                string orderType        = axKHOpenAPI1.GetChejanData(905);
                //잔고데이터
                // string testJango = axKHOpenAPI1.GetChejanData(930);

                orderRecordListBox.Items.Add("주문번호 : " + orderNumber + " | " + "주문상태 : " + orderStatus);
                orderRecordListBox.Items.Add("종목명 : " + orderStockName + " | " + "주문수량 : " + orderStockNumber);
                orderRecordListBox.Items.Add("주문가격 : " + String.Format("{0:#,###}", orderPrice));
                orderRecordListBox.Items.Add("주문구분 : " + orderType);
                orderRecordListBox.Items.Add("----------------------------------------------------");
            }
            else if (e.sGubun == "1")//국내주식 잔고전달
            {
                string stockName    = axKHOpenAPI1.GetChejanData(302);
                long   currentPrice = long.Parse(axKHOpenAPI1.GetChejanData(10).Replace("-", ""));

                string profitRate       = axKHOpenAPI1.GetChejanData(8019);
                long   totalBuyingPrice = long.Parse(axKHOpenAPI1.GetChejanData(932));
                long   profitMoney      = long.Parse(axKHOpenAPI1.GetChejanData(950));

                todayProfitLabel.Text     = String.Format("{0:#,###}", profitMoney);
                todayProfitRateLabel.Text = profitRate;
            }
        }
Exemplo n.º 4
0
        public void runReceiveChejanData(AxKHOpenAPILib.AxKHOpenAPI axKHOpenAPI, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            ReceiveChejanData rt = getReceiveChejanData(e.sGubun.Trim(), axKHOpenAPI.GetChejanData(913).ToString().Trim());

            if (rt != null)
            {
                rt.ReceivedData(axKHOpenAPI, e);
            }
        }
Exemplo n.º 5
0
 private void axKHOpenApi_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
     if (e.sGubun == "0")
     {
         string 종목명  = axKHOpenAPI1.GetChejanData(302); //종목명
         string 체결시간 = axKHOpenAPI1.GetChejanData(908); //체결시간
         string 체결가  = axKHOpenAPI1.GetChejanData(910); //체결가
         int    체결량  = 0;
         if (axKHOpenAPI1.GetChejanData(911).Length > 0)
         {
             체결량 = Int32.Parse(axKHOpenAPI1.GetChejanData(911).Trim()); //체결량
         }
         if (체결량 > 0)
         {
             account.SendRequestAccountInfo();
             account.SendRequestProfitInfo();
         }
     }
 }
Exemplo n.º 6
0
        // 체결 주문 관련
        public void axKHOpenAPI_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent apiEvent)
        {
            try {
                if (apiEvent.sGubun == "0")
                {
                    string stockName = khOpenApi_.GetChejanData(302);

                    // 주문 수량
                    string tradingAmountStr = khOpenApi_.GetChejanData(900);
                    int    tradingAmount    = 0;
                    if (int.TryParse(tradingAmountStr, out tradingAmount))
                    {
                    }

                    // 체결 수량
                    string tradingCountStr = khOpenApi_.GetChejanData(911);
                    int    tradingCount    = 0;
                    if (int.TryParse(tradingCountStr, out tradingCount))
                    {
                    }

                    // 주식 코드
                    string codeStr = khOpenApi_.GetChejanData(9001);
                    int    code    = 0;
                    if (Int32.TryParse(codeStr, out code))
                    {
                    }
                }
                else if (apiEvent.sGubun == "1")
                {
                    Logger.getInstance.print(Log.StockAPI콜백, "구분 : 잔고통보");
                }
                else if (apiEvent.sGubun == "3")
                {
                    Logger.getInstance.print(Log.StockAPI콜백, "구분 : 특이신호");
                }
            }
            catch (AccessViolationException execption) {
                Logger.getInstance.print(Log.에러, "[채결 / 잔고 처리 콜백 에러] {0}\n{1}\n{2}", execption.Message, execption.StackTrace, execption.InnerException);
            }
            this.runNextOrderFlag();
        }
Exemplo n.º 7
0
        void OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            if (e.sGubun == "0") // 접수 or 체결
            {
                string 종목코드  = axKHOpenAPI1.GetChejanData(9001).Trim();
                string 주문번호  = axKHOpenAPI1.GetChejanData(9203).Trim();
                string 주무수량  = axKHOpenAPI1.GetChejanData(900).Trim();
                string 미체결수량 = axKHOpenAPI1.GetChejanData(902).Trim();
                string 체결량   = axKHOpenAPI1.GetChejanData(911).Trim();

                if (string.IsNullOrEmpty(체결량)) // 접수
                {
                }
                else // 체결
                {
                }
            }
            else if (e.sGubun == "1") // 잔고전달
            {
            }
        }
Exemplo n.º 8
0
        private void kiwoomApi_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            Console.WriteLine("[DEBUG] OnReceiveChejanData - " + (e.sGubun.Equals("0") ? "[체결]" : "[잔고]") + getChejanData(e.sFIdList));

            /*
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:8139380411 주문번호:0060353 종목코드:A021050 주문상태:접수 종목명:서원 주문수량:10 주문가격:4125 미체결수량:10 체결누계금액:0 원주문번호:0000000 주문구분:+매수 매매구분:보통 매도수구분:2 주문/체결시간:095744 체결번호: 체결가: 체결량: 현재가:+4130 (최우선)매도호가:+4130 (최우선)매수호가: 4125 단위체결가: 단위체결량: 거부사유:0 화면번호:2001
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:8139380411 주문번호:0060353 종목코드:A021050 주문상태:체결 종목명:서원 주문수량:10 주문가격:4125 미체결수량:0 체결누계금액:41250 원주문번호:0000000 주문구분:+매수 매매구분:보통 매도수구분:2 주문/체결시간:095747 체결번호:204322 체결가:4125 체결량:10 현재가: 4125 (최우선)매도호가: 4125 (최우선)매수호가:-4120 단위체결가:4125 단위체결량:10 거부사유:0 화면번호:2001
             * [DEBUG] OnReceiveChejanData - [잔고] 계좌번호:8139380411 종목코드:A021050 종목명:서원 주문수량: 현재가: 4125 (최우선)매도호가: 4125 (최우선)매수호가:-4120 화면번호: 신용구분:00 대출일:00000000 보유수량:25 매입단가:4150 ?祺탔蹈?103750 주문가능수량:25 당일순매수수량:20 매도/매수구분:2 당일총매도손일:0 예수금:0 기준가:4125 손익율:0.00 신용금액:0 신용이자:0 만기일:00000000 당일실현손익(유가):0 당일실현손익률(유가):0.00 당일실현손익(신용):0 당일실현손익률(신용):0.00 상한가:+5360 하한가:-2890
             */

            /*
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095994 종목코드:A220260 주문상태:접수 종목명:켐트로스                                 주문수량:1 주문가격:6930 미체결수량:1 체결누계금액:0 원주문번호:0000000 주문구분:+매수 매매구분:시간외?騈構?매도수구분:2 주문/체결시간:163511 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095995 종목코드:A220260 주문상태:접수 종목명:켐트로스                                 주문수량:1 주문가격:6940 미체결수량:1 체결누계금액:0 원주문번호:0095994 주문구분:+매수정정 매매구분:시??幷騈構?매도수구분:2 주문/체결시간:163518 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095995 종목코드:A220260 주문상태:확인 종목명:켐트로스                                 주문수량:1 주문가격:6940 미체결수량:1 체결누계금액:0 원주문번호:0095994 주문구분:+매수정정 매매구분:시??幷騈構?매도수구분:2 주문/체결시간:163518 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095994 종목코드:A220260 주문상태:접수 종목명:켐트로스                                 주문수량:1 주문가격:6930 미체결수량:0 체결누계금액:0 원주문번호:0000000 주문구분:+매수 매매구분:시간외?騈構?매도수구분:2 주문/체결시간:163511 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095997 종목코드:A220260 주문상태:접수 종목명:켐트로스                                 주문수량:1 주문가격:0 미체결수량:1 체결누계금액:0 원주문번호:0095995 주문구분: 매수취소 매매구분:시간외단일가 매도수구분:2 주문/체결시간:163524 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095997 종목코드:A220260 주문상태:확인 종목명:켐트로스                                 주문수량:1 주문가격:0 미체결수량:0 체결누계금액:0 원주문번호:0095995 주문구분: 매수취소 매매구분:시간외단일가 매도수구분:2 주문/체결시간:163524 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:5015899111 주문번호:0095995 종목코드:A220260 주문상태:확인 종목명:켐트로스                                 주문수량:1 주문가격:6940 미체결수량:0 체결누계금액:0 원주문번호:0095994 주문구분:+매수정정 매매구분:시??幷騈構?매도수구분:2 주문/체결시간:163518 체결번호: 체결가: 체결량: 현재가:-6950 (최우선)매도호가:-6960 (최우선)매수호가:-6950 단위체결가: 단위체결량: 거부사유:0 화면번호:
             */

            // 선택한 계좌일 경우에만 추가
            if (!kiwoomApi.GetChejanData(9201).Trim().Equals(getSeletedAccountNo()))
            {
                return;
            }

            if (e.sGubun.Equals("0"))
            {
                // 체결인 경우
                updateOrders();
            }
            else
            {
                // 잔고인 경우에 실시간 잔고에 수량 등 반영
                // 종목코드, 보유수량, 매입단가
                updateHoldings();
                //refreshTrAccountBalance();
            }
        }
Exemplo n.º 9
0
 private void axKHOpenAPI_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
     if (e.sGubun == "0")
     {
         Logger(Log.실시간, "구분 : 주문체결통보");
         Logger(Log.실시간, "주문/체결시간 : " + axKHOpenAPI.GetChejanData(908));
         Logger(Log.실시간, "종목명 : " + axKHOpenAPI.GetChejanData(302));
         Logger(Log.실시간, "주문수량 : " + axKHOpenAPI.GetChejanData(900));
         Logger(Log.실시간, "주문가격 : " + axKHOpenAPI.GetChejanData(901));
         Logger(Log.실시간, "체결수량 : " + axKHOpenAPI.GetChejanData(911));
         Logger(Log.실시간, "체결가격 : " + axKHOpenAPI.GetChejanData(910));
         Logger(Log.실시간, "=======================================");
     }
     else if (e.sGubun == "1")
     {
         Logger(Log.실시간, "구분 : 잔고통보");
     }
     else if (e.sGubun == "3")
     {
         Logger(Log.실시간, "구분 : 특이신호");
     }
 }
Exemplo n.º 10
0
        private void kiwoomApi_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            Console.WriteLine("[DEBUG] OnReceiveChejanData - " + (e.sGubun.Equals("0") ? "[체결]" : "[잔고]") + getChejanData(e.sFIdList));

            /*
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:8139380411 주문번호:0060353 종목코드:A021050 주문상태:접수 종목명:서원 주문수량:10 주문가격:4125 미체결수량:10 체결누계금액:0 원주문번호:0000000 주문구분:+매수 매매구분:보통 매도수구분:2 주문/체결시간:095744 체결번호: 체결가: 체결량: 현재가:+4130 (최우선)매도호가:+4130 (최우선)매수호가: 4125 단위체결가: 단위체결량: 거부사유:0 화면번호:2001
             * [DEBUG] OnReceiveChejanData - [체결] 계좌번호:8139380411 주문번호:0060353 종목코드:A021050 주문상태:체결 종목명:서원 주문수량:10 주문가격:4125 미체결수량:0 체결누계금액:41250 원주문번호:0000000 주문구분:+매수 매매구분:보통 매도수구분:2 주문/체결시간:095747 체결번호:204322 체결가:4125 체결량:10 현재가: 4125 (최우선)매도호가: 4125 (최우선)매수호가:-4120 단위체결가:4125 단위체결량:10 거부사유:0 화면번호:2001
             * [DEBUG] OnReceiveChejanData - [잔고] 계좌번호:8139380411 종목코드:A021050 종목명:서원 주문수량: 현재가: 4125 (최우선)매도호가: 4125 (최우선)매수호가:-4120 화면번호: 신용구분:00 대출일:00000000 보유수량:25 매입단가:4150 ?祺탔蹈?103750 주문가능수량:25 당일순매수수량:20 매도/매수구분:2 당일총매도손일:0 예수금:0 기준가:4125 손익율:0.00 신용금액:0 신용이자:0 만기일:00000000 당일실현손익(유가):0 당일실현손익률(유가):0.00 당일실현손익(신용):0 당일실현손익률(신용):0.00 상한가:+5360 하한가:-2890
             */

            if (e.sGubun.Equals("0"))
            {
                // 체결인 경우
                updateOrders();
            }
            else
            {
                // 잔고인 경우에 실시간 잔고에 수량 등 반영
                // 종목코드, 보유수량, 매입단가
                updateHoldings();
                refreshTrAccountBalance();
            }
        }
Exemplo n.º 11
0
 private void axKHOpenApi_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e) //체결되면 반환
 {
     if (e.sGubun == "0")
     {
         //kakaoMessage kakao = new kakaoMessage();
         string 종목명  = axKHOpenAPI1.GetChejanData(302); //종목명
         string 체결시간 = axKHOpenAPI1.GetChejanData(908); //체결시간
         string 체결가  = axKHOpenAPI1.GetChejanData(910); //체결가
         int    체결량  = 0;
         if (axKHOpenAPI1.GetChejanData(911).Length > 0)
         {
             체결량 = Int32.Parse(axKHOpenAPI1.GetChejanData(911).Trim()); //체결량
         }
         //kakao.SendKatalk("강헌", "종목명 : " + 종목명 + " 체결시간 : " + 체결시간 + " 체결가 : " + 체결가);
         if (체결량 > 0)
         {
             string      soundloc = "체결수신1.wav";
             SoundPlayer sound    = new SoundPlayer(soundloc);
             sound.Play();
             realTimeAccountGridView.Rows.Clear();
             Account_yield();
         }
     }
 }
Exemplo n.º 12
0
 // ==================================================<<매수 매도주문 체결 정보(OnReceiveChejanData) 수신부>>==============================//        
 // 체결 잔고 수신 이벤트 함수
 // 매수 매도주문 체결 정보 출력부        
 // =======================================================================================================================================//
 private void axKHOpenAPI_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
     logger.Write(LOGTYPE.E, string.Format("[{0}][{1}] {2}", e.sGubun, e.sFIdList, e.nItemCnt));
 }
Exemplo n.º 13
0
 private void axKHOpenAPI1_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
 }
Exemplo n.º 14
0
        private void axKHOpenAPI1_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            try
            {
                log.Info("axKHOpenAPI1_OnReceiveChejanData start");

                if (e.sGubun == "0")//주문 접수 , 체결시
                {
                    //alertListBox.Items.Add("계좌번호 : " + axKHOpenAPI1.GetChejanData(9201) + " | " + " 주문번호 : " + axKHOpenAPI1.GetChejanData(9203));
                    //alertListBox.Items.Add("주문상태 : " + axKHOpenAPI1.GetChejanData(913) + " | " + " 종목명 : " + axKHOpenAPI1.GetChejanData(302));
                    //alertListBox.Items.Add("종목코드 : " + axKHOpenAPI1.GetChejanData(9001) + " | " + " 원주문번호 : " + axKHOpenAPI1.GetChejanData(904));
                    //alertListBox.Items.Add("매매구분" + axKHOpenAPI1.GetChejanData(906) + " | " + " 주문수량 : " + axKHOpenAPI1.GetChejanData(900));

                    string orderTime   = axKHOpenAPI1.GetChejanData(908);
                    string orderHour   = orderTime[0] + "" + orderTime[1];
                    string orderMinute = orderTime[2] + "" + orderTime[3];
                    string orderSecond = orderTime[4] + "" + orderTime[5];
                    long   orderPrice  = long.Parse(axKHOpenAPI1.GetChejanData(901));

                    //alertListBox.Items.Add("주문/체결시간 : " + orderHour + "시 " + orderMinute + "분 " + orderSecond + "초");
                    //alertListBox.Items.Add("주문구분 : " + axKHOpenAPI1.GetChejanData(905));
                    //alertListBox.Items.Add("주문가격 : " + String.Format("{0:#,###}", orderPrice));
                    //alertListBox.Items.Add("----------------------------------------------------------");

                    log.Info("계좌번호 : " + axKHOpenAPI1.GetChejanData(9201) + " | " + " 주문번호 : " + axKHOpenAPI1.GetChejanData(9203));
                    log.Info("주문상태 : " + axKHOpenAPI1.GetChejanData(913) + " | " + " 종목명 : " + axKHOpenAPI1.GetChejanData(302));
                    log.Info("종목코드 : " + axKHOpenAPI1.GetChejanData(9001) + " | " + " 원주문번호 : " + axKHOpenAPI1.GetChejanData(904));
                    log.Info("매매구분" + axKHOpenAPI1.GetChejanData(906) + " | " + " 주문수량 : " + axKHOpenAPI1.GetChejanData(900));
                    log.Info("주문/체결시간 : " + orderHour + "시 " + orderMinute + "분 " + orderSecond + "초");
                    log.Info("주문구분 : " + axKHOpenAPI1.GetChejanData(905));
                    log.Info("주문가격 : " + String.Format("{0:#,###}", orderPrice));
                    log.Info("체결수량 : " + axKHOpenAPI1.GetChejanData(911) + " | " + " 체결가 : " + axKHOpenAPI1.GetChejanData(910));
                    log.Info("----------------------------------------------------------");

                    if ("체결".Equals(axKHOpenAPI1.GetChejanData(913).Trim()))
                    {
                        string stockCode = axKHOpenAPI1.GetChejanData(9001).Trim();
                        string 주문구분      = axKHOpenAPI1.GetChejanData(905).Trim();
                        string 주문번호      = axKHOpenAPI1.GetChejanData(9203).Trim();
                        string 체결수량      = axKHOpenAPI1.GetChejanData(911).Trim();
                        string 체결가       = axKHOpenAPI1.GetChejanData(910).Trim();

                        if (stockCode.StartsWith("A"))
                        {
                            stockCode = stockCode.Substring(1);
                        }

                        if (주문구분.IndexOf("매수") >= 0)
                        {
                            주문구분 = "매수";
                        }
                        else if (주문구분.IndexOf("매도정정") >= 0)
                        {
                            주문구분 = "매도정정";
                        }
                        else if (주문구분.IndexOf("매도") >= 0)
                        {
                            주문구분 = "매도";
                        }
                        else
                        {
                            주문구분 = string.Empty;
                        }

                        log.Info("체결인지함. 주문구분:" + 주문구분 + " stockCode:" + stockCode);

                        if (!string.IsNullOrWhiteSpace(주문구분))
                        {
                            subBiz.체결완료처리(inqDate, stockCode, 주문구분, 주문번호, 체결수량, 체결가);
                        }
                    }
                    else
                    {
                        log.Info("체결아님");
                    }

                    //string stockCode = axKHOpenAPI1.GetChejanData(9001).Trim();
                    //if (stockCode.StartsWith("A"))
                    //    stockCode = stockCode.Substring(1);

                    //string orderType = axKHOpenAPI1.GetChejanData(905).Trim().Replace("+","").Replace("-","");
                    //string qty = axKHOpenAPI1.GetChejanData(900).Trim();
                    //string price = axKHOpenAPI1.GetChejanData(901).Trim();
                    //string orderNo = axKHOpenAPI1.GetChejanData(9203).Trim();

                    //if (axKHOpenAPI1.GetChejanData(913).Trim().Equals("접수"))
                    //{
                    //    log.Info("주문번호업데이트 : " + inqDate + " 종목:" + stockCode + " 수량:" + qty + " 가격:" + price );
                    //    dacStock.주문번호업데이트(inqDate, stockCode, orderType, orderNo, qty, price );
                    //}
                }
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
                MessageBox.Show(ex.Message);
            }
            finally
            {
                log.Info("axKHOpenAPI1_OnReceiveChejanData end");
            }
        }
Exemplo n.º 15
0
        // Open API 체결 잔고 수신
        private void axKHOpenAPI_OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
        {
            Logger(Log.체결잔고, "====체결잔고 수신 시작====");

            if (e.sGubun == "0")
            {
                string acctNo  = axKHOpenAPI.GetChejanData(9201).Trim();           // 계좌번호
                string orderNo = axKHOpenAPI.GetChejanData(9203).Trim();           // 주문번호
                string trType  = axKHOpenAPI.GetChejanData(907).Trim();            // 매수도구분(1":매도, 2":매수)

                string item   = axKHOpenAPI.GetChejanData(9001).Trim();            // 종목코드
                string itemNm = axKHOpenAPI.GetChejanData(302).Trim();             // 종목명

                string buyPrice = axKHOpenAPI.GetChejanData(910).Trim();           // 체결가
                string buyAmt   = axKHOpenAPI.GetChejanData(911).Trim();           // 체결량

                int orderAmt   = int.Parse(axKHOpenAPI.GetChejanData(900).Trim()); // 주문수량
                int remainAmt  = int.Parse(axKHOpenAPI.GetChejanData(902).Trim()); // 미체결수량
                int totalPrice = int.Parse(axKHOpenAPI.GetChejanData(903).Trim()); // 체결누계금액

                int todayFee = int.Parse(axKHOpenAPI.GetChejanData(938).Trim());   // 당일매매 수수료
                int todayTax = int.Parse(axKHOpenAPI.GetChejanData(939).Trim());   // 당일매매 세금

                int    avgAmt   = orderAmt - remainAmt;
                double avgPrice = 0;
                if (avgAmt != 0)
                {
                    avgPrice = totalPrice / avgAmt;
                }
                avgPrice = Math.Floor(avgPrice);

                int type = Convert.ToInt32(trType);

                Logger(Log.체결잔고, "구분 : {6} 주문체결통보, 주문체결시간 : {0}, 종목명 : {1}, 주문수량 : {2}, 주문가격 : {3}, 체결수량 : {4}, 체결가격 : {5}"
                       , axKHOpenAPI.GetChejanData(908), itemNm, orderAmt, axKHOpenAPI.GetChejanData(901), buyAmt, buyPrice, (type == 1?"매도":"매수"));

                string today = DateTime.Now.ToString("yyyyMMdd");

                // 체결가격이 없으면 업데이트하지 않음
                if (totalPrice > 0)
                {
                    // 매도 주문체결 잔고 확인시
                    if (type == 1)
                    {
                        Logger(Log.매도, "[매도 체잔 수신] 종목 : " + item + ", 체결누계금액 : " + totalPrice + ", 주문수량 : " + orderAmt + ", 미체결수량 : " + remainAmt + ", 평단가 : " + avgPrice);
                        _sell.ReqSell_Callback(orderNo, avgPrice, orderAmt, remainAmt, totalPrice, todayFee, todayTax, today, item.Substring(1)); // 종목코드에 영문자가 붙어서 나옴...
                    }
                    // 매수 주문체결 잔고 확인시
                    else if (type == 2)
                    {
                        Logger(Log.매수, "[매수 체잔 수신] 종목 : " + item + ", 체결누계금액 : " + totalPrice + ", 주문수량 : " + orderAmt + ", 미체결수량 : " + remainAmt + ", 평단가 : " + avgPrice);
                        _buy.ReqBuy_Callback(orderNo, avgPrice, orderAmt, remainAmt, totalPrice, todayFee, today, item.Substring(1)); // 종목코드에 영문자가 붙어서 나옴...

                        _buyManual.RetAdditionalBuyCnt(today, item.Substring(1), totalPrice, todayFee);
                    }
                }
            }
            else if (e.sGubun == "1")
            {
                Logger(Log.체결잔고, "구분 : 잔고통보");
            }
            else if (e.sGubun == "3")
            {
                Logger(Log.체결잔고, "구분 : 특이신호");
            }

            Logger(Log.체결잔고, "====체결잔고 수신 끝====");
        }
Exemplo n.º 16
0
 private void OnReceiveChejanData(object sender, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e)
 {
     ContractionEventManager.gotContracted(e.sGubun, e.sFIdList);
 }
Exemplo n.º 17
0
 public abstract void ReceivedData(AxKHOpenAPILib.AxKHOpenAPI axKHOpenAPI, AxKHOpenAPILib._DKHOpenAPIEvents_OnReceiveChejanDataEvent e);