Пример #1
0
        private void OST_OnReceivedAutoTradingOrderConclusion(object sender, OnReceivedATOrderEventArgs e)
        {
            // 오더 체결
            ATOrder order = e.AtOrder;

            SetDataGrid_체결(order);
        }
Пример #2
0
        private void OST_OnReceivedAutoTradingOrderBalance(object sender, OnReceivedATOrderEventArgs e)
        {
            // 오더 잔고
            ATOrder order = e.AtOrder;

            SetDataGrid_잔고(order);
        }
Пример #3
0
        private int updateDataGridRow(ATOrder order, DataGridView dg)
        {
            int result = 0;

            foreach (DataGridViewRow row in dg.Rows)
            {
                if (dg.Equals(dg매매진행현황) && Common.equalClauseInDataGridRow("잔고_종목코드", order.종목코드, row))
                {
                    if (order.보유수량 > 0)
                    {
                        row.Cells["잔고_보유수량"].Value   = order.보유수량;
                        row.Cells["잔고_주문가능수량"].Value = order.주문가능수량;
                        row.Cells["잔고_매입단가"].Value   = order.매입단가;
                        row.Cells["잔고_총매입가"].Value   = order.총매입가;
                        row.Cells["잔고_손익률"].Value    = order.손익률;
                    }
                    else
                    {
                        dg.Rows.Remove(row);
                    }
                    result++;
                }
            }
            return(result);
        }
Пример #4
0
        private void OST_OnReceivedAutoTradingOrderAccept(object sender, OnReceivedATOrderEventArgs e)
        {
            // 오더 접수
            ATOrder order = e.AtOrder;

            // order.주문구분
            AddDataGrid_주문(order);
            AddDataGrid_미체결(order);
        }
Пример #5
0
        public void AddDataGrid_미체결(ATOrder order)
        {
            int idx = dg미체결.Rows.Add();

            dg미체결["미체결_주문번호", idx].Value = order.주문번호;
            dg미체결["미체결_종목코드", idx].Value = order.종목코드;
            dg미체결["미체결_종목명", idx].Value  = order.종목명;
            dg미체결["미체결_주문수량", idx].Value = order.주문수량;
            dg미체결["미체결_미체결량", idx].Value = order.미체결수량;
        }
Пример #6
0
        public void SetDataGrid_매매진행현황(ATOrder order)
        {
            int cnt = updateDataGridRow(order, dg매매진행현황);

            if (cnt == 0)
            {
                int rowIndex = dg매매진행현황.Rows.Add();
                dg매매진행현황["매매진행_진행상황", rowIndex].Value = "매도감시";
                dg매매진행현황["매매진행_종목코드", rowIndex].Value = order.종목코드;
                dg매매진행현황["매매진행_종목명", rowIndex].Value  = order.종목명;
                dg매매진행현황["매매진행_매수가", rowIndex].Value  = order.매수가;
            }
        }
Пример #7
0
 public void updateMstForOrder(ATOrder order)
 {
     using (OracleConnection connection = new OracleConnection(conn_str))
     {
         connection.Open();
         OracleCommand cmd = new OracleCommand();
         cmd.Connection = connection;
         string q = $@"update MF_AT_MST SET ACCT='{order.계좌}', CC_PRC={order.주문가격}, CC_QTY={order.주문수량}, CC_STATUS=1, CC_DT=SYSDATE
                         WHERE YMD={order.일자} AND ITEM_CD={order.종목코드} AND MM_SEQ={order.일련번호} ";
         cmd.CommandText = q;
         cmd.CommandType = CommandType.Text;
         cmd.ExecuteNonQuery();
     };
 }
Пример #8
0
        public void AddDataGrid_주문(ATOrder order)
        {
            int rowIndex = dg주문.Rows.Add();

            dg주문["주문_주문번호", rowIndex].Value = order.주문번호;
            dg주문["주문_계좌번호", rowIndex].Value = order.계좌번호;
            dg주문["주문_시간", rowIndex].Value   = order.주문시간;
            dg주문["주문_종목코드", rowIndex].Value = order.종목코드;
            dg주문["주문_종목명", rowIndex].Value  = order.종목명;
            dg주문["주문_주문량", rowIndex].Value  = order.주문수량;
            dg주문["주문_주문가", rowIndex].Value  = order.주문가격;
            dg주문["주문_매매구분", rowIndex].Value = order.주문구분;
            dg주문["주문_가격구분", rowIndex].Value = order.가격구분;
        }
Пример #9
0
        public void SetDataGrid_체결(ATOrder order)
        {
            int cnt = updateDataGridRow(order, dg미체결);

            if (cnt == 0)
            {
                int rowIndex = dg체결.Rows.Add();
                dg체결["체결_주문번호", rowIndex].Value  = order.주문번호;
                dg체결["체결_체결시간", rowIndex].Value  = order.체결시간;
                dg체결["체결_종목코드", rowIndex].Value  = order.종목코드;
                dg체결["체결_종목명", rowIndex].Value   = order.종목명;
                dg체결["체결_주문량", rowIndex].Value   = order.주문수량;
                dg체결["체결_단위체결량", rowIndex].Value = order.단위체결량;
                dg체결["체결_누적체결량", rowIndex].Value = order.누적체결량;
                dg체결["체결_체결가", rowIndex].Value   = order.체결가;
                dg체결["체결_매매구분", rowIndex].Value  = order.매매구분;
            }
        }
Пример #10
0
        public void SetDataGrid_잔고(ATOrder order)
        {
            int cnt = updateDataGridRow(order, dg잔고);

            if (cnt == 0)
            {
                int rowIndex = dg잔고.Rows.Add();
                dg잔고["잔고_계좌번호", rowIndex].Value   = order.계좌번호;
                dg잔고["잔고_종목코드", rowIndex].Value   = order.종목코드;
                dg잔고["잔고_종목명", rowIndex].Value    = order.종목명;
                dg잔고["잔고_보유수량", rowIndex].Value   = order.보유수량;
                dg잔고["잔고_주문가능수량", rowIndex].Value = order.주문가능수량;
                dg잔고["잔고_매입단가", rowIndex].Value   = order.매입단가;
                dg잔고["잔고_총매입가", rowIndex].Value   = order.총매입가;
                dg잔고["잔고_손익률", rowIndex].Value    = order.손익률;
                dg잔고["잔고_매매구분", rowIndex].Value   = order.매매구분;
            }
        }
Пример #11
0
        private void removeDataGridRow(GridType _gridType, ATOrder order)
        {
            DataGridView dg = null;

            if (_gridType == GridType.미체결)
            {
                dg = dg미체결;
                if (order.미체결수량 == 0)
                {
                    foreach (DataGridViewRow row in dg.Rows)
                    {
                        if (row.Cells["미체결_주문번호"] != null && row.Cells["미체결_주문번호"].Value.ToString().Equals(order.주문번호))
                        {
                            dg.Rows.Remove(row);
                        }
                        break;
                    }
                }
            }
        }
Пример #12
0
        public List <ATOrder> getMstForOrder(string ymd, string itemCode)
        {
            List <ATOrder> orderList = new List <ATOrder>();

            using (OracleConnection connection = new OracleConnection(conn_str))
            {
                connection.Open();
                using (OracleCommand cmd = new OracleCommand())
                {
                    string q = $@"
                            SELECT A.YMD, A.ITEM_CD, B.ITEM_NM, A.MM_SEQ, A.MM_TYPE, A.MM_PRC, A.MM_QTY, A.YMDHM 
                            FROM MF_AT_MST A , MF_AT_ITEM B
                            WHERE A.YMD=B.YMD AND A.ITEM_CD=B.ITEM_CD AND A.YMD='{ymd}' AND A.ITEM_CD='{itemCode}' 
                            AND A.YMDHM > TO_CHAR(SYSDATE-3/24/60,'YYYYMMDDHH24MISS')
                                ";
                    cmd.Connection  = connection;
                    cmd.CommandText = q;
                    using (OracleDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            ATOrder order = new ATOrder();
                            order.일자   = reader["YMD"].ToString();
                            order.종목코드 = reader["ITEM_CD"].ToString();
                            order.종목명  = reader["ITEM_NM"].ToString();
                            order.일련번호 = int.Parse(reader["MM_SEQ"].ToString());
                            order.매매구분 = reader["MM_TYPE"].ToString();
                            order.주문가격 = int.Parse(reader["MM_PRC"].ToString());
                            order.주문수량 = int.Parse(reader["MM_QTY"].ToString());
                            order.시간   = reader["YMDHM"].ToString();
                            orderList.Add(order);
                        }
                    }
                }
            }
            return(orderList);
        }
Пример #13
0
 public OnReceivedATOrderEventArgs(ATOrder atOrder)
 {
     this.AtOrder = atOrder;
     this.Message = "자동매매 오더를 가져왔습니다.";
 }