private void CreateTradeCalendarManager() { string dbConnStr = ConfigurationManager.ConnectionStrings["KLineDB"].ConnectionString; if (string.IsNullOrEmpty(dbConnStr)) { throw new ArgumentException("Not found KLineDB ConnectionString"); } string alpahDBName = ConfigurationManager.AppSettings["AlphaDBName"]; if (string.IsNullOrEmpty(alpahDBName)) { throw new ArgumentException("Not foun AlphaDBName config"); } try { TradeCalendarManager tradeCalendarManager = new TradeCalendarManager(dbConnStr, alpahDBName); tradeCalendarManager.Initialize(DateTime.Today, DateTime.Today.AddDays(15)); m_tradeCalendarManager = tradeCalendarManager; } catch (Exception ex) { throw new ArgumentException("初始化交易日历失败," + ex.Message); } }
public FileKLineStoreage(string storageName, string kLineFolderPath, TradeCalendarManager tradeCalendarManager) : base(storageName) { if (string.IsNullOrEmpty(kLineFolderPath)) { throw new ArgumentNullException("kLineFolderPath"); } m_kLineFolderPath = kLineFolderPath; if (Directory.Exists(kLineFolderPath) == false) { Directory.CreateDirectory(kLineFolderPath); } m_fileStorerDic = new Dictionary <string, FileStorer>(); m_tradeCalendar = tradeCalendarManager; }
public FileMarketDataStorage(string marketDataFolderPath, TradeCalendarManager tradeCalendarManager) { if (string.IsNullOrEmpty(marketDataFolderPath)) { throw new ArgumentNullException("kLineFolderPath"); } m_marketDataFolderPath = marketDataFolderPath; if (Directory.Exists(marketDataFolderPath) == false) { Directory.CreateDirectory(marketDataFolderPath); } m_fileStorerDic = new Dictionary <string, FileStorer>(); m_eventLogger = new NullLogger("MarketDataFileStorage<NULL>"); m_marketDataQueue = new ConcurrentQueue <USeMarketData>(); m_tradeCalendar = tradeCalendarManager; }
/// <summary> /// 启动计算主力合约方法。 /// </summary> /// <returns></returns> public int Run() { string text = string.Empty; try { TradeCalendarManager tradeCalendarManager = new TradeCalendarManager(m_dbConnStr, m_alpahDBName); tradeCalendarManager.Initialize(); m_tradingDateManager = tradeCalendarManager; text = "初始化交易日历成功"; m_logger.WriteInformation(text); USeConsole.WriteLine(text); } catch (Exception ex) { text = string.Format("初始化交易日历失败,错误:{0}.", ex.Message); m_logger.WriteError(text); USeConsole.WriteLine(text); return(-1); } try { m_varietiesList = GetAllVarieties(); text = "加载品种信息成功"; m_logger.WriteInformation(text); USeConsole.WriteLine(text); } catch (Exception ex) { text = "加载品种信息失败," + ex.Message; m_logger.WriteError(text); USeConsole.WriteLine(text); return(-1); } if (m_dayType == SettlementDayType.Today) { //当日主力合约计算先检查基础数据状态,基础数据就绪后在计算主力合约 if (CheckTodayBaseDataIsReady() == false) { text = string.Format("{0:yyyy-MM-dd}基础数据未就绪,无法计算", m_beginDate); m_logger.WriteError(text); USeConsole.WriteLine(text); return(-2); } text = string.Format("{0:yyyy-MM-dd}基础数据已就绪,开始计算主力合约", m_beginDate); m_logger.WriteInformation(text); USeConsole.WriteLine(text); } List <ErrorVarieties> errorList = new List <ErrorVarieties>(); CalculateMainContract(m_beginDate, m_endDate, errorList); if (errorList.Count > 0) { foreach (ErrorVarieties errorItem in errorList) { text = errorItem.ToString(); m_logger.WriteInformation(text); USeConsole.WriteLine(text); } return(-2); } return(0); }
/// <summary> /// 开始启动 /// </summary> public int Start() { //获取配置文件 { try { if (false == ReadConfig()) { return(-1); } } catch (Exception ex) { string info = "基础数据:配置文件加载失败" + ex.Message; m_eventLogger.WriteInformation(info); WriteConsoleLog(info); return(-1); } } //加载交易日历 try { TradeCalendarManager tradeCalendarManager = new TradeCalendarManager(m_dbConnStr, m_alphaDBName); tradeCalendarManager.Initialize(DateTime.Today.AddDays(-150), DateTime.Today); m_tradeCalendarManager = tradeCalendarManager; } catch (Exception ex) { throw new ArgumentException("初始化交易日历失败," + ex.Message); } //加载log日志 { try { m_eventLogger = AppLogger.InitInstance(); } catch { m_eventLogger = new NullLogger("DownloadProcessor_DefaultLogger"); } m_eventLogger.LineFeed(); string text = "开始用结算价更新资金沉淀任务服务"; m_eventLogger.WriteInformation(text); WriteConsoleLog(text); } //获取合约列表详情 { try { m_insDetailList = GetInsDetailList(); } catch (Exception ex) { string info = "基础数据:获取合约详情列表失败" + ex.Message; m_eventLogger.WriteInformation(info); WriteConsoleLog(info); return(-1); } } { try { List <USeKLine> klineList = GetTodayDayKlineList(DateTime.Today.AddDays(-20)); RefreashSendimentaryMoney(klineList); } catch (Exception ex) { string info = "服务:获取当天交易日K线数据,更新资金沉淀失败" + ex.Message; m_eventLogger.WriteInformation(info); WriteConsoleLog(info); return(-1); } } return(0); }