示例#1
0
        /// <summary>
        /// 呼叫api
        /// </summary>
        /// <param name="data">拉取股票資訊</param>
        /// <param name="SreachDate">拉取日期(沒有則預設今日)</param>
        /// <returns></returns>
        private async Task <JObject> StockApi_Call(StockIDModel data, DateTime?SreachDate = null)
        {
            string NowSearchDate = "";

            if (SreachDate == null)
            {
                NowSearchDate = DateTime.Now.ToString("yyyyMMdd");
            }
            else
            {
                NowSearchDate = Convert.ToDateTime(SreachDate).ToString("yyyyMMdd");
            }
            _log.Log($"拉取{data.StockID}-{data.StockName}-{NowSearchDate}的股票資訊");
            string GetString = $"{_config["StockInfo:APIUrl"].ToString()}?response=json&date={NowSearchDate}&stockNo={data.StockID}";

            _log.Log(GetString, ConsoleColor.Green);
            string ApiResult = await _api.Get_async(GetString);

            JObject CallResult = null;

            if (!string.IsNullOrEmpty(ApiResult))
            {
                CallResult = JObject.Parse(ApiResult);
            }
            return(CallResult);
        }
示例#2
0
        private async Task MainForceInOut_Get(StockIDModel data)
        {
            _Log.Log("開始拉取主力買賣資訊");
            HtmlDocument MainForceInOutHtmlInfo = await MainForceInOutHtmlInfo_Get(data.StockID);

            List <MainForceInOutInfo> MainForceInOutInfoList = MainForceInOutData_Analysis(MainForceInOutHtmlInfo, data.StockID);

            MainForceInOutData_Save(MainForceInOutInfoList);
            _Log.Log("拉取主力買賣資訊結束");
        }
示例#3
0
        private List <StockInfo> DownloadData_Analysis(JObject APIResult, StockIDModel StockData)
        {
            List <StockInfo> StockInfoList = new List <StockInfo>();

            if (APIResult.Property("stat") != null && APIResult["stat"].ToString() == "OK")
            {
                _Log.Log($"拉取成功,開始拆解json", ConsoleColor.Green);
                JProperty Data = APIResult.Property("data");
                if (Data != null)
                {
                    //StockInfo StockInfoData;
                    //DateTime dateout;
                    decimal convertout;
                    StockInfoList = Data.Value.AsJEnumerable().Select(x =>
                                                                      new StockInfo {
                        StockID           = StockData.StockID,
                        Date              = DateTime.ParseExact(x[0].ToString(), "yyy/MM/dd", CultureInfo.InvariantCulture).AddYears(1911),
                        TradingVolume     = decimal.TryParse(x[1].ToString().Replace(",", ""), out convertout) ? convertout : 0,
                        Turnover          = decimal.TryParse(x[2].ToString().Replace(",", ""), out convertout) ? convertout : 0,
                        OpeningPrice      = decimal.TryParse(x[3].ToString(), out convertout) ? convertout : 0,
                        HighestPrice      = decimal.TryParse(x[4].ToString(), out convertout) ? convertout : 0,
                        LowestPrice       = decimal.TryParse(x[5].ToString(), out convertout) ? convertout : 0,
                        ClosingPrice      = decimal.TryParse(x[6].ToString(), out convertout) ? convertout : 0,
                        Spreads           = decimal.TryParse(x[7].ToString(), out convertout) ? convertout : 0,
                        TransactionAmount = decimal.TryParse(x[8].ToString().Replace(",", ""), out convertout) ? convertout : 0,
                    }).ToList();
                    //foreach (JArray data in APIResult.Property("data").Value)
                    //{
                    //    StockInfoData = new StockInfo();
                    //    StockInfoData.StockID = StockData.StockID;
                    //    DateTime Datec = DateTime.ParseExact(data[0].ToString(), "yyy/MM/dd", CultureInfo.InvariantCulture).AddYears(1911);
                    //    StockInfoData.Date = Datec;
                    //    //DateTime.TryParse(data[0].ToString(),out dateout)?new DateTime(): dateout;
                    //    StockInfoData.TradingVolume = decimal.TryParse(data[1].ToString().Replace(",", ""), out convertout) ? convertout : 0;
                    //    StockInfoData.Turnover = decimal.TryParse(data[2].ToString().Replace(",", ""), out convertout) ? convertout : 0;
                    //    StockInfoData.OpeningPrice = decimal.TryParse(data[3].ToString(), out convertout) ? convertout : 0;
                    //    StockInfoData.HighestPrice = decimal.TryParse(data[4].ToString(), out convertout) ? convertout : 0;
                    //    StockInfoData.LowestPrice = decimal.TryParse(data[5].ToString(), out convertout) ? convertout : 0;
                    //    StockInfoData.ClosingPrice = decimal.TryParse(data[6].ToString(), out convertout) ? convertout : 0;
                    //    StockInfoData.Spreads = decimal.TryParse(data[7].ToString(), out convertout) ? convertout : 0;
                    //    StockInfoData.TransactionAmount = decimal.TryParse(data[8].ToString().Replace(",", ""), out convertout) ? convertout : 0;
                    //    StockInfoList.Add(StockInfoData);
                    //}
                }
            }
            _Log.Log($"拆解結束,共 {StockInfoList.Count} 筆");
            return(StockInfoList);
        }
示例#4
0
        private async Task <JObject> StockApi_Call(StockIDModel data, string SreachDate = null)
        {
            if (string.IsNullOrEmpty(SreachDate))
            {
                SreachDate = DateTime.Now.ToString("yyyyMMdd");
            }
            _Log.Log($"拉取{data.StockID}-{data.StockName}-{SreachDate}的股票資訊");
            string GetString = $"{_Configuration["StockInfo:APIUrl"].ToString()}?response=json&date={SreachDate}&stockNo={data.StockID}";

            _Log.Log(GetString, ConsoleColor.Green);
            string ApiResult = await _api.Get_async(GetString);

            JObject CallResult = null;

            if (!string.IsNullOrEmpty(ApiResult))
            {
                CallResult = JObject.Parse(ApiResult);
            }
            return(CallResult);
        }
示例#5
0
        /// <summary>
        /// 拆解檔案內容
        /// </summary>
        /// <param name="APIResult">Api呼叫結果</param>
        /// <param name="StockData">取得股票資訊</param>
        /// <returns></returns>
        private async Task <IList <StockInfo> > DownloadData_Analysis(JObject APIResult, StockIDModel StockData)
        {
            List <Task <StockInfo> > Result = null;

            if (APIResult.Property("stat") != null && APIResult["stat"].ToString() == "OK")
            {
                Result = new List <Task <StockInfo> >();
                _log.Log($"拉取成功,開始拆解json", ConsoleColor.Green);
                if (APIResult.Property("data") != null)
                {
                    foreach (JArray data in APIResult.Property("data").Value)
                    {
                        Result.Add(StockInfoData_Proccess(data, StockData.StockID));
                    }
                }
            }
            //await Task.WhenAll<List<StockInfo>>();
            return(await Task.WhenAll(Result));
        }