Ejemplo n.º 1
0
        public static List <Trade> Excel()
        {
            string    path         = @"http://members.tsetmc.com/tsev2/excel/MarketWatchPlus.aspx?d=0";
            var       physicalPath = HostingEnvironment.MapPath("~/xlsx");
            var       fileName     = @"file.xlsx";
            string    localPath    = string.Format(@"{0}/{1}", physicalPath, fileName);
            WebClient wc           = new WebClient();

            var request = (HttpWebRequest)WebRequest.Create(path);

            request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            request.Headers[HttpRequestHeader.AcceptEncoding] = "gzip,deflate";
            using (var response = request.GetResponse())
                using (var stream = response.GetResponseStream())
                    using (var output = File.Create(localPath))
                    {
                        stream.CopyTo(output);
                    }

            DataTable rs   = new DataTable();
            var       list = new List <Trade>();

            using (var odConnection = new OleDbConnection(string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';", localPath)))
            {
                odConnection.Open();

                using (OleDbCommand cmd = new OleDbCommand())
                {
                    cmd.Connection  = odConnection;
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = "SELECT * FROM [دیده بان بازار$]";
                    using (OleDbDataAdapter oleda = new OleDbDataAdapter(cmd))
                    {
                        oleda.Fill(rs);
                    }
                }

                odConnection.Close();
                string username = "******";
                string password = "******";
                var    days     = new TseDayCollectionGenerator().GenerateToday();
                list = GetLastDayTrades(username, password, 1).ToList();
                rs.Rows[0].Delete();
                rs.Rows[1].Delete();
                rs.AcceptChanges();
                foreach (var row in rs.Rows.Cast <DataRow>())
                {
                    var trade = list.Where(t => t.LVal18AFC.Contains(row[0].ToString())).FirstOrDefault();
                    if (trade != null)
                    {
                        trade.PbE = string.IsNullOrEmpty(row[16].ToString()) ? 0 :  Convert.ToDecimal(row[16].ToString().Replace('/', '.'));
                        trade.EPS = string.IsNullOrEmpty(row[15].ToString()) ? 0 : Convert.ToDecimal(row[15].ToString());
                    }
                }
            }

            return(list);
        }
Ejemplo n.º 2
0
        public List <Trade> GetAllowed(AllowedMarketFilter filter)
        {
            var days             = new TseDayCollectionGenerator().GenerateToday();
            var todayTrades      = GetLastDayTrades(username, password, filter.Market).ToList();
            var twoDaysAgoTrades = GetSpecdayTrades(username, password, days.TwoDaysAgo, filter.Market).ToList();
            var yesterdayTrades  = GetSpecdayTrades(username, password, days.Yesterday, filter.Market).ToList();

            var twoDaysAgoAllowed = twoDaysAgoTrades.Where(t
                                                           => t.DailyChange < filter.YesterdayAllowedChange).ToList();
            var yesterdayAllowed = yesterdayTrades.Where(t
                                                         => twoDaysAgoAllowed.Contains(t) && t.DailyChange > filter.YesterdayAllowedChange).ToList();

            var todayAllowedTrades = todayTrades.Where(t
                                                       => yesterdayAllowed.Contains(t) && t.DailyChange > filter.PositiveMinChange && t.DailyChange < filter.PositiveMaxChange).ToList();

            return(todayAllowedTrades);
        }
Ejemplo n.º 3
0
        public List <Trade> GetAllowed(FilterByPBEParamModel filter)
        {
            var allSymbolInfo = ExcelParser.Excel();

            var days               = new TseDayCollectionGenerator().GenerateToday();
            var todayTrades        = GetLastDayTrades(username, password, filter.Market).ToList();
            var yesterdayTrades    = GetSpecdayTrades(username, password, days.Yesterday, filter.Market).ToList();
            var twodaysagoTrades   = GetSpecdayTrades(username, password, days.TwoDaysAgo, filter.Market).ToList();
            var threedaysagoTrades = GetSpecdayTrades(username, password, days.ThreeDaysAgo, filter.Market).ToList();


            var threedaysagoAllowed = threedaysagoTrades.Where(t
                                                               => t.DailyChange < filter.LastDaysAllowedChange).ToList();
            var twodaysagoAllowed = twodaysagoTrades.Where(t
                                                           => threedaysagoAllowed.Contains(t) && t.DailyChange < filter.LastDaysAllowedChange).ToList();
            var yesterdayAllowed = yesterdayTrades.Where(t
                                                         => twodaysagoAllowed.Contains(t) && t.DailyChange < filter.LastDaysAllowedChange).ToList();
            var todayAllowedTrades = todayTrades.Where(t
                                                       => yesterdayAllowed.Contains(t) && t.DailyChange < filter.TodayAllowedChange).ToList();
            var allowed = allSymbolInfo.Where(t
                                              => todayAllowedTrades.Contains(t) && t.PbE > filter.PbeMinChange && t.PbE < filter.PbeMaxChange).OrderByDescending(o => o.PbE).ThenByDescending(o => o.DailyChange).ToList();

            return(allowed);
        }