Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
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);
        }