Finnhub-github 是一个提供实时和历史股票、外汇、加密货币等金融市场数据的 API。它提供了多种金融数据服务,包括:
- 股票市场数据:实时报价、历史数据、新闻等,覆盖全球主要交易所。
- 基本面数据:上市公司财务报表、盈利数据、分红等。
- 新闻与情绪分析:提供股票相关的新闻及其情绪分析。
- 经济日历:提供实时的经济事件和其对市场的影响。
- 替代数据:例如内幕交易、社交情绪等数据。
Finnhub API 的关键特性:
- 实时股票数据:获取股票的实时报价和历史数据。
- 新闻:按股票代码获取相关新闻及其情绪分析。
- 经济日历:追踪经济事件及其对市场的潜在影响。
- 替代数据:提供内幕交易、社交媒体情绪分析等。
- 外汇与加密货币:提供外汇对和加密货币的实时数据。
在 Django 中集成 Finnhub API
你可以使用 Finnhub API 获取实时股票数据,并将其集成到 Django 应用中。以下是一个示例,展示如何将 Finnhub API 用于获取股票数据并显示在 Django 应用中。
1. 注册 Finnhub 获取 API Key
- 访问 Finnhub 注册并获取 API Key。
- 你需要使用这个 API Key 来验证请求。
2. 安装 Requests 库
首先,确保你已经安装了 requests
库,以便与 Finnhub API 进行交互:
pip install requests
3. 从 Finnhub API 获取股票数据
创建一个函数来从 Finnhub API 获取股票数据:
# stock/utils.py
import requests
# 替换为你的 Finnhub API Key
API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://finnhub.io/api/v1'
# 获取实时股票数据
def get_stock_data(symbol):
url = f"{BASE_URL}/quote"
params = {
'symbol': symbol,
'token': API_KEY
}
response = requests.get(url, params=params)
data = response.json()
return data
4. 在 Django 视图中显示股票数据
你可以使用这个函数来获取股票数据并将其显示在模板中。以下是修改后的 views.py
文件:
# stock/views.py
from django.shortcuts import render
from .utils import get_stock_data
def index(request):
if request.method == "POST":
ticker = request.POST.get('ticker')
stock_data = get_stock_data(ticker)
return render(request, 'index.html', {'stock_data': stock_data, 'ticker': ticker})
return render(request, 'index.html')
5. 更新模板文件
你可以在 index.html
模板中显示股票数据:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Stock Tracker</title>
</head>
<body>
<h1>Stock Tracker</h1>
<form method="POST">
{% csrf_token %}
<input type="text" name="ticker" placeholder="Enter stock ticker" required>
<button type="submit">Get Stock Data</button>
</form>
{% if stock_data %}
<h2>Stock Data for {{ ticker }}</h2>
<ul>
<li><strong>Current Price:</strong> {{ stock_data['c'] }}</li>
<li><strong>High Price:</strong> {{ stock_data['h'] }}</li>
<li><strong>Low Price:</strong> {{ stock_data['l'] }}</li>
<li><strong>Open Price:</strong> {{ stock_data['o'] }}</li>
<li><strong>Previous Close:</strong> {{ stock_data['pc'] }}</li>
</ul>
{% endif %}
</body>
</html>
6. 运行 Django 服务器
设置好之后,运行 Django 开发服务器:
python manage.py runserver
现在,你可以访问你的 Django 应用,输入股票代码(例如 AAPL
代表苹果公司),就能获取实时的股票数据。
Finnhub API 提供的数据字段
- c: 当前价格
- h: 最高价格
- l: 最低价格
- o: 开盘价
- pc: 上一个交易日的收盘价
7. 更多功能
你还可以将应用扩展到更多功能,比如: - 股票新闻:显示与股票相关的最新新闻。 - 情绪分析:分析市场情绪,例如通过新闻、社交媒体等来源。 - 历史数据:获取股票的历史数据,做趋势分析或可视化。
例如,获取股票新闻的代码:
# stock/utils.py
def get_stock_news(symbol):
url = f"{BASE_URL}/news"
params = {
'category': 'general', # 或者 'business', 'technology' 等
'token': API_KEY
}
response = requests.get(url, params=params)
news = response.json()
return news
然后你可以修改视图和模板来显示股票新闻。
总结:
通过使用 Finnhub API,你可以轻松地获取并展示股票市场的实时数据、历史数据、新闻和情绪分析等信息。将这些功能集成到 Django 应用中,可以为用户提供一个实时的股票跟踪和预测平台,帮助他们做出更好的投资决策。