示例#1
0
        public StockTradeDetails LoadDetailDatas()
        {
            PrpTradeDetailParser parser = new PrpTradeDetailParser(Settings.Default.PrpDataFile);
            var std = parser.GetOneStockTradeDetail(shareId);

            return(std);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        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);
            }
        }