private void OnReceiveTrData_Opt10060PriceMaedo(string sRQName, DataTable dt, int sPreNext) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10060, sRQName); DataTable dtDate = new DataTable(); KiwoomQuery kiwoom = new KiwoomQuery(); TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); if (dt != null) { foreach (DataRow dr in dt.Rows) { WriteTextSafe(stockCode + "(PRICE매도)" + "[" + dr["일자"].ToString() + "] 작업중"); arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"]); arrParam.Add("@MAEME_GB", "2"); arrParam.Add("@DATE_SEQNO", 0); arrParam.Add("@NUJUK_TRDAEGUM", dr["누적거래대금"]); arrParam.Add("@GAIN_PRICE", dr["개인투자자"]); arrParam.Add("@FORE_PRICE", dr["외국인투자자"]); arrParam.Add("@GIGAN_PRICE", dr["기관계"]); arrParam.Add("@GUMY_PRICE", dr["금융투자"]); arrParam.Add("@BOHUM_PRICE", dr["보험"]); arrParam.Add("@TOSIN_PRICE", dr["투신"]); arrParam.Add("@GITA_PRICE", dr["기타금융"]); arrParam.Add("@BANK_PRICE", dr["은행"]); arrParam.Add("@YEONGI_PRICE", dr["연기금등"]); arrParam.Add("@SAMO_PRICE", dr["사모펀드"]); arrParam.Add("@NATION_PRICE", dr["국가"]); arrParam.Add("@BUBIN_PRICE", dr["기타법인"]); arrParam.Add("@IOFORE_PRICE", dr["내외국인"]); arrParam.Add("@GIGAN_SUM_PRICE", Convert.ToInt32(dr["금융투자"]) + Convert.ToInt32(dr["보험"]) + Convert.ToInt32(dr["투신"]) + Convert.ToInt32(dr["기타금융"]) + Convert.ToInt32(dr["은행"]) + Convert.ToInt32(dr["연기금등"]) + Convert.ToInt32(dr["사모펀드"]) + Convert.ToInt32(dr["국가"])); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10060PriceAdd", CommandType.StoredProcedure, arrParam); } } _opt10060.Dispose(); tcs.SetResult(true); ClsAxKH.AxKH_10060_OnReceived -= new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaedo); GetOpt10060Caller(Opt10060TransType.QtyMaesu, stockCode, "", ""); }
private void OnGetStockCode() { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); //Task.Delay(3000).Wait(); _clsDataAccessUtil.Delay(3000); tcs.SetResult(true); string strStockCode = ""; strStockCode = GetStockCode(); if (strStockCode == "End") { return; } GetOpt10005Caller(strStockCode); proBar10005.Value = _seqNo; WriteTextSafe(strStockCode + "(" + ClsAxKH.GetMasterCodeName(strStockCode) + ")" + " 작업 중"); // tcs.SetResult(true); }
private void OnGetStockCode() { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string strStockCode = ""; strStockCode = GetStockCode(); if (strStockCode == "End") { return; } if (strStockCode == "") { OnGetStockCode(); return; } //WaitTime(); GetOpt10081Caller(strStockCode); proBar10081.Value = _seqNo; WriteTextSafe(strStockCode + "(" + ClsAxKH.GetMasterCodeName(strStockCode) + ")" + " 작업 중"); tcs.SetResult(true); }
private void GetOpt10060Caller(Opt10060TransType opt10060TransType, string stockCode, string MaxDate, string MinDate) { if (_opt10060 != null) { _opt10060.Dispose(); _opt10060 = null; } _opt10060 = new ClsOpt10060(); TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); if (tcs == null || tcs.Task.IsCompleted) { return; } DataTable dtDate = new DataTable(); KiwoomQuery kiwoom = new KiwoomQuery(); _opt10060.SetInit(_FormId); switch (opt10060TransType) { case Opt10060TransType.PriceMaesu: WriteTextSafe(stockCode + "(" + ClsAxKH.GetMasterCodeName(stockCode) + ")" + " Price(매수)_" + _StockQueue.Count.ToString()); ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaeSu); _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "1", MaeMaeGb: "1", UnitG: "", nPrevNext: 0); break; case Opt10060TransType.PriceMaedo: WaitTime(); WriteTextSafe(stockCode + " Price(매도)_" + _StockQueue.Count.ToString()); ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060PriceMaedo); _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "1", MaeMaeGb: "2", UnitG: "", nPrevNext: 0); break; case Opt10060TransType.QtyMaesu: WaitTime(); WriteTextSafe(stockCode + " QTY(매수)_" + _StockQueue.Count.ToString()); ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060MaeSu); _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "2", MaeMaeGb: "1", UnitG: "", nPrevNext: 0); break; case Opt10060TransType.QtyMaeDo: WaitTime(); WriteTextSafe(stockCode + " QTY(매도)_" + _StockQueue.Count.ToString()); ClsAxKH.AxKH_10060_OnReceived += new ClsAxKH.OnReceivedEventHandler(OnReceiveTrData_Opt10060Maedo); _opt10060.JustRequest(StartDate: _stdDate, StockCode: stockCode, StockName: "", AmountQtyGb: "2", MaeMaeGb: "2", UnitG: "", nPrevNext: 0); break; default: break; } tcs.SetResult(true); }
public FrmOpt10005Caller() { InitializeComponent(); _clsDataAccessUtil = new ClsDataAccessUtil(); ClsAxKH.AxKH_10005_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10005_OnReceived); Func <DataTable> funcGetStockData = () => { RichQuery oRichQuery = new RichQuery(); return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy()); }; _dtStockCode = funcGetStockData(); foreach (DataRow dr in _dtStockCode.Rows) { if (ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()) == "") { continue; } _StockQueue.Enqueue(dr["STOCK_CODE"].ToString()); } proBar10005.Maximum = _dtStockCode.Rows.Count; if (System.DateTime.Now.DayOfWeek == DayOfWeek.Saturday) { _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd"); } else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Sunday) { _stdDate = DateTime.Today.AddDays(-2).ToString("yyyyMMdd"); } else { int i = Int32.Parse(System.DateTime.Now.ToString("HH") + System.DateTime.Now.ToString("ss")); if (i > 1600) { _stdDate = CDateTime.FormatDate(System.DateTime.Now.Date.ToShortDateString()); } else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Monday) { _stdDate = DateTime.Today.AddDays(-3).ToString("yyyyMMdd"); } else { _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd"); } } }
private void OnGetStockCode() { string strStockCode = ""; strStockCode = GetStockCode(); if (strStockCode == "End") { BtnStart.Text = "작업 완료"; return; } _seqNo = _seqNo + 1; proBar10015.Value = _seqNo; proBar10081.Value = _seqNo; proBar10060.Value = _seqNo; if (strStockCode == "") { OnGetStockCode(); return; } WaitTime(); string stockName = ClsAxKH.GetMasterCodeName(stockCode: strStockCode); // 종목명을 못 가져오면 상장폐지된 종목으로 생각. if (stockName == "") { OnGetStockCode(); return; } if (_NoJob10015 != true) { GetOpt10015Caller(strStockCode, _stdDate, ""); } else if (_NoJob10081 != true) { GetOpt10081Caller(strStockCode); } else if (_NoJob10060 != true) { GetOpt10060Caller(Opt10060TransType.PriceMaesu, strStockCode, "", ""); } else { OnGetStockCode(); } WriteTextSafe(strStockCode + " 작업 중"); // tcs.SetResult(true); }
public FrmOpt10001Caller(DataTable UserDt, bool AutoStart = false, bool chk100Click = false) { InitializeComponent(); _clsDataAccessUtil = new ClsDataAccessUtil(); ClsAxKH.AxKH_10001_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10001_OnReceived); Func <DataTable> funcGetStockData = () => { if (UserDt != null) { return(UserDt.Copy()); } else { RichQuery oRichQuery = new RichQuery(); return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy()); } }; _dtStockCode = funcGetStockData(); foreach (DataRow dr in _dtStockCode.Rows) { if (ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()) == "") { continue; } _StockQueue.Enqueue(dr["STOCK_CODE"].ToString()); } proBar10001.Maximum = _dtStockCode.Rows.Count; chk100.Checked = chk100Click; _AutoStart = AutoStart; if (AutoStart == true) { string text = ""; string errorMessage = null; text = "OPT10001 작업 Start"; ClsTelegramBot.SendMessage(text, out errorMessage); OnGetStockCode(); } }
public FrmOpt10081Caller(DataTable UserDt, bool AutoStart = false, bool chk100Click = false) { InitializeComponent(); _clsDataAccessUtil = new ClsDataAccessUtil(); ClsAxKH.AxKH_10081_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10081_OnReceived); Func <DataTable> funcGetStockData = () => { if (UserDt != null) { return(UserDt.Copy()); } else { RichQuery oRichQuery = new RichQuery(); return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy()); } }; _dtStockCode = funcGetStockData(); foreach (DataRow dr in _dtStockCode.Rows) { if (ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()) == "") { continue; } _StockQueue.Enqueue(dr["STOCK_CODE"].ToString()); } proBar10081.Maximum = _dtStockCode.Rows.Count; _stdDate = _clsCollectOptDataFunc.GetAvailableDate(); dtpStdDate.Value = _clsUtil.StringToDateTime(_stdDate); chk100.Checked = chk100Click; _AutoStart = AutoStart; if (AutoStart == true) { btn10081_Click(null, new EventArgs()); } }
private void OnGetStockCode() { string strStockCode = ""; strStockCode = GetStockCode(); if (strStockCode == "End") { string text = ""; string errorMessage = null; text = "OPT10001 작업 완료"; ClsTelegramBot.SendMessage(text, out errorMessage); if (_AutoStart == true) { ClsTesterUtil clsTesterUtil = new ClsTesterUtil(); Form oform = new Woom.Tester.Forms.FrmOpt10060CallerPer(null, true, true); clsTesterUtil.ShowChildForm(oform, false, this); } return; } if (strStockCode == "") { OnGetStockCode(); return; } string stockName = ClsAxKH.GetMasterCodeName(stockCode: strStockCode); // 종목명을 못 가져오면 상장폐지된 종목으로 생각. if (stockName == "") { OnGetStockCode(); return; } WaitTime(); GetOpt10001Caller(strStockCode); proBar10001.Value = _seqNo; WriteTextSafe(strStockCode + " 작업 중"); // tcs.SetResult(true); }
private void Opt10081_OnReceived(string sRQName, DataTable dt, int sPreNext) { string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10081, sRQName); TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); if (tcs == null || tcs.Task.IsCompleted) { return; } if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"]); arrParam.Add("@DATE_SEQNO", 0); arrParam.Add("@NOW_PRICE", dr["현재가"]); arrParam.Add("@TRADE_QTY", dr["거래량"]); arrParam.Add("@TRADE_DAEGUM", dr["거래대금"]); arrParam.Add("@START_PRICE", dr["시가"]); arrParam.Add("@HIGH_PRICE", dr["고가"]); arrParam.Add("@LOW_PRICE", dr["저가"]); arrParam.Add("@CHG_JUGA_GB", dr["수정주가구분"]); arrParam.Add("@CHG_RATE", dr["수정비율"]); arrParam.Add("@CHG_JUGA_EVENT", dr["수정주가이벤트"]); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10081Add", CommandType.StoredProcedure, arrParam); } } _opt10081.Dispose(); tcs.SetResult(true); GetOpt10060Caller(Opt10060TransType.PriceMaesu, stockCode: stockCode, MaxDate: "", MinDate: ""); }
private void Opt90002_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); if (tcs == null || tcs.Task.IsCompleted) { return; } string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt90002, sRQName); if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { arrParam.Clear(); //DataTable stockName = _dt.AsEnumerable().Where(Row => Row.Field<string>("STOCK_NAME") == dr["STOCK_NAME"].ToString().Trim()).CopyToDataTable(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@KTH_CODE", stockCode); arrParam.Add("@STOCK_CODE", dr["종목코드"].ToString().Trim()); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_KthstAdd", CommandType.StoredProcedure, arrParam); WriteTextSafe("(" + stockCode + ")" + dr["종목코드"].ToString().Trim()); } } _opt90002.Dispose(); tcs.SetResult(true); OnGetKthCode(); }
/// <summary> /// /// </summary> /// <param name="dt">작업할 종목들</param> /// <param name="stdDate">기준일로부터 최근 3개월</param> public FrmOptDayJobCaller(DataTable dt, String stdDate) { InitializeComponent(); _stdDate = stdDate; _clsDataAccessUtil = new ClsDataAccessUtil(); ClsAxKH.AxKH_10015_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10015_OnReceived); ClsAxKH.AxKH_10081_OnReceived += new ClsAxKH.OnReceivedEventHandler(Opt10081_OnReceived); if (dt == null) { Func <DataTable> funcGetStockData = () => { RichQuery oRichQuery = new RichQuery(); return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy()); }; _dtStockCode = funcGetStockData(); } else { Func <DataTable> funcGetStockData = () => { RichQuery oRichQuery = new RichQuery(); return(oRichQuery.p_ScodeQuery("1", "", "", false).Tables[0].Copy()); }; _dtStockCode = dt.Copy(); dt = null; } foreach (DataRow dr in _dtStockCode.Rows) { if (ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()) == "") { continue; } _StockQueue.Enqueue(dr["STOCK_CODE"].ToString()); } proBar10015.Maximum = _dtStockCode.Rows.Count; proBar10060.Maximum = _dtStockCode.Rows.Count; proBar10081.Maximum = _dtStockCode.Rows.Count; if (_stdDate == "") { if (System.DateTime.Now.DayOfWeek == DayOfWeek.Saturday) { _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd"); } else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Sunday) { _stdDate = DateTime.Today.AddDays(-2).ToString("yyyyMMdd"); } else { int i = Int32.Parse(System.DateTime.Now.ToString("HH") + System.DateTime.Now.ToString("ss")); if (i > 1600) { _stdDate = CDateTime.FormatDate(System.DateTime.Now.Date.ToShortDateString()); } else if (System.DateTime.Now.DayOfWeek == DayOfWeek.Monday) { _stdDate = DateTime.Today.AddDays(-3).ToString("yyyyMMdd"); } else { _stdDate = DateTime.Today.AddDays(-1).ToString("yyyyMMdd"); } } } string reDate = ""; ClsUtil clsUtil = new ClsUtil(); reDate = clsUtil.Mid(_stdDate, 1, 4) + "-" + clsUtil.Mid(_stdDate, 5, 2) + clsUtil.Mid(_stdDate, 7, 2); DateTime dtDate = Convert.ToDateTime(reDate); _minDate = dtDate.AddDays(Convert.ToInt32(DayOfWeek.Monday) - Convert.ToInt32(dtDate.DayOfWeek)).ToString("yyyyMMdd"); proBar10015.Value = _StockQueue.Count; proBar10081.Value = _StockQueue.Count; proBar10060.Value = _StockQueue.Count; OnGetStockCode(); BtnStart.Text = "작업 중"; }
private void Opt10001_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10001, sRQName); if (tcs == null || tcs.Task.IsCompleted) { return; } try { if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", dr["종목코드"]); arrParam.Add("@CALL_DATE", ""); arrParam.Add("@CALL_TIME", ""); arrParam.Add("@결산월", dr["결산월"]); arrParam.Add("@액면가", ConvertInt32ToString(dr["액면가"].ToString())); arrParam.Add("@자본금", ConvertInt32ToString(dr["자본금"].ToString())); arrParam.Add("@상장주식", ConvertInt32ToString(dr["상장주식"].ToString())); arrParam.Add("@신용비율", ConvertDecimalToString(dr["신용비율"].ToString())); arrParam.Add("@연중최고", ConvertInt32ToString(dr["연중최고"].ToString())); arrParam.Add("@연중최저", ConvertInt32ToString(dr["연중최저"].ToString())); arrParam.Add("@시가총액", ConvertInt32ToString(dr["시가총액"].ToString())); arrParam.Add("@시가총액비중", dr["시가총액비중"].ToString()); arrParam.Add("@외인소진률", ConvertDecimalToString(dr["외인소진률"].ToString())); arrParam.Add("@대용가", ConvertInt32ToString(dr["대용가"].ToString())); arrParam.Add("@PER", ConvertDecimalToString(dr["PER"].ToString())); arrParam.Add("@EPS", ConvertInt32ToString(dr["EPS"].ToString())); arrParam.Add("@ROE", ConvertDecimalToString(dr["ROE"].ToString())); arrParam.Add("@PBR", ConvertDecimalToString(dr["PBR"].ToString())); arrParam.Add("@EV", ConvertDecimalToString(dr["EV"].ToString())); arrParam.Add("@BPS", ConvertInt32ToString(dr["BPS"].ToString())); arrParam.Add("@매출액", ConvertInt32ToString(dr["매출액"].ToString())); arrParam.Add("@영업이익", ConvertDecimalToString(dr["영업이익"].ToString())); arrParam.Add("@당기순이익", ConvertDecimalToString(dr["당기순이익"].ToString())); arrParam.Add("@최고250", ConvertInt32ToString(dr["250최고"].ToString())); arrParam.Add("@최저250", ConvertInt32ToString(dr["250최저"].ToString())); arrParam.Add("@시가", ConvertInt32ToString(dr["시가"].ToString())); arrParam.Add("@고가", ConvertInt32ToString(dr["고가"].ToString())); arrParam.Add("@저가", ConvertInt32ToString(dr["저가"].ToString())); arrParam.Add("@상한가", ConvertInt32ToString(dr["상한가"].ToString())); arrParam.Add("@하한가", ConvertInt32ToString(dr["하한가"].ToString())); arrParam.Add("@기준가", ConvertInt32ToString(dr["기준가"].ToString())); arrParam.Add("@예상체결가", ConvertInt32ToString(dr["예상체결가"].ToString())); arrParam.Add("@예상체결수량", ConvertInt32ToString(dr["예상체결수량"].ToString())); arrParam.Add("@최고가일250", dr["250최고가일"].ToString()); arrParam.Add("@최고가대비율250", ConvertDecimalToString(dr["250최고가대비율"].ToString())); arrParam.Add("@최저가일250", dr["250최저가일"].ToString()); arrParam.Add("@최저가대비율250", ConvertDecimalToString(dr["250최저가대비율"].ToString())); arrParam.Add("@현재가", ConvertInt32ToString(dr["현재가"].ToString())); arrParam.Add("@대비기호", dr["대비기호"].ToString()); arrParam.Add("@전일대비", ConvertDecimalToString(dr["전일대비"].ToString())); arrParam.Add("@등락율", ConvertDecimalToString(dr["등락율"].ToString())); arrParam.Add("@거래량", ConvertInt32ToString(dr["거래량"].ToString())); arrParam.Add("@거래대비액", ConvertDecimalToString(dr["거래대비"].ToString())); arrParam.Add("@액면가단위", dr["액면가단위"].ToString()); arrParam.Add("@유통주식", ConvertInt32ToString(dr["유통주식"].ToString())); arrParam.Add("@유통비율", ConvertDecimalToString(dr["유통비율"].ToString())); arrParam.Add("@R_ErrorCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10001Add", CommandType.StoredProcedure, arrParam); } } _opt10001.Dispose(); tcs.SetResult(true); OnGetStockCode(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); _opt10001.Dispose(); tcs.SetResult(true); OnGetStockCode(); return; throw; } }
private void Opt10015_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string[] sRQNameArray = sRQName.Split(','); string stockCode = ""; string stdDate = ""; string maxDate = ""; string minDate = ""; string chainMaxDate = ""; stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10015, sRQName); stdDate = ClsAxKH.RetStdDateBysRqName(ClsAxKH.OptType.Opt10015, sRQName); try { if (dt != null) { maxDate = dt.Compute("max([일자])", string.Empty).ToString().Trim(); minDate = dt.Compute("min([일자])", string.Empty).ToString().Trim(); ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); var rows = _dtOptCalMagam.AsEnumerable().Where(Row => Row.Field <string>("STOCK_CODE") == stockCode); foreach (DataRow dr2th in rows) { if (dr2th["CHAIN_COMP_GB"].ToString().Trim() == "Y") { chainMaxDate = dr2th["CHAIN_MAX_DATE"].ToString().Trim(); } } } if (tcs == null || tcs.Task.IsCompleted) { return; } if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { WriteTextSafe(stockCode + "(" + dr["일자"] + ")"); arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"].ToString()); arrParam.Add("@LAST_PRICE", dr["종가"]); arrParam.Add("@OAGO_DAEBI_SYMBOL", dr["전일대비기호"]); arrParam.Add("@OAGO_DAEBI", dr["전일대비"]); arrParam.Add("@UPDOWN_RATE", dr["등락율"]); arrParam.Add("@TRADE_QTY", dr["거래량"]); arrParam.Add("@TRADE_DAEGUM", dr["거래대금"]); arrParam.Add("@BETRADE_QTY", dr["장전거래량"]); arrParam.Add("@BETRADE_BIJUNG", dr["장전거래비중"]); arrParam.Add("@INTRADE_QTY", dr["장중거래량"]); arrParam.Add("@INTRADE_BIJUNG", dr["장중거래비중"]); arrParam.Add("@AFTRADE_QTY", dr["장후거래량"]); arrParam.Add("@AFTRADE_BIJUNG", dr["장후거래비중"]); arrParam.Add("@SUM3", dr["합계3"]); arrParam.Add("@GITRADE_QTY", dr["기간중거래량"]); arrParam.Add("@BETRADE_DAEGUM", dr["장전거래대금"]); arrParam.Add("@BETRADE_DBIJUNG", dr["장전거래대금비중"]); arrParam.Add("@INTRADE_DAEGUM", dr["장중거래대금"]); arrParam.Add("@INTRADE_DBIJUNG", dr["장중거래대금비중"]); arrParam.Add("@AFTRADE_DAEGUM", dr["장후거래대금"]); arrParam.Add("@AFTRADE_DBIJUNG", dr["장후거래대금비중"]); arrParam.Add("@DEUNG_DATE", ""); arrParam.Add("@DEUNG_TIME", ""); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10015Add", CommandType.StoredProcedure, arrParam); if (chainMaxDate != "") { if (chainMaxDate == dr["일자"].ToString().Trim()) { ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); _opt10015.Dispose(); tcs.SetResult(true); WaitTime(); OnGetStockCode(); return; } } } } // 최근 거래일 100일을 가져오는걸로 한다면 if (chk100.Checked == true) { ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); _opt10015.Dispose(); tcs.SetResult(true); OnGetStockCode(); return; } else { if (sPreNext == 2) { tcs.SetResult(true); ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "S", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); WaitTime(); _opt10015.SetInit(_FormId); _opt10015.JustRequest(StockCode: sRQNameArray[1].ToString().Trim(), StartDate: sRQNameArray[2].ToString().Trim(), StockName: "", nPrevNext: 2); OPS10060.Text = ClsAxKH._limitCount.ToString(); lblTime.Text = ClsAxKH._limitTime.ToString(); return; } else { if (dt != null) { ClsDbLogger.OptCallMagamStoredData(actionGb: "CE", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: minDate); } else { ClsDbLogger.OptCallMagamStoredData(actionGb: "EE", optCaller: "OPT10015", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "F", chainCompGb: "", chainMaxDate: "", chainMinDate: minDate); } _opt10015.Dispose(); tcs.SetResult(true); OnGetStockCode(); return; } } } catch (Exception ex) { _opt10015.Dispose(); tcs.SetResult(true); OnGetStockCode(); MessageBox.Show(ex.Message.ToString()); throw; } }
private void Opt10015_OnReceived(string sRQName, DataTable dt, int sPreNext) { string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10015, sRQName); TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); if (tcs == null || tcs.Task.IsCompleted) { return; } // 최근 100일 내역만 질의한다. if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { WriteTextSafe(stockCode + "(일자별상세)" + "[" + dr["일자"].ToString() + "] 작업중"); arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"].ToString()); arrParam.Add("@LAST_PRICE", dr["종가"]); arrParam.Add("@OAGO_DAEBI_SYMBOL", dr["전일대비기호"]); arrParam.Add("@OAGO_DAEBI", dr["전일대비"]); arrParam.Add("@UPDOWN_RATE", dr["등락율"]); arrParam.Add("@TRADE_QTY", dr["거래량"]); arrParam.Add("@TRADE_DAEGUM", dr["거래대금"]); arrParam.Add("@BETRADE_QTY", dr["장전거래량"]); arrParam.Add("@BETRADE_BIJUNG", dr["장전거래비중"]); arrParam.Add("@INTRADE_QTY", dr["장중거래량"]); arrParam.Add("@INTRADE_BIJUNG", dr["장중거래비중"]); arrParam.Add("@AFTRADE_QTY", dr["장후거래량"]); arrParam.Add("@AFTRADE_BIJUNG", dr["장후거래비중"]); arrParam.Add("@SUM3", dr["합계3"]); arrParam.Add("@GITRADE_QTY", dr["기간중거래량"]); arrParam.Add("@BETRADE_DAEGUM", dr["장전거래대금"]); arrParam.Add("@BETRADE_DBIJUNG", dr["장전거래대금비중"]); arrParam.Add("@INTRADE_DAEGUM", dr["장중거래대금"]); arrParam.Add("@INTRADE_DBIJUNG", dr["장중거래대금비중"]); arrParam.Add("@AFTRADE_DAEGUM", dr["장후거래대금"]); arrParam.Add("@AFTRADE_DBIJUNG", dr["장후거래대금비중"]); arrParam.Add("@DEUNG_DATE", ""); arrParam.Add("@DEUNG_TIME", ""); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10015Add", CommandType.StoredProcedure, arrParam); } } _opt10015.Dispose(); tcs.SetResult(true); GetOpt10081Caller(stockCode: stockCode); }
private void GetOptStockInfo(string stockCode) { if (stockCode == null) { return; } if (stockCode == "") { return; } KiwoomQuery kiwoomQuery = new KiwoomQuery(); DataTable dt = new DataTable(); ClsCollectOptDataFunc clsCollectOptDataFunc = new ClsCollectOptDataFunc(); string stdDate = clsCollectOptDataFunc.AvailableTradingDate(); dt = kiwoomQuery.p_StockCodeOptInfoQuery(query: "1", stockCode: stockCode, stockDate: stdDate, bln3tier: false).Tables[0].Copy(); if (dt.Rows.Count > 0) { dgvStockInfo.Rows.Add(); DataRow dr = dt.Rows[0]; dgvStockInfo.Rows[_row].Cells["STOCK_CODE"].Value = dr["STOCK_CODE"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["종목명"].Value = ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString().Trim()); dgvStockInfo.Rows[_row].Cells["현재가"].Value = dr["현재가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["거래량"].Value = dr["거래량"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["거래대금"].Value = dr["거래대금"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["시가"].Value = dr["시가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["고가"].Value = dr["고가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["저가"].Value = dr["저가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["기준일"].Value = dr["CALL_DATE"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["결산월"].Value = dr["결산월"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["액면가"].Value = dr["액면가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["자본금"].Value = dr["자본금"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["상장주식"].Value = dr["상장주식"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["신용비율"].Value = dr["신용비율"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["연중최고"].Value = dr["연중최고"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["연중최저"].Value = dr["연중최저"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["시가총액"].Value = dr["시가총액"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["시가총액비중"].Value = dr["시가총액비중"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["외인소진률"].Value = dr["외인소진률"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["대용가"].Value = dr["대용가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["PER"].Value = dr["PER"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["EPS"].Value = dr["EPS"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["ROE"].Value = dr["ROE"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["PBR"].Value = dr["PBR"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["EV"].Value = dr["EV"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["BPS"].Value = dr["BPS"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["매출액"].Value = dr["매출액"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["영업이익"].Value = dr["영업이익"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["당기순이익"].Value = dr["당기순이익"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최고250"].Value = dr["최고250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최저250"].Value = dr["최저250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최고가일250"].Value = dr["최고가일250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최고가대비율250"].Value = dr["최고가대비율250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최저가일250"].Value = dr["최저가일250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["최저가대비율250"].Value = dr["최저가대비율250"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["유통주식"].Value = dr["유통주식"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["유통비율"].Value = dr["유통비율"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["종가"].Value = dr["종가"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["전일대비기호"].Value = dr["전일대비기호"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["전일대비"].Value = dr["전일대비"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["등락율"].Value = dr["등락율"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["거래량"].Value = dr["거래량"].ToString().Trim(); dgvStockInfo.Rows[_row].Cells["거래대금"].Value = dr["거래대금"].ToString().Trim(); dgvStockInfo.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); _row = _row + 1; } dt = null; }
/// <summary> /// 주식 시장별 종목코드 리스트를 ';'로 구분해서 전달합니다. /// 시장구분값을 ""공백으로하면 전체시장 코드리스트를 전달합니다. /// </summary> /// <param name="stockGb">0 : 코스피 10 : 코스닥 3 : ELW 8 : ETF 50 : KONEX 4 : 뮤추얼펀드 5 : 신주인수권 6 : 리츠 9 : 하이얼펀드 30 : K-OTC 999 : ALL(코스피, 코스닥) </param> /// <returns></returns> public DataTable GetCodeListByMarketCallBackDataTable(string stockGb) { DataTable Dt = new DataTable(); DataRow dr; string CodeList; string[] ArrayStockCode; Dt.Columns.Add("STOCK_CODE", Type.GetType("System.String")); Dt.Columns.Add("STOCK_NAME", Type.GetType("System.String")); if (stockGb != "999") { CodeList = ClsAxKH.AxKH.GetCodeListByMarket(stockGb); if (CodeList == "") { return(null); } else { ArrayStockCode = CodeList.Split(';'); foreach (string stockCode in ArrayStockCode) { dr = Dt.NewRow(); dr["STOCK_CODE"] = stockCode; dr["STOCK_NAME"] = ClsAxKH.GetMasterCodeName(stockCode); Dt.Rows.Add(dr); } } } else { CodeList = ClsAxKH.AxKH.GetCodeListByMarket("0"); if (CodeList == "") { return(null); } else { ArrayStockCode = CodeList.Split(';'); foreach (string stockCode in ArrayStockCode) { dr = Dt.NewRow(); dr["STOCK_CODE"] = stockCode; dr["STOCK_NAME"] = ClsAxKH.GetMasterCodeName(stockCode); Dt.Rows.Add(dr); } } CodeList = ""; CodeList = ClsAxKH.AxKH.GetCodeListByMarket("10"); if (CodeList == "") { return(null); } else { ArrayStockCode = CodeList.Split(';'); foreach (string stockCode in ArrayStockCode) { dr = Dt.NewRow(); dr["STOCK_CODE"] = stockCode; dr["STOCK_NAME"] = ClsAxKH.GetMasterCodeName(stockCode); Dt.Rows.Add(dr); } } } return(Dt); }
private void Opt10005_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10005, sRQName); if (tcs == null || tcs.Task.IsCompleted) { return; } if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { if (_MaxStockDate10005 == dr["날짜"].ToString().Trim()) { _opt10005.Dispose(); tcs.SetResult(true); OnGetStockCode(); return; } else { //arrParam.Clear(); //arrParam.Add("@ACTION_GB", "A"); //arrParam.Add("@STOCK_CODE", stockCode); //arrParam.Add("@STOCK_DATE", dr["일자"]); //arrParam.Add("@DATE_SEQNO", 0); //arrParam.Add("@NOW_PRICE", dr["현재가"]); //arrParam.Add("@TRADE_QTY", dr["거래량"]); //arrParam.Add("@TRADE_DAEGUM", dr["거래대금"]); //arrParam.Add("@START_PRICE", dr["시가"]); //arrParam.Add("@HIGH_PRICE", dr["고가"]); //arrParam.Add("@LOW_PRICE", dr["저가"]); //arrParam.Add("@CHG_JUGA_GB", dr["수정주가구분"]); //arrParam.Add("@CHG_RATE", dr["수정비율"]); //arrParam.Add("@CHG_JUGA_EVENT", dr["수정주가이벤트"]); //arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); //oSql.ExecuteNonQuery("p_Opt10005Add", CommandType.StoredProcedure, arrParam); } } } if (sPreNext == 2) { tcs.SetResult(true); _opt10005.SetInit(_FormId); _opt10005.JustRequest(StockCode: sRQNameArray[1].ToString().Trim(), StockName: "", nPrevNext: 2); } else { _opt10005.Dispose(); tcs.SetResult(true); } OnGetStockCode(); }
private void Opt20068_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string[] sRQNameArray = sRQName.Split(','); string stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt20068, sRQName); if (tcs == null || tcs.Task.IsCompleted) { return; } if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { if (_MaxStockDate20068 == dr["일자"].ToString().Trim()) { _opt20068.Dispose(); tcs.SetResult(true); OnGetStockCode(); return; } else { arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"]); arrParam.Add("@LT_CON_CNT", dr["대차거래체결주수"]); arrParam.Add("@LT_REPAY_CNT", dr["대차거래상환주수"]); arrParam.Add("@LT_INCRE", dr["대차거래증감"]); arrParam.Add("@BALANCE_CNT", dr["잔고주수"]); arrParam.Add("@BALANCE_PRICE", dr["잔고금액"]); arrParam.Add("@R_ErrorCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt20068Add", CommandType.StoredProcedure, arrParam); } } } if (sPreNext == 2) { tcs.SetResult(true); _opt20068.SetInit(_FormId); _opt20068.JustRequest(startDate: sRQNameArray[1].ToString().Trim(), endDate: sRQNameArray[2].ToString().Trim(), allGb: sRQNameArray[3].ToString().Trim(), stockCode: sRQNameArray[4].ToString().Trim(), nPrevNext: 2); } else { _opt20068.Dispose(); tcs.SetResult(true); } OnGetStockCode(); }
private void Opt10081_OnReceived(string sRQName, DataTable dt, int sPreNext) { TaskCompletionSource <bool> tcs = null; tcs = new TaskCompletionSource <bool>(); string[] sRQNameArray = sRQName.Split(','); string stockCode = ""; string stdDate = ""; string maxDate = ""; string minDate = ""; string chainMaxDate = ""; stockCode = ClsAxKH.RetStockCodeBysRqName(ClsAxKH.OptType.Opt10081, sRQName); stdDate = ClsAxKH.RetStdDateBysRqName(ClsAxKH.OptType.Opt10081, sRQName); try { if (dt != null) { maxDate = dt.Compute("max([일자])", string.Empty).ToString().Trim(); minDate = dt.Compute("min([일자])", string.Empty).ToString().Trim(); ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); var rows = _dtOptCalMagam.AsEnumerable().Where(Row => Row.Field <string>("STOCK_CODE") == stockCode); foreach (DataRow dr2th in rows) { if (dr2th["CHAIN_COMP_GB"].ToString().Trim() == "Y") { chainMaxDate = dr2th["CHAIN_MAX_DATE"].ToString().Trim(); } } } if (tcs == null || tcs.Task.IsCompleted) { return; } if (dt != null) { ArrayParam arrParam = new ArrayParam(); Sql oSql = new Sql(SDataAccess.ClsServerInfo.VADISSEVER, "KIWOOMDB"); foreach (DataRow dr in dt.Rows) { WriteTextSafe(stockCode + "(" + dr["일자"] + ")"); arrParam.Clear(); arrParam.Add("@ACTION_GB", "A"); arrParam.Add("@STOCK_CODE", stockCode); arrParam.Add("@STOCK_DATE", dr["일자"]); arrParam.Add("@DATE_SEQNO", 0); arrParam.Add("@NOW_PRICE", dr["현재가"]); arrParam.Add("@TRADE_QTY", dr["거래량"]); arrParam.Add("@TRADE_DAEGUM", dr["거래대금"]); arrParam.Add("@START_PRICE", dr["시가"]); arrParam.Add("@HIGH_PRICE", dr["고가"]); arrParam.Add("@LOW_PRICE", dr["저가"]); arrParam.Add("@CHG_JUGA_GB", dr["수정주가구분"]); arrParam.Add("@CHG_RATE", dr["수정비율"]); arrParam.Add("@CHG_JUGA_EVENT", dr["수정주가이벤트"]); arrParam.Add("@R_ERRORCD", -1, SqlDbType.Int, ParameterDirection.InputOutput); oSql.ExecuteNonQuery("p_Opt10081Add", CommandType.StoredProcedure, arrParam); if (chainMaxDate != "") { if (chainMaxDate == dr["일자"].ToString().Trim()) { ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); _opt10081.Dispose(); WaitTime(); tcs.SetResult(true); OnGetStockCode(); return; } } } } else { ClsDbLogger.OptCallMagamStoredData(actionGb: "EE", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "F", chainCompGb: "", chainMaxDate: "", chainMinDate: minDate); _opt10081.Dispose(); WaitTime(); tcs.SetResult(true); OnGetStockCode(); return; } // 최근 거래일 100일을 가져오는걸로 한다면 if (chk100.Checked == true) { ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); _opt10081.Dispose(); WaitTime(); tcs.SetResult(true); OnGetStockCode(); return; } else { if (sPreNext == 2) { tcs.SetResult(true); ClsDbLogger.OptCallMagamStoredData(actionGb: "A", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "S", chainCompGb: "", chainMaxDate: "", chainMinDate: ""); //_clsDataAccessUtil.Delay(3600); WaitTime(); _opt10081.SetInit(_FormId); _opt10081.JustRequest(StockCode: sRQNameArray[1].ToString().Trim(), StockName: "", StdDate: sRQNameArray[2].ToString().Trim(), ModifyJugaGb: sRQNameArray[3].ToString().Trim(), nPrevNext: 2); } else { if (dt != null) { ClsDbLogger.OptCallMagamStoredData(actionGb: "CE", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "C", chainCompGb: "", chainMaxDate: "", chainMinDate: minDate); } else { ClsDbLogger.OptCallMagamStoredData(actionGb: "EE", optCaller: "OPT10081", stockCode: stockCode, stdDate: stdDate, maxDate: maxDate, minDate: minDate, jobIngGb: "F", chainCompGb: "", chainMaxDate: "", chainMinDate: minDate); } _opt10081.Dispose(); WaitTime(); tcs.SetResult(true); OnGetStockCode(); return; } } } catch (Exception ex) { _opt10081.Dispose(); tcs.SetResult(true); OnGetStockCode(); WaitTime(); MessageBox.Show(ex.Message.ToString()); throw; } }
private void SearchNews() { try { if (chkStockName.Checked == true) { textBoxKeyword.Text = ClsAxKH.GetMasterCodeName(_stockCode); } else { textBoxKeyword.Text = _stockCode; } ClsDataGridViewUtil clsDataGridViewUtil = new ClsDataGridViewUtil(); if (chkAddSearch.Checked == true) { // clsDataGridViewUtil.RemoveGridViewRow(dgvNaverSearch); } else { clsDataGridViewUtil.RemoveGridViewRow(dgvNaverSearch); _row = 0; } string results = getResults(); results = results.Replace("<b>", ""); results = results.Replace("</b>", ""); results = results.Replace("<", "<"); results = results.Replace(">", ">"); var parseJson = JObject.Parse(results); var countsOfDisplay = Convert.ToInt32(parseJson["display"]); var countsOfResults = Convert.ToInt32(parseJson["total"]); for (int i = 0; i < countsOfDisplay; i++) { var title = parseJson["items"][i]["title"].ToString(); title = title.Replace(""", "\""); var description = parseJson["items"][i]["description"].ToString(); description = description.Replace(""", "\""); var link = parseJson["items"][i]["link"].ToString(); if (_row > 0 && dgvNaverSearch.Rows[0].Cells["No"].Value.ToString() != "") { DataGridViewRow dataGridViewRow = (DataGridViewRow)dgvNaverSearch.Rows[0].Clone(); dataGridViewRow.Cells[0].Value = (_row = +1).ToString(); dataGridViewRow.Cells[1].Value = textBoxKeyword.Text; dataGridViewRow.Cells[2].Value = title; dataGridViewRow.Cells[3].Value = description; dataGridViewRow.Cells[4].Value = link; dgvNaverSearch.Rows.Insert(0, dataGridViewRow); } else { dgvNaverSearch.Rows.Add(); dgvNaverSearch.Rows[_row].Cells["No"].Value = (_row + 1).ToString(); dgvNaverSearch.Rows[_row].Cells["검색명"].Value = textBoxKeyword.Text; dgvNaverSearch.Rows[_row].Cells["제목"].Value = title; dgvNaverSearch.Rows[_row].Cells["본문"].Value = description; dgvNaverSearch.Rows[_row].Cells["링크"].Value = link; } _row = _row + 1; } } catch (Exception exc) { Debug.WriteLine(exc.Message); } }
private void GetNewStockCode() { DataTable dt = new DataTable(); DataTable dt2 = new DataTable(); RichQuery richQuery = new RichQuery(); ClsGetKoaStudioMethod clsGetKoaStudioMethod = new ClsGetKoaStudioMethod(); dt = richQuery.p_ScodeQuery(query: "1", stockCode: "", ybYongCode: "", bln3tier: false).Tables[0].Copy(); dt2 = clsGetKoaStudioMethod.GetCodeListByMarketCallBackDataTable(stockGb: "999"); int row = 0; string stockName = ""; dgv1.DataSource = dt; var rows = from t1 in dt2.AsEnumerable() join t2 in dt.AsEnumerable() on t1.Field <string>("STOCK_CODE") equals t2.Field <string>("STOCK_CODE") into tg from tcheck in tg.DefaultIfEmpty() where tcheck == null select t1; foreach (DataRow dr in rows) { if (dr["STOCK_CODE"].ToString().Trim() == "") { continue; } stockName = ClsAxKH.GetMasterCodeName(dr["STOCK_CODE"].ToString()); if (stockName.Contains("스팩") == true) { continue; } if (stockName.Contains("KOSEF") == true) { continue; } if (stockName.Contains("일본") == true) { continue; } if (stockName.Contains("TIGER") == true) { continue; } if (stockName.Contains("KBSTAR") == true) { continue; } if (stockName.Contains("KINDEX") == true) { continue; } if (stockName.Contains("국고") == true) { continue; } if (stockName.Contains("단기") == true) { continue; } if (stockName.Contains("선물") == true) { continue; } if (stockName.Contains("나스닥") == true) { continue; } if (stockName.Contains("ARIRANG") == true) { continue; } if (stockName.Contains("HANARO") == true) { continue; } if (stockName.Contains(" ETN") == true) { continue; } if (stockName.Contains("KODEX") == true) { continue; } if (stockName.Contains("QV ") == true) { continue; } if (stockName.Contains("TRUE ") == true) { continue; } if (stockName.Contains("미래에셋 ") == true) { continue; } if (stockName.Contains("삼성 ") == true) { continue; } if (stockName.Contains("신한 ") == true) { continue; } if (stockName.Contains("FOCUS ") == true) { continue; } if (stockName.Contains("SMART ") == true) { continue; } if (stockName.Contains("TREX ") == true) { continue; } if (stockName.Contains("파워 ") == true) { continue; } if (stockName.Contains("흥국 ") == true) { continue; } dgv0.Rows.Add(); dgv0.Rows[row].Cells["STOCK_CODE"].Value = dr["STOCK_CODE"].ToString(); dgv0.Rows[row].Cells["STOCK_NAME"].Value = stockName; row = row + 1; } }