首页
/ YahooFinanceApi 使用教程:.NET 标准库获取雅虎财经数据

YahooFinanceApi 使用教程:.NET 标准库获取雅虎财经数据

2026-02-06 05:38:01作者:尤辰城Agatha

YahooFinanceApi 是一个基于 .NET Standard 2.0 的雅虎财经 API 封装库,提供了获取股票行情、历史数据、分红数据和股票拆分数据的便捷方法。

项目概述

YahooFinanceApi 是一个轻量级的 .NET 库,专门用于从雅虎财经获取金融数据。它支持多种数据类型的获取,包括实时报价、历史K线数据、分红信息和股票拆分记录。

安装方法

通过 NuGet 包管理器安装:

Install-Package YahooFinanceApi

或者通过 .NET CLI 安装:

dotnet add package YahooFinanceApi

核心功能

1. 获取股票实时报价

using YahooFinanceApi;

// 查询多个股票的多个字段
var securities = await Yahoo.Symbols("AAPL", "GOOG")
    .Fields(Field.Symbol, Field.RegularMarketPrice, Field.FiftyTwoWeekHigh)
    .QueryAsync();

var aapl = securities["AAPL"];
var price = aapl[Field.RegularMarketPrice];

2. 获取历史K线数据

// 获取苹果公司2016年上半年的日线数据
var history = await Yahoo.GetHistoricalAsync("AAPL", 
    new DateTime(2016, 1, 1), 
    new DateTime(2016, 7, 1), 
    Period.Daily);

foreach (var candle in history)
{
    Console.WriteLine($"日期: {candle.DateTime}, 开盘: {candle.Open}, 最高: {candle.High}, 最低: {candle.Low}, 收盘: {candle.Close}, 成交量: {candle.Volume}, 调整后收盘价: {candle.AdjustedClose}");
}

3. 获取分红历史数据

var dividends = await Yahoo.GetDividendsAsync("AAPL", 
    new DateTime(2016, 1, 1), 
    new DateTime(2016, 7, 1));

foreach (var dividend in dividends)
{
    Console.WriteLine($"日期: {dividend.DateTime}, 分红: {dividend.Dividend}");
}

4. 获取股票拆分历史

var splits = await Yahoo.GetSplitsAsync("AAPL", 
    new DateTime(2014, 6, 8), 
    new DateTime(2014, 6, 10));

foreach (var split in splits)
{
    Console.WriteLine($"日期: {split.DateTime}, 拆分后: {split.AfterSplit}, 拆分前: {split.BeforeSplit}");
}

支持的字段

YahooFinanceApi 支持丰富的字段查询,包括:

  • 基础信息:Symbol, ShortName, LongName, Currency
  • 价格数据:RegularMarketPrice, RegularMarketChange, RegularMarketOpen
  • 技术指标:FiftyTwoWeekHigh, FiftyTwoWeekLow, TwoHundredDayAverage
  • 财务数据:EpsTrailingTwelveMonths, EpsForward, MarketCap
  • 交易信息:Bid, Ask, BidSize, AskSize, Volume

项目结构

YahooFinanceApi/
├── Yahoo - Historical.cs    # 历史数据相关功能
├── Yahoo - Quote.cs        # 实时报价相关功能
├── Fields.cs               # 字段定义
├── Candle.cs               # K线数据模型
├── Security.cs             # 证券信息模型
├── DividendTick.cs         # 分红数据模型
├── SplitTick.cs            # 拆分数据模型
└── YahooSession.cs         # 会话管理

配置选项

忽略空行配置

// 设置是否忽略历史数据中的空行
Yahoo.IgnoreEmptyRows = true;

支持的平台

  • .NET Core 2.0+
  • .NET Framework 4.6.1+
  • Xamarin.iOS
  • Xamarin.Android
  • Universal Windows Platform

注意事项

  1. 该库仅建议用于个人使用,商业用途请确保遵守雅虎财经的使用条款
  2. 所有时间数据默认使用 EST(东部标准时间)时区
  3. 对于传统 .NET Framework 用户,可能需要手动安装 System.Runtime.Serialization.Primitives 包

版本历史

  • v2.3.1 (2023/12/10): 修复 HTTP 502 状态码问题
  • v2.2 (2023/05/29): 更新认证方式,升级依赖包
  • v2.1 (2017/11/12): 添加 QueryAsync 方法替代已废弃的 GetAsync
  • v2.0 (2017/10/28): 移除时区支持,性能优化

开发依赖

  • Flurl.Http (3.2.4): HTTP 客户端库
  • CsvHelper (30.0.1): CSV 解析库
  • Flurl (3.0.7): URL 构建库

通过 YahooFinanceApi,开发者可以轻松地在 .NET 应用程序中集成雅虎财经的金融数据服务,为金融分析、投资决策等应用提供数据支持。

登录后查看全文
热门项目推荐
相关项目推荐