void _backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            // Do something
            Object argument = e.Argument;
            // BackgroundWorker에서 수행할 일을 정의합니다.
            IEnumerable <Stock> stockList = StockManager.getStockList().Cast <Stock>();
            int cnt = 1;

            foreach (Stock st in stockList)
            {
                setStatus("조회중" + "[" + cnt++ + "]", st.name);
                RequestCountUtil.add();

                setPastPrice(st.code);
                StockManager.evaluateBuy(st.code);

                if (st.buyPoint > 7)
                {
                    addMsg("name", st.name);
                    addMsg("buyPoint", st.buyPoint);
                    StockPrice sp = st.getLastPrice();
                    addMsg("rate5", sp.rate5);
                }
            }
        }
        private void btnStockCode_Click(object sender, RoutedEventArgs e)
        {
            short cnt = m_CpStockCode.GetCount();

            addMsg("StockCodeCount", cnt.ToString());

            //for (short i = 0; i < cnt; i++) {
            for (short i = (short)(cnt - 1); i >= 0; i--)
            {
                Object code     = m_CpStockCode.GetData(0, i);
                Object name     = m_CpStockCode.GetData(1, i);
                Object fullCode = m_CpStockCode.GetData(2, i);
                //addMsg("code", code);
                //addMsg("name", name);
                //addMsg("fullCode", fullCode);


                Regex regex = new Regex(@"KOSPI|KODEX|SMART|ARIRANG|KBSTAR|TIGER|KINDEX|KOSEF|대신B\d{3}");
                if (regex.IsMatch(name.ToString()))
                {
                    continue;
                }

                StockManager.addStock(code, name, fullCode);
            }

            cbStockCode.ItemsSource   = StockManager.getStockList();
            cbStockCode.SelectedIndex = 0;
        }
        private void setPastPrice(object code)
        {
            m_StockChart.SetInputValue(0, code); // 종목코드
            m_StockChart.SetInputValue(1, '2');  // 개수로 요청
            m_StockChart.SetInputValue(4, 120);  // 요청개수

            // 0: 날짜
            // 1: 시가
            // 5: 종가
            // 8: 거래량
            object[] types = { 0, 1, 5, 8 };
            m_StockChart.SetInputValue(5, types); // 요청 데이터 타입

            m_StockChart.SetInputValue(6, 'D');   // 챠트 구분
            m_StockChart.BlockRequest();

            object cnt = m_StockChart.GetHeaderValue(3);

            //addMsg("cnt", cnt);

            for (int i = 0; i < Convert.ToInt16(cnt); i++)
            {
                object date       = m_StockChart.GetDataValue(0, i);
                object priceStart = m_StockChart.GetDataValue(1, i);
                object priceEnd   = m_StockChart.GetDataValue(2, i);
                object volumn     = m_StockChart.GetDataValue(3, i);
                //addMsg("date", date);
                //addMsg("priceStart", priceStart);
                //addMsg("priceEnd", priceEnd);
                //addMsg("volumn", volumn);
                StockPrice stockPrice = new StockPrice(date, priceStart, priceEnd, volumn);

                StockManager.addStockPrice(code, stockPrice);
            }

            // 모두 입력후에 평균을 계산한다.
            StockManager.calculateAvg(code);
        }