我正在努力寻找一种将 IPO 股票从雅虎金融 API 中撤出的方法

     2023-02-24     139

关键词:

【中文标题】我正在努力寻找一种将 IPO 股票从雅虎金融 API 中撤出的方法【英文标题】:I am struggling finding a way to pull IPO stocks out of the yahoo finance api 【发布时间】:2016-07-16 16:21:05 【问题描述】:

我对 Alamofire 很陌生,我正在尝试找到一种方法,只在搜索队列中显示 IPO,而不是在雅虎财务数据库中显示每只股票。有没有一种方法可以限制日期和时间戳显示的结果。作为参考,我使用了很多 swift 股票代码/示例,所以我希望有人能提供帮助。谢谢。我放了一些来自 yahoo api 的代码。我希望只显示特定价格的股票和/或按日期显示相对较新的股票。谢谢你。

import UIKit

导入 Alamofire

结构库存搜索结果 var 符号:字符串? 变量名称:字符串? var 交换:字符串? 变量资产类型:字符串?

结构库存

var ask: String?
var averageDailyVolume: String?
var bid: String?
var bookValue: String?
var changeNumeric: String?
var changePercent: String?
var dayHigh: String?
var dayLow: String?
var dividendShare: String?
var dividendYield: String?
var ebitda: String?
var epsEstimateCurrentYear: String?
var epsEstimateNextQtr: String?
var epsEstimateNextYr: String?
var eps: String?
var fiftydayMovingAverage: String?
var lastTradeDate: String?
var last: String?
var lastTradeTime: String?
var marketCap: String?
var companyName: String?
var oneYearTarget: String?
var open: String?
var pegRatio: String?
var peRatio: String?
var previousClose: String?
var priceBook: String?
var priceSales: String?
var shortRatio: String?
var stockExchange: String?
var symbol: String?
var twoHundreddayMovingAverage: String?
var volume: String?
var yearHigh: String?
var yearLow: String?

var dataFields: [[String : String]]

结构图点 变量日期:NSDate? var 音量:整数? var open: CGFloat? var close: CGFloat? var 低:CGFloat? var high: CGFloat?

枚举 ChartTimeRange 案例 OneDay, FiveDays, TenDays, OneMonth, ThreeMonths, OneYear, FiveYears

类 SwiftStockKit

class func fetchStocksFromSearchTerm(term term: String, completion:(stockInfoArray: [StockSearchResult]) -> ()) 
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) 

        let searchURL = "http://autoc.finance.yahoo.com/autoc"

        Alamofire.request(.GET, searchURL, parameters: ["query": term, "region": 2, "lang": "en"]).responseJSON  response in

            if let resultJSON = response.result.value as? [String : AnyObject]  

                if let jsonArray = (resultJSON["ResultSet"] as! [String : AnyObject])["Result"] as? [[String : String]] 

                    var stockInfoArray = [StockSearchResult]()
                    for dictionary in jsonArray 
                        stockInfoArray.append(StockSearchResult(symbol: dictionary["symbol"], name: dictionary["name"], exchange: dictionary["exchDisp"], assetType: dictionary["typeDisp"]))
                    

                    dispatch_async(dispatch_get_main_queue()) 
                        completion(stockInfoArray: stockInfoArray)
                    
                
            
        
    


class func fetchStockForSymbol(symbol symbol: String, completion:(stock: Stock) -> ()) 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) 

        let stockURL = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22\(symbol)%22)&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&format=json"

        Alamofire.request(.GET, stockURL).responseJSON  response in

            if let resultJSON = response.result.value as? [String : AnyObject]  

                if let stockData = ((resultJSON["query"] as! [String : AnyObject])["results"] as! [String : AnyObject])["quote"] as? [String : AnyObject] 

                    // lengthy creation, yeah
                    var dataFields = [[String : String]]()

                    dataFields.append(["Ask" : stockData["Ask"] as? String ?? "N/A"])
                    dataFields.append(["Average Daily Volume" : stockData["AverageDailyVolume"] as? String ?? "N/A"])
                    dataFields.append(["Bid" : stockData["Bid"] as? String ?? "N/A"])
                    dataFields.append(["Book Value" : stockData["BookValue"] as? String ?? "N/A"])
                    dataFields.append(["Change" : stockData["Change"] as? String ?? "N/A"])
                    dataFields.append(["Percent Change" : stockData["ChangeinPercent"] as? String ?? "N/A"])
                    dataFields.append(["Day High" : stockData["DaysHigh"] as? String ?? "N/A"])
                    dataFields.append(["Day Low" : stockData["DaysLow"] as? String ?? "N/A"])
                    dataFields.append(["Div/Share" : stockData["DividendShare"] as? String ?? "N/A"])
                    dataFields.append(["Div Yield" : stockData["DividendYield"] as? String ?? "N/A"])
                    dataFields.append(["EBITDA" : stockData["EBITDA"] as? String ?? "N/A"])
                    dataFields.append(["Current Yr EPS Estimate" : stockData["EPSEstimateCurrentYear"] as? String ?? "N/A"])
                    dataFields.append(["Next Qtr EPS Estimate" : stockData["EPSEstimateNextQuarter"] as? String ?? "N/A"])
                    dataFields.append(["Next Yr EPS Estimate" : stockData["EPSEstimateNextYear"] as? String ?? "N/A"])
                    dataFields.append(["Earnings/Share" : stockData["EarningsShare"] as? String ?? "N/A"])
                    dataFields.append(["50D MA" : stockData["FiftydayMovingAverage"] as? String ?? "N/A"])
                    dataFields.append(["Last Trade Date" : stockData["LastTradeDate"] as? String ?? "N/A"])
                    dataFields.append(["Last" : stockData["LastTradePriceOnly"] as? String ?? "N/A"])
                    dataFields.append(["Last Trade Time" : stockData["LastTradeTime"] as? String ?? "N/A"])
                    dataFields.append(["Market Cap" : stockData["MarketCapitalization"] as? String ?? "N/A"])
                    dataFields.append(["Company" : stockData["Name"] as? String ?? "N/A"])
                    dataFields.append(["One Yr Target" : stockData["OneyrTargetPrice"] as? String ?? "N/A"])
                    dataFields.append(["Open" : stockData["Open"] as? String ?? "N/A"])
                    dataFields.append(["PEG Ratio" : stockData["PEGRatio"] as? String ?? "N/A"])
                    dataFields.append(["PE Ratio" : stockData["PERatio"] as? String ?? "N/A"])
                    dataFields.append(["Previous Close" : stockData["PreviousClose"] as? String ?? "N/A"])
                    dataFields.append(["Price-Book" : stockData["PriceBook"] as? String ?? "N/A"])
                    dataFields.append(["Price-Sales" : stockData["PriceSales"] as? String ?? "N/A"])
                    dataFields.append(["Short Ratio" : stockData["ShortRatio"] as? String ?? "N/A"])
                    dataFields.append(["Stock Exchange" : stockData["StockExchange"] as? String ?? "N/A"])
                    dataFields.append(["Symbol" : stockData["Symbol"] as? String ?? "N/A"])
                    dataFields.append(["200D MA" : stockData["TwoHundreddayMovingAverage"] as? String ?? "N/A"])
                    dataFields.append(["Volume" : stockData["Volume"] as? String ?? "N/A"])
                    dataFields.append(["52w High" : stockData["YearHigh"] as? String ?? "N/A"])
                    dataFields.append(["52w Low" : stockData["YearLow"] as? String ?? "N/A"])

                    let stock = Stock(
                        ask: dataFields[0].values.first,
                        averageDailyVolume: dataFields[1].values.first,
                        bid: dataFields[2].values.first,
                        bookValue: dataFields[3].values.first,
                        changeNumeric: dataFields[4].values.first,
                        changePercent: dataFields[5].values.first,
                        dayHigh: dataFields[6].values.first,
                        dayLow: dataFields[7].values.first,
                        dividendShare: dataFields[8].values.first,
                        dividendYield: dataFields[9].values.first,
                        ebitda: dataFields[10].values.first,
                        epsEstimateCurrentYear: dataFields[11].values.first,
                        epsEstimateNextQtr: dataFields[12].values.first,
                        epsEstimateNextYr: dataFields[13].values.first,
                        eps: dataFields[14].values.first,
                        fiftydayMovingAverage: dataFields[15].values.first,
                        lastTradeDate: dataFields[16].values.first,
                        last: dataFields[17].values.first,
                        lastTradeTime: dataFields[18].values.first,
                        marketCap: dataFields[19].values.first,
                        companyName: dataFields[20].values.first,
                        oneYearTarget: dataFields[21].values.first,
                        open: dataFields[22].values.first,
                        pegRatio: dataFields[23].values.first,
                        peRatio: dataFields[24].values.first,
                        previousClose: dataFields[25].values.first,
                        priceBook: dataFields[26].values.first,
                        priceSales: dataFields[27].values.first,
                        shortRatio: dataFields[28].values.first,
                        stockExchange: dataFields[29].values.first,
                        symbol: dataFields[30].values.first,
                        twoHundreddayMovingAverage: dataFields[31].values.first,
                        volume: dataFields[32].values.first,
                        yearHigh: dataFields[33].values.first,
                        yearLow: dataFields[34].values.first,
                        dataFields: dataFields
                    )
                    dispatch_async(dispatch_get_main_queue()) 
                        completion(stock: stock)
                    
                
            
        
    


class func fetchChartPoints(symbol symbol: String, range: ChartTimeRange, completion:(chartPoints: [ChartPoint]) -> ()) 

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) 

        //An Alamofire regular responseJSON wont parse the JSONP with a callback wrapper correctly, so lets work around that.
        let chartURL = SwiftStockKit.chartUrlForRange(symbol, range: range)

        Alamofire.request(.GET, chartURL).responseData  response in

            if let data = response.result.value 

                var jsonString =  NSString(data: data, encoding: NSUTF8StringEncoding)!

                jsonString = jsonString.substringFromIndex(30)
                jsonString = jsonString.substringToIndex(jsonString.length-1)

                if let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding) 
                    if let resultJSON = (try? NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0)))  as? [String : AnyObject] 

                        let series = resultJSON["series"] as! [[String : AnyObject]]
                        var chartPoints = [ChartPoint]()
                        for dataPoint in series 
                            //GMT off by 5 hrs
                             let date = NSDate(timeIntervalSince1970: (dataPoint["Timestamp"] as? Double ?? dataPoint["Date"] as! Double) - 18000.0)

                            chartPoints.append(
                                ChartPoint(
                                date:  date,
                                volume: dataPoint["volume"] as? Int,
                                open: dataPoint["open"] as? CGFloat,
                                close: dataPoint["close"] as? CGFloat,
                                low: dataPoint["low"] as? CGFloat,
                                high: dataPoint["high"] as? CGFloat
                                )
                            )
                        
                        dispatch_async(dispatch_get_main_queue()) 
                             completion(chartPoints: chartPoints)
                        
                    
                
            
        
    

【问题讨论】:

请分享您使用的一些代码。 我只是附上了一些 【参考方案1】:

您可以过滤从服务器获取的 Json 数据。 不确定你到底想要什么。请分享一些代码或详细说明问题

【讨论】:

所以,我只想显示一个月内新的股票。我使用了这个 Github 项目 (github.com/ackleymi/SwiftStock) 中的 swiftStockKit.swift 文件,这就是我访问 yahoo api 的方式。我是在这里过滤数据,还是在另一个 .swift 文件中过滤? 我还附上了一些将应用程序连接到 yahoo api 的代码 有趣的问题。您解决了这个问题,还是仍在寻找答案?

从谷歌金融、雅虎金融或交易所本身获取股票报价

...changeitself【发布时间】:2010-11-2121:54:42【问题描述】:我正在构建一个基于Web的交易系统,通过读取来自雅虎财经、谷歌财经或交易所(印度NSE)本身的报价将生成买入和卖出信号。我的首选是从此网址获取数据:http://www.nseindi... 查看详情

定期抓取雅虎财经

...他们的历史数据,但是他们的最高频率是1天的间隔,我正在寻找更高的频率(大约30分钟到1小时)。不幸的是,雅虎财经和其他金融网站(据我调查)不会免费发布高于1天的频率。我获得更高频率的解决方案 查看详情

从雅虎财经获取股票价格的问题

...YahooFinance【发布时间】:2022-01-2211:28:46【问题描述】:我正在从yahooFinance(NVIDIA股票)进行一些网络抓取,我想知道为什么当我运行我的代码时我总是得到相同的值,但是在我的浏览器中当我刷新页面时我得到不同的值(如它应... 查看详情

金融股票知识入门

...汇、基金等。二、股票  股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东。  股票的作用:    1)出资证明、证明股东身份、对公司经营发表意见    2)公司分红、交易获利  上市/IPO... 查看详情

寻找一种将更多列表动态添加到 jQuery Mobile 列表视图底部的方法

...bilelistview【发布时间】:2012-03-2606:55:51【问题描述】:我正在寻找一种在向下滚动后将更多列表添加到列表视图底部的方法。例如,我最初有20件商品的退货。我打算使用分页并只返回从我的查询返回的数量,但我宁愿 查看详情

在 R 中下载雅虎股票价格

...011-03-3106:45:02【问题描述】:这是R中的一个新手问题。我正在使用R下载雅虎财经月度股票价格数据,其中代码名称是从文本文件中读取的。我正在使用循环读取代码名称以下载数据并将它们放入列表中。我的问题是一些股票名... 查看详情

使用 python yfinance 多线程下载雅虎股票历史

...thonyfinance【发布时间】:2020-06-1809:20:34【问题描述】:我正在尝试下载代码列表的历史数据并将每个数据导出到csv文件。我可以使它作为一个for循环工作,但是当股票代码列表在1000中时,这非常慢。我正在尝试对进程进行多线... 查看详情

无法使用 pandas_datareader 从雅虎获取股票数据

】无法使用pandas_datareader从雅虎获取股票数据【英文标题】:Unabletogetstockdatafromyahoowithpandas_datareader【发布时间】:2021-07-1013:03:06【问题描述】:这是我的代码:start=\'2015-1-1\'end=\'2020-12-31\'source=\'yahoo\'google=data.DataReader(\'GOOG\',start... 查看详情

雅虎财经:按 ISIN 或 Ticker 搜索,不带后缀

...问YahooFinance网站时,我可以使用ISIN进行搜索,并获得我正在寻找的股票。当我尝试通过调用API端点https 查看详情

使用股票代码输入、雅虎或谷歌 API 检索公司名称

...googleAPI【发布时间】:2016-12-2209:27:06【问题描述】:只是寻找一个简单的api返回,我可以在其中输入股票代码并接收完整的公司名称:ticker(\'MSFT\')将返回“微软”【问题讨论】:呃……你试过什么?我在现场浏览了一堆以前的... 查看详情

如何从雅虎采购一组股票? [关闭]

】如何从雅虎采购一组股票?[关闭]【英文标题】:Howsourceasetstocksfromyahoo?[closed]【发布时间】:2021-01-1823:07:08【问题描述】:我有一份股票清单和一家诱人的咨询公司,可以为每个人设定报价。并创建一个数据框以继续分析result... 查看详情

用python通过雅虎财经获取股票数据(代码片段)

...PI,许多依赖它的程序停止工作。yfinance旨在通过提供一种可靠的、线程化的、Python化的方式从下载历史股票交易市场数据来解决这个问题。扫描本文最下方二维码获取全部完整源码和JupyterNotebook文件打包下载。yfinance是什么&... 查看详情

我正在寻找一种从字符串构建 IQueryable 查询的方法

】我正在寻找一种从字符串构建IQueryable查询的方法【英文标题】:I\'mlookingforawaytobuildaIQueryablequeryfromastring【发布时间】:2015-07-2402:03:30【问题描述】:我想从一个字符串(它将来自一个表)构建一个IQueryable查询。我想要IQueryabl... 查看详情

雅虎财经网络服务API

...ebserviceAPI【发布时间】:2014-12-1809:57:38【问题描述】:我正在尝试使用yahooFinance网络服务从BSE和NSE获取实时股票数据。我能够使用以下URL获取一些数据http://finance.yahoo.com/webservice/v1/symbols/COALINDIA.NS/quote?format=json但它给我的信息非... 查看详情

从雅虎财经获取数据[关闭]

...如何获取所有公司的一些简单数据(如公司代码、市值、股票价格等)?还有一个问题,我怎样才能获得YQL可以查询的所有YahooFinance表及其字段?【问题讨论】:您真的可以将这些数据用于商业用途吗?我不确定,请阅读:meumob... 查看详情

想通过使用beautifulsoup从雅虎财务中检索股票公司名称(代码片段)

我试图使用BeautifulSoup废弃股票公司名称,但结果“IndexError:listindexoutofrange”出现。贝洛斯是我的代码frombs4importBeautifulSouplist=['BABA','APPL']stockname=[]foriinrange(len(list)):stock_company="https://finance.yahoo.com/quote/"+list[i]soup=BeautifulSoup(requests.... 查看详情

访问共同基金报价

...tes【发布时间】:2011-11-2809:46:32【问题描述】:我一直在寻找如何在c#中检索金融报价,在本例中是加拿大共同基金。似乎有两个主要的信息来源,雅虎和谷歌!似乎还有2种首选方法,API和HTML报废。我更喜欢API方法,但我愿意... 查看详情

从 azure web 应用程序提供 logstash。如何?

...和一个托管在azure虚拟机上的ELK堆栈(相同的订阅),我正在努力寻找一种将日志从应用程序发送到logstash的方法。Web应用程序将其所有文件存储在只能通过FTP访问的存储中,而log 查看详情