Example #1
0
    public static IncreaseStockRec ConvertFromString(string str)
    {
        var Array = str.Split("\t");
        var c     = new IncreaseStockRec();

        c.Id            = Array[0];
        c.PublishTarget = Array[1];
        if (Array.Length > 2)
        {
            c.IncreaseNumber = Array[2];
        }
        if (Array.Length > 3)
        {
            c.IncreaseMoney = Array[3];
        }
        if (Array.Length > 4)
        {
            c.FreezeYear = Array[4];
        }
        if (Array.Length > 5)
        {
            c.BuyMethod = Array[5];
        }
        return(c);
    }
Example #2
0
    public static void InitIncreaseStock()
    {
        var sr = new StreamReader(IncreaseStockPath_TRAIN);

        while (!sr.EndOfStream)
        {
            IncreaseStockList.Add(IncreaseStockRec.ConvertFromString(sr.ReadLine()));
        }
        Console.WriteLine("定增标准结果数:" + IncreaseStockList.Count);
        sr.Close();
    }
Example #3
0
    public override List <RecordBase> Extract()
    {
        //认购方式
        var buyMethod = getBuyMethod(root);
        //样本
        var increaseStock = new IncreaseStockRec();

        increaseStock.Id        = Id;
        increaseStock.BuyMethod = buyMethod;
        var list = GetMultiTarget(root, increaseStock);

        return(list);
    }
Example #4
0
    List <RecordBase> GetMultiTarget(HTMLEngine.MyRootHtmlNode root, IncreaseStockRec SampleincreaseStock)
    {
        var PublishTarget = new TableSearchTitleRule();

        PublishTarget.Name = "认购对象";
        //"投资者名称","股东名称"
        PublishTarget.Title     = new string[] { "发行对象", "认购对象", "发行对象名称" }.ToList();
        PublishTarget.IsTitleEq = true;
        PublishTarget.IsRequire = true;

        var IncreaseNumber = new TableSearchTitleRule();

        IncreaseNumber.Name      = "增发数量";
        IncreaseNumber.Title     = new string[] { "配售股数", "认购数量", "认购股数", "认购股份数", "发行股份数", "配售数量" }.ToList();
        IncreaseNumber.IsTitleEq = false;             //包含即可
        IncreaseNumber.Normalize = NumberUtility.NormalizerStockNumber;

        var IncreaseMoney = new TableSearchTitleRule();

        IncreaseMoney.Name      = "增发金额";
        IncreaseMoney.Title     = new string[] { "配售金额", "认购金额", "获配金额" }.ToList();
        IncreaseMoney.IsTitleEq = false;             //包含即可
        IncreaseMoney.Normalize = MoneyUtility.Format;

        var FreezeYear = new TableSearchTitleRule();

        FreezeYear.Name      = "锁定期";
        FreezeYear.Title     = new string[] { "锁定期", "限售期" }.ToList();
        FreezeYear.IsTitleEq = false;             //包含即可
        FreezeYear.Normalize = NormalizerFreezeYear;

        var BuyPrice = new TableSearchTitleRule();

        BuyPrice.Name      = "价格";
        BuyPrice.Title     = new string[] { "认购价格", "配售价格", "申购报价" }.ToList();
        BuyPrice.IsTitleEq = false;             //包含即可
        BuyPrice.Normalize = MoneyUtility.Format;

        var Rules = new List <TableSearchTitleRule>();

        Rules.Add(PublishTarget);
        Rules.Add(IncreaseNumber);
        Rules.Add(IncreaseMoney);
        Rules.Add(FreezeYear);
        Rules.Add(BuyPrice);
        var result            = HTMLTable.GetMultiInfoByTitleRules(root, Rules, true);
        var increaseStocklist = new List <RecordBase>();

        foreach (var item in result)
        {
            var increase = new IncreaseStockRec();
            increase.Id            = SampleincreaseStock.Id;
            increase.BuyMethod     = SampleincreaseStock.BuyMethod;
            increase.PublishTarget = item[0].RawData;
            if (String.IsNullOrEmpty(increase.PublishTarget))
            {
                continue;
            }
            increase.PublishTarget = increase.PublishTarget.NormalizeTextResult();

            increase.IncreaseNumber = item[1].RawData;
            if (!String.IsNullOrEmpty(increase.IncreaseNumber) && increase.IncreaseNumber.Equals("0"))
            {
                continue;
            }
            if (!String.IsNullOrEmpty(increase.IncreaseNumber) && increase.IncreaseNumber.Contains("|"))
            {
                increase.IncreaseNumber = increase.IncreaseNumber.Split("|").Last();
            }
            increase.IncreaseMoney = item[2].RawData;
            if (!String.IsNullOrEmpty(increase.IncreaseMoney) && increase.IncreaseMoney.Equals("0"))
            {
                continue;
            }
            if (!String.IsNullOrEmpty(increase.IncreaseMoney) && increase.IncreaseMoney.Contains("|"))
            {
                increase.IncreaseMoney = increase.IncreaseMoney.Split("|").Last();
            }

            //手工计算金额
            if (String.IsNullOrEmpty(increase.IncreaseMoney))
            {
                if (!String.IsNullOrEmpty(increase.IncreaseNumber))
                {
                    if (!String.IsNullOrEmpty(item[4].RawData))
                    {
                        double price;
                        if (double.TryParse(item[4].RawData, out price))
                        {
                            double number;
                            if (double.TryParse(increase.IncreaseNumber, out number))
                            {
                                double money = price * number;
                                if (!Program.IsMultiThreadMode)
                                {
                                    Program.Logger.WriteLine("通过计算获得金额:" + money.ToString());
                                }
                            }
                        }
                    }
                }
            }

            increase.FreezeYear = item[3].RawData;
            increaseStocklist.Add(increase);
        }
        return(increaseStocklist);
    }