protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t9942OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { var result = new _t9942OutBlock() { hname = query.GetFieldData(block.Name, "hname", i), shcode = query.GetFieldData(block.Name, "shcode", i), expcode = query.GetFieldData(block.Name, "expcode", i), }; writer.NextRecord(); writer.WriteRecord(result); Constants.CodeElws.Add(result.shcode, new CodeElw() { UnderlyingAssetsCategory = "", UnderlyingAssetsCode = "", Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, }); } }
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t8401OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { var result = new _t8401OutBlock() { hname = query.GetFieldData(block.Name, "hname", i), shcode = query.GetFieldData(block.Name, "shcode", i), expcode = query.GetFieldData(block.Name, "expcode", i), basecode = query.GetFieldData(block.Name, "basecode", i), }; writer.NextRecord(); writer.WriteRecord(result); Constants.CodeFutures.Add(result.shcode, new CodeFutures() { UnderlyingAssetsCategory = "STOCK", UnderlyingAssetsCode = result.basecode, Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, //TODO Listing, Expirationdate ListingDate = "", ExpirationDate = "", }); } }
/// <summary> /// 생성자 - 멀티현재가 /// </summary> public xing_tr_8407_kiwum() { IConnectionPoint icp; IConnectionPointContainer icpc; int iCookie = 0; mTr = new XAQuery(); mTr.ResFileName = "\\res\\t8407.res"; icpc = (IConnectionPointContainer)mTr; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out iCookie); // json 초기화 mJson = new JsonObjectCollection(); #region 8407 종목 검색을 위한 파일 설정 로딩 string[] files = setting.t1833_files.Split('■'); foreach (string filename in files) { if (filename.IndexOf("21_") == 0) { mFile21.Add(filename); } } #endregion } // end function
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block1 = resModel.Blocks[szTrCode + "OutBlock1"]; writer.WriteHeader <_t9905OutBlock1>(); for (var i = 0; i < query.GetBlockCount(szTrCode + "OutBlock1"); i++) { var result = new _t9905OutBlock1() { shcode = query.GetFieldData(block1.Name, "shcode", i), expcode = query.GetFieldData(block1.Name, "expcode", i), hname = query.GetFieldData(block1.Name, "hname", i), }; writer.NextRecord(); writer.WriteRecord(result); Constants.CodeElwBases.Add(result.shcode, new CodeElwBase() { Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, }); } }
public QueryCtrl() { m_bRealSet = false; UCOMIConnectionPoint icp; UCOMIConnectionPointContainer icpc; int dwCookie = 0; m_Query = new XAQuery(); m_Query.ResFileName = "\\res\\t1101.res"; icpc = (UCOMIConnectionPointContainer)m_Query; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out dwCookie); dwCookie = 0; m_Real = new XAReal(); m_Real.ResFileName = "\\res\\S3_.res"; //KOSPI체결 icpc = (UCOMIConnectionPointContainer)m_Real; Guid IID_RealEvents = typeof(_IXARealEvents).GUID; icpc.FindConnectionPoint(ref IID_RealEvents, out icp); icp.Advise(this, out dwCookie); dwCookie = 0; m_Real2 = new XAReal(); m_Real2.ResFileName = "\\res\\H1_.res"; //KOSPI체결 icpc = (UCOMIConnectionPointContainer)m_Real2; icpc.FindConnectionPoint(ref IID_RealEvents, out icp); icp.Advise(this, out dwCookie); }
/// <summary> /// 생성자 - 주식잔고2 /// </summary> public xing_tr_0424() { IConnectionPoint icp; IConnectionPointContainer icpc; int iCookie = 0; mTr = new XAQuery(); mTr.ResFileName = "\\res\\t0424.res"; icpc = (IConnectionPointContainer)mTr; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out iCookie); #region 매도를 위한 JSON 로딩 string date_saved = Properties.Settings.Default.T0424_DATE; string date_now = util_datetime.GetFormatNow("yyyyMMdd"); // 오늘 프로그램이 실행된적이 있다면... if (date_now == date_saved) { // 설정파일에 저장된 값을 로딩 try { mJson = (JsonObjectCollection) new JsonTextParser().Parse(Properties.Settings.Default.T0424_JSON); mRebuyJson = (JsonObjectCollection) new JsonTextParser().Parse(Properties.Settings.Default.REBUY_JSON); } // 설정 파일에 잘못된 json 값이 들어가 있을 경우 예외 처리 catch (Exception ex) { // json 초기화 mJson = new JsonObjectCollection(); mRebuyJson = new JsonObjectCollection(); Log.WriteLine("t0424 json 초기화 :: " + ex.Message); } } // 오늘 처음 실행되는 것이라면.. else { // json 초기화 mJson = new JsonObjectCollection(); mRebuyJson = new JsonObjectCollection(); // 설정파일에 금일 날짜값 저장 Properties.Settings.Default.T0424_DATE = date_now; Properties.Settings.Default.Save(); } #endregion } // end function
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t8424OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { //LOG.Debug($"trCountLimit : {query.GetTRCountLimit(szTrCode)}, trCountRequest : {query.GetTRCountRequest(szTrCode)}, trCountBaseSec : {query.GetTRCountBaseSec(szTrCode)}, trCountPerSec : {query.GetTRCountPerSec(szTrCode)}"); var result = new _t8424OutBlock() { hname = query.GetFieldData(block.Name, "hname", i), upcode = query.GetFieldData(block.Name, "upcode", i), }; writer.NextRecord(); writer.WriteRecord(result); string category; switch (_inBlock.gubun1) { case "1": category = "KOSPI"; break; case "2": category = "KOSDAQ"; break; case "3": category = "KRX"; break; case "4": category = "ETC"; break; default: category = "ALL"; //TODO error break; } Constants.CodeSectors.Add(result.upcode, new CodeSector() { Category = category, Name = result.hname, Code = result.upcode, }); } }
public JonMokQuery() { UCOMIConnectionPoint icp; UCOMIConnectionPointContainer icpc; int dwCookie = 0; query = new XAQuery(); query.ResFileName = "\\res\\t8435.res"; icpc = (UCOMIConnectionPointContainer)query; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out dwCookie); }
/// <summary> /// 생성자 - 주식 체결/미체결 /// </summary> public xing_tr_0425() { IConnectionPoint icp; IConnectionPointContainer icpc; int iCookie = 0; mTr = new XAQuery(); mTr.ResFileName = "\\res\\t0425.res"; icpc = (IConnectionPointContainer)mTr; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out iCookie); } // end function
/// <summary> /// 생성자 - 멀티현재가 /// </summary> public xing_tr_8407() { IConnectionPoint icp; IConnectionPointContainer icpc; int iCookie = 0; mTr = new XAQuery(); mTr.ResFileName = "\\res\\t8407.res"; icpc = (IConnectionPointContainer)mTr; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out iCookie); // json 초기화 mJson = new JsonObjectCollection(); } // end function
public QueryCodeBase(string szTrCode) { var resFileName = Path.Combine(Settings.Default.root_path, "Res", szTrCode + ".res"); _resModel = ReadResFile.Read(resFileName); int dwCookie = 0; IConnectionPoint icp; IConnectionPointContainer icpc; _query = new XAQuery { ResFileName = resFileName }; icpc = (IConnectionPointContainer)_query; Guid iidQueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref iidQueryEvents, out icp); icp.Advise(this, out dwCookie); LOG.Info($"QueryCodeBase 생성자완료 szTrCode: {szTrCode}"); }
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t8425OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { var result = new _t8425OutBlock() { tmcode = query.GetFieldData(block.Name, "tmcode", i), tmname = query.GetFieldData(block.Name, "tmname", i), }; writer.NextRecord(); writer.WriteRecord(result); Constants.CodeThemes.Add(result.tmcode, new CodeTheme() { Code = result.tmcode, Name = result.tmname, }); } }
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t8436OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { var result = new _t8436OutBlock() { hname = query.GetFieldData(block.Name, "hname", i), shcode = query.GetFieldData(block.Name, "shcode", i), expcode = query.GetFieldData(block.Name, "expcode", i), etfgubun = query.GetFieldData(block.Name, "etfgubun", i), uplmtprice = long.Parse(query.GetFieldData(block.Name, "uplmtprice", i)), dnlmtprice = long.Parse(query.GetFieldData(block.Name, "dnlmtprice", i)), jnilclose = long.Parse(query.GetFieldData(block.Name, "jnilclose", i)), memedan = query.GetFieldData(block.Name, "memedan", i), recprice = long.Parse(query.GetFieldData(block.Name, "recprice", i)), gubun = query.GetFieldData(block.Name, "gubun", i), bu12gubun = query.GetFieldData(block.Name, "bu12gubun", i), spac_gubun = query.GetFieldData(block.Name, "spac_gubun", i), filler = query.GetFieldData(block.Name, "filler", i), }; writer.NextRecord(); writer.WriteRecord(result); Constants.CodeStocks.Add(result.shcode, new CodeStock() { Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, EtfGubun = result.etfgubun, SpacGubun = result.spac_gubun, MarketGubun = result.gubun, Bu12Gubun = result.bu12gubun, }); } }
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; if (query.GetBlockCount(szTrCode + "OutBlock1") == 0) { _codeIdx++; var code = codes.ElementAt(_codeIdx); InBlock(code); return; } var block = resModel.Blocks[szTrCode + "OutBlock"]; var meta = new _t4203OutBlock() { shcode = query.GetFieldData(block.Name, "shcode", 0), jisiga = decimal.Parse(query.GetFieldData(block.Name, "jisiga", 0)), jihigh = decimal.Parse(query.GetFieldData(block.Name, "jihigh", 0)), jilow = decimal.Parse(query.GetFieldData(block.Name, "jilow", 0)), jiclose = decimal.Parse(query.GetFieldData(block.Name, "jiclose", 0)), jivolume = long.Parse(query.GetFieldData(block.Name, "jivolume", 0)), disiga = decimal.Parse(query.GetFieldData(block.Name, "disiga", 0)), dihigh = decimal.Parse(query.GetFieldData(block.Name, "dihigh", 0)), dilow = decimal.Parse(query.GetFieldData(block.Name, "dilow", 0)), diclose = decimal.Parse(query.GetFieldData(block.Name, "diclose", 0)), disvalue = long.Parse(query.GetFieldData(block.Name, "disvalue", 0)), cts_date = query.GetFieldData(block.Name, "cts_date", 0), cts_time = query.GetFieldData(block.Name, "cts_time", 0), cts_daygb = query.GetFieldData(block.Name, "cts_daygb", 0), }; var block1 = resModel.Blocks[szTrCode + "OutBlock1"]; writer.WriteHeader <_t4203OutBlock1>(); for (var i = 0; i < query.GetBlockCount(block1.Name); i++) { var result = new _t4203OutBlock1() { date = query.GetFieldData(block1.Name, "date", i), time = query.GetFieldData(block1.Name, "time", i), open = decimal.Parse(query.GetFieldData(block1.Name, "open", i)), high = decimal.Parse(query.GetFieldData(block1.Name, "high", i)), low = decimal.Parse(query.GetFieldData(block1.Name, "low", i)), close = decimal.Parse(query.GetFieldData(block1.Name, "close", i)), jdiff_vol = long.Parse(query.GetFieldData(block1.Name, "jdiff_vol", i)), value = long.Parse(query.GetFieldData(block1.Name, "value", i)), }; writer.NextRecord(); writer.WriteRecord(result); } Thread.Sleep(1000); if (_query.IsNext) { _inBlock.cts_date = meta.cts_date; _inBlock.cts_time = meta.cts_time; _inBlock.cts_daygb = meta.cts_daygb; InBlock(meta.shcode, _query.IsNext); } else { _codeIdx++; if (codes.Count > _codeIdx) { var code = codes.ElementAt(_codeIdx); InBlock(code); } else { //TODO next callback hell } } }
public QueryCtrl() { m_query = new XAQuery(); m_query.ResFileName = "\\res\\t8435"; }
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; LOG.Info("--------------start-------------"); LOG.Info(szTrCode + " " + _inBlock.shcode + " " + _inBlock.cts_date + " " + _inBlock.cts_time + " " + _inBlock.cts_daygb); //LOG.Info("=========== GetAccountList"); //LOG.Info(_query.GetAccountList(0)); //LOG.Info("=========== GetBlockType 더 이상 지원하지 않습니다"); //LOG.Info(_query.GetBlockType(szTrCode + "InBlock")); //LOG.Info("=========== GetResData"); //LOG.Info(_query.GetResData()); //LOG.Info("=========== GetBlockSize 더 이상 지원하지 않습니다."); //LOG.Info(_query.GetBlockSize(szTrCode + "OutBlock")); LOG.Info("=========== GetBlockCount"); LOG.Info(_query.GetBlockCount(szTrCode + "OutBlock")); LOG.Info("=========== GetBlockCount1"); LOG.Info(_query.GetBlockCount(szTrCode + "OutBlock1")); //LOG.Info("=========== GetFieldDescList 더 이상 지원하지 않습니다"); //LOG.Info(_query.GetFieldDescList(szTrCode + "InBlock")); LOG.Info("=========== GetLastError"); LOG.Info(_query.GetLastError()); //LOG.Info("=========== GetAccountListCount"); //LOG.Info(_query.GetAccountListCount()); LOG.Info("=========== GetTRCountBaseSec"); LOG.Info(_query.GetTRCountBaseSec(szTrCode)); LOG.Info("=========== GetTRCountRequest"); LOG.Info(_query.GetTRCountRequest(szTrCode)); LOG.Info("=========== GetTRCountLimit"); LOG.Info(_query.GetTRCountLimit(szTrCode)); LOG.Info("=========== GetTRCountPerSec"); LOG.Info(_query.GetTRCountPerSec(szTrCode)); LOG.Info("=========== IsNext"); LOG.Info(_query.IsNext); LOG.Info("=========== "); LOG.Info("------------end---------------"); var block = resModel.Blocks[szTrCode + "OutBlock"]; var meta = new _t4201OutBlock() { shcode = query.GetFieldData(block.Name, "shcode", 0), jisiga = long.Parse(query.GetFieldData(block.Name, "jisiga", 0)), jihigh = long.Parse(query.GetFieldData(block.Name, "jihigh", 0)), jilow = long.Parse(query.GetFieldData(block.Name, "jilow", 0)), jiclose = long.Parse(query.GetFieldData(block.Name, "jiclose", 0)), jivolume = long.Parse(query.GetFieldData(block.Name, "jivolume", 0)), disiga = long.Parse(query.GetFieldData(block.Name, "disiga", 0)), dihigh = long.Parse(query.GetFieldData(block.Name, "dihigh", 0)), dilow = long.Parse(query.GetFieldData(block.Name, "dilow", 0)), diclose = long.Parse(query.GetFieldData(block.Name, "diclose", 0)), highend = long.Parse(query.GetFieldData(block.Name, "highend", 0)), lowend = long.Parse(query.GetFieldData(block.Name, "lowend", 0)), cts_date = query.GetFieldData(block.Name, "cts_date", 0), cts_time = query.GetFieldData(block.Name, "cts_time", 0), cts_daygb = query.GetFieldData(block.Name, "cts_daygb", 0), }; var block1 = resModel.Blocks[szTrCode + "OutBlock1"]; writer.WriteHeader <_t4201OutBlock1>(); for (var i = 0; i < query.GetBlockCount(block1.Name); i++) { var result = new _t4201OutBlock1() { date = query.GetFieldData(block1.Name, "date", i), time = query.GetFieldData(block1.Name, "time", i), open = long.Parse(query.GetFieldData(block1.Name, "open", i)), high = long.Parse(query.GetFieldData(block1.Name, "high", i)), low = long.Parse(query.GetFieldData(block1.Name, "low", i)), close = long.Parse(query.GetFieldData(block1.Name, "close", i)), jdiff_vol = long.Parse(query.GetFieldData(block1.Name, "jdiff_vol", i)), value = long.Parse(query.GetFieldData(block1.Name, "value", i)), jongchk = long.Parse(query.GetFieldData(block1.Name, "jongchk", i)), rate = decimal.Parse(query.GetFieldData(block1.Name, "rate", i)), pricechk = long.Parse(query.GetFieldData(block1.Name, "pricechk", i)), ratevalue = long.Parse(query.GetFieldData(block1.Name, "ratevalue", i)), }; writer.NextRecord(); writer.WriteRecord(result); } Thread.Sleep(1000); if (_query.IsNext) { _inBlock.cts_date = meta.cts_date; _inBlock.cts_time = meta.cts_time; _inBlock.cts_daygb = meta.cts_daygb; InBlock(meta.shcode, _query.IsNext); } else { _codeIdx++; if (codes.Count > _codeIdx) { var code = codes.ElementAt(_codeIdx); InBlock(code); } else { //TODO next callback hell } } }
protected abstract void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer);
/// <summary> /// 생성자 - 종목검색 /// </summary> public xing_tr_1833() { IConnectionPoint icp; IConnectionPointContainer icpc; int iCookie = 0; mTr = new XAQuery(); mTr.ResFileName = "\\res\\t1833.res"; icpc = (IConnectionPointContainer)mTr; Guid IID_QueryEvents = typeof(_IXAQueryEvents).GUID; icpc.FindConnectionPoint(ref IID_QueryEvents, out icp); icp.Advise(this, out iCookie); // json 초기화 mJson = new JsonObjectCollection(); #region 1833 종목 검색을 위한 파일 설정 로딩 string[] files = setting.t1833_files.Split('■'); foreach (string filename in files) { if (filename.IndexOf("21_") == 0) { mFile21.Add(filename); } else if (filename.IndexOf("22_") == 0) { mFile22.Add(filename); } else if (filename.IndexOf("42_") == 0) { mFile42.Add(filename); } } #endregion #region 1833 종목 검색후 당일 종목마다 가지고 있어야할 종목 정보 처리 string date_saved = Properties.Settings.Default.T1833_DATE; string date_now = util_datetime.GetFormatNow("yyyyMMdd"); // 오늘 프로그램이 실행된적이 있다면... if (date_now == date_saved) { // 설정파일에 저장된 값을 로딩 try { mT1833Json = (JsonObjectCollection) new JsonTextParser().Parse(Properties.Settings.Default.T1833_JSON); } // 설정 파일에 잘못된 json 값이 들어가 있을 경우 예외 처리 catch (Exception ex) { // json 초기화 mT1833Json = new JsonObjectCollection(); mPiboJson = new JsonObjectCollection(); Log.WriteLine("t1833 종목 계산 정보 json 초기화 :: " + ex.Message); } } // 오늘 처음 실행되는 것이라면.. else { // json 초기화 mT1833Json = new JsonObjectCollection(); mPiboJson = new JsonObjectCollection(); // 설정파일에 금일 날짜값 저장 Properties.Settings.Default.T1833_DATE = date_now; Properties.Settings.Default.Save(); } #endregion } // end function
protected override void OutBlock(ResModel resModel, IXAQuery query, CsvHelper.CsvWriter writer) { var szTrCode = resModel.Name; var block = resModel.Blocks[szTrCode + "OutBlock"]; writer.WriteHeader <_t8435OutBlock>(); for (var i = 0; i < query.GetBlockCount(block.Name); i++) { var result = new _t8435OutBlock() { hname = query.GetFieldData(block.Name, "hname", i), shcode = query.GetFieldData(block.Name, "shcode", i), expcode = query.GetFieldData(block.Name, "expcode", i), }; writer.NextRecord(); writer.WriteRecord(result); switch (_inBlock.gubun) { case "MF": Constants.CodeFutures.Add(result.shcode, new CodeFutures() { UnderlyingAssetsCategory = "KOSPI200", UnderlyingAssetsCode = "101", Category = "MF", Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, //TODO Listing, Expirationdate ListingDate = "", ExpirationDate = "", }); break; case "MO": Constants.CodeOptions.Add(result.shcode, new CodeOptions() { UnderlyingAssetsCategory = "KOSPI200", UnderlyingAssetsCode = "101", Category = "OP", Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, //TODO Listing, Expirationdate ListingDate = "", ExpirationDate = "", }); break; case "WK": Constants.CodeOptions.Add(result.shcode, new CodeOptions() { UnderlyingAssetsCategory = "KOSPI200", UnderlyingAssetsCode = "101", Category = "WK", Name = result.hname, Code = result.shcode, ExpandedCode = result.expcode, //TODO Listing, Expirationdate ListingDate = "", ExpirationDate = "", }); break; default: break; } } }