public StockTradeDetails LoadDetailDatas() { PrpTradeDetailParser parser = new PrpTradeDetailParser(Settings.Default.PrpDataFile); var std = parser.GetOneStockTradeDetail(shareId); return(std); }
private Stock LoadMinStock(string sId, bool isMa) { if (!File.Exists(Settings.Default.PrpDataFile)) { return(null); } PrpTradeDetailParser parser = new PrpTradeDetailParser(Settings.Default.PrpDataFile); Stock s = null; var std = parser.GetOneStockTradeDetail(sId); if (!StockTradeDetails.IsNullOrEmpty(std) && std.DataCount > 10) { if (!isMa) { s = TradeDetails2Stock.Convert(std, CandlePeriod.min1); } else { s = TradeDetails2Stock.ConvertMA(std, CandlePeriod.min1); } } return(s); }
private static void LoadAndConvertStock(List <string> ids, PrpTradeDetailParser parser, string outputFile) { List <CompleteShare> shares = new List <CompleteShare>(); foreach (var id in ids) { var tds = parser.GetOneStockTradeDetail(GetId(id)); if (!StockTradeDetails.IsNullOrEmpty(tds)) { var stock = TradeDetails2Stock.Convert(tds, CandlePeriod.min1); var share = FromStock(new Stock(tds.id, stock.Data)); shares.Add(share); var stockMa = TradeDetails2Stock.ConvertMA(tds, CandlePeriod.min1); var shareMa = FromStock(new Stock(tds.id + "average", stockMa.Data)); shares.Add(shareMa); } } if (shares.Any()) { JsonSerializer jSer = new JsonSerializer(); if (File.Exists(outputFile)) { using (JsonTextReader reader = new JsonTextReader(new StreamReader( new FileStream(outputFile, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.UTF8))) { var oldShares = jSer.Deserialize <CompleteShare[]>(reader); shares.InsertRange(0, oldShares); } } using (JsonTextWriter writer = new JsonTextWriter(new StreamWriter( new FileStream(outputFile, FileMode.Create, FileAccess.ReadWrite, FileShare.None), Encoding.UTF8))) { jSer.Serialize(writer, shares); } } }
static void Main(string[] args) { if (args.Length < 4) { Usage(); return; } string dzhFolder = args[0]; string prpFile = null; if (!Directory.Exists(dzhFolder)) { if (!File.Exists(dzhFolder)) { Usage(); Console.WriteLine("Dzh folder not exist"); return; } else { prpFile = dzhFolder; dzhFolder = null; } } string outputFile = args[1]; var dirPath = Path.GetDirectoryName(outputFile); if (!Directory.Exists(dirPath)) { Usage(); Console.WriteLine("output folder not exist"); return; } List <string> ids = new List <string>(); string lTag = args[2]; if (!lTag.Equals("-l", StringComparison.OrdinalIgnoreCase)) { Usage(); return; } DateTime start = DateTime.Now.AddYears(-2), end = DateTime.Now; for (int i = 3; i < args.Length; i++) { if (args[i].Equals("-d", StringComparison.OrdinalIgnoreCase)) { if (i + 1 < args.Length) { start = DateTime.Parse(args[i + 1]); if (i + 2 < args.Length) { end = DateTime.Parse(args[i + 2]); } } break; } ids.Add(args[i]); } if (dzhFolder != null) { DZHFolderHelp helper = new DZHFolderHelp(dzhFolder, false); LoadAndConvertStock(ids, start, end, helper, outputFile); } else { PrpTradeDetailParser parser = new PrpTradeDetailParser(prpFile); LoadAndConvertStock(ids, parser, outputFile); } }