예제 #1
0
        private MinDataFileParser GetParser(Market market, DZHFolderHelp help)
        {
            MinDataFileParser parser = null;

            switch (market)
            {
            case Market.SH:
                parser = help.DayParserSH;
                break;

            case Market.SZ:
                parser = help.DayParserSZ;
                break;

            case Market.BS:
                parser = help.DayParserBS;
                break;

            default:
                parser = help.DayParserSH;
                break;
            }

            return(parser);
        }
예제 #2
0
 private void LoadDzh()
 {
     if (!string.IsNullOrEmpty(Settings.Default.DzhFolder))
     {
         DZHFolderHelp helper = new DZHFolderHelp(Settings.Default.DzhFolder, false);
         this.Application.Add(dzhKey, helper);
     }
 }
예제 #3
0
 private async void OnLoaded(object sender, RoutedEventArgs e)
 {
     helper = new DZHFolderHelp(Settings.Default.DzhFolder, false);
     //ViewModel.IsTime = true;
     //QueryTime();
     //QueryCandleRunning();
     //QueryTimeRunning2();
     QueryStock();
 }
예제 #4
0
        private static MinDataFileParser GetDayParser(string id, DZHFolderHelp helper)
        {
            MinDataFileParser parser = null;

            if (id.StartsWith(sh, StringComparison.OrdinalIgnoreCase))
            {
                parser = helper.DayParserSH;
            }
            else if (id.StartsWith(sz, StringComparison.OrdinalIgnoreCase))
            {
                parser = helper.DayParserSZ;
            }
            else if (id.StartsWith(sb, StringComparison.OrdinalIgnoreCase))
            {
                parser = helper.DayParserBS;
            }
            else
            {
                parser = helper.DayParserSH;
            }

            return(parser);
        }
예제 #5
0
        private static void LoadAndConvertStock(List <string> ids, DateTime start, DateTime end, DZHFolderHelp helper, string outputFile)
        {
            List <CompleteShare> shares = new List <CompleteShare>();

            foreach (var id in ids)
            {
                var dataParser = GetDayParser(id, helper);
                var stock      = dataParser.GetOneStock(GetId(id), start, end);

                if (stock != null)
                {
                    var share = FromStock(stock);
                    shares.Add(share);
                }
            }

            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);
                }
            }
        }
예제 #6
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);
            }
        }
예제 #7
0
 public MainViewModel()
 {
     helper  = new DZHFolderHelp(Settings.Default.DzhFolder, false);
     shareId = "000001";
 }