当前位置:首页 » 股票交易 » pandas查询股票交易记录

pandas查询股票交易记录

发布时间: 2024-11-13 16:19:23

㈠ 简单的用Python采集股票数据,保存表格后分析历史数据

学习使用Python分析股票历史数据,为字节跳动上市后可能成为我国第一个世界首富的钟老板提前打下基础。现在,让我们开始正文。

准备工作

在开始之前,确保你的环境已准备好。使用Python的环境,安装第三方模块:requests和pandas。这些模块通过命令行安装,只需在命令行中输入:pip install requests pandas。

案例实现流程

分析数据来源,确定要采集的股票数据。接下来,编写代码实现流程,包括数据请求、响应处理、数据提取和保存。

代码解析

获取数据来源网站的请求,并确保请求成功。从响应中获取数据,根据数据格式使用适当的方法提取所需信息。最后,将采集到的数据保存到表格文件中。

效果展示

成功采集数据并保存到表格后,展示实际代码实现和结果。为了方便学习,我已将采集数据和可视化分析的代码打包,只需点击“阅读原文”即可获取。

可视化分析

通过分析保存的表格数据,可以进行可视化展示,更直观地理解股票的历史表现。这部分代码已包括在打包的文件中,帮助你更好地进行分析。

总结

今天的分享到此结束,希望你已经掌握了如何使用Python采集和分析股票数据的技能。下次分享时,我们将会探讨更多关于数据科学和金融分析的知识。期待与你再次相遇,一起探索更多可能性。

㈡ 【手把手教你】Python获取股票数据和可视化

数据获取是金融量化分析的核心环节,没有可靠数据,量化分析便无从谈起。在数据获取渠道日益多元化的背景下,Python以其强大的数据处理能力和丰富的开源库,成为了金融量化领域不可或缺的工具。本文将围绕Python获取股票数据和可视化展开,旨在为金融量化入门者提供实用指南。

首先,数据获取渠道的多样性为金融量化分析提供了丰富的资源。虽然网络爬虫技术在数据获取方面具有不可忽视的作用,但本文更侧重于介绍Python的开源数据包,如tushare、baostock、pandas_datareader和yahool等财经数据API。这些工具不仅简化了数据获取流程,还有效节省了学习成本和时间。

在实际应用中,tushare是一个功能强大的开源库,广泛应用于获取财经和股票交易数据。最新版本的tushare pro提供了更加稳定和高质量的数据服务,涵盖了沪深股票行情、财务数据、宏观经济等丰富信息。用户可通过注册获取token进行免费使用。借助tushare,用户能够轻松获取个股行情、指数数据等多种类型的数据,极大地简化了数据获取流程。

baostock同样是一个免费、开源的证券数据平台,提供了大量准确、完整的证券历史行情数据和上市公司财务数据。通过Python API,用户可以方便地获取所需数据,并以pandas DataFrame格式进行处理,便于后续的数据分析与可视化操作。

对于雅虎财经API,虽然其原始版本在2018年后不再维护,但仍有大神推出了修复版本,使得用户仍能借助Python获取财务数据。用户只需通过pip安装该修复版即可。

本文的目的是为了引导读者了解如何利用Python获取股票数据,并进行初步的可视化处理。通过掌握这些工具,金融量化初学者能够快速上手,为后续的深入学习打下坚实的基础。同时,本文也强调了数据获取渠道的多样性,鼓励探索更多资源,以满足个性化需求。

㈢ 如何编程从免费股票软件中提取实时数据

自己写程序的话,一种方法是从已提供的信息源,例如webservice获取数据。还有种办法就是去连接提供即时信息的网页硬解析。

代码举例如下:

Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '获取失败,请检查网络状态,或者API端口URL已经不匹配!'

get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request

def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
获取个股历史交易数据
--------
输入:
--------
code:string
股票代码 比如:601989
start:string
开始日期 格式:YYYY-MM-DD 为空时取到API所提供的最早日期数据
end:string
结束日期 格式:YYYY-MM-DD 为空时取到最近一个交易日数据
ktype:string(default=D, 函数内部自动统一为大写)
数据类型 D=日K线,W=周K线,M=月K线,5=5分钟,15=15分钟
30=30分钟,60=60分钟
输出:
--------
DataFrame
date 日期
open 开盘价
high 最高价
close 收盘价
low 最低价
chg 涨跌额
p_chg 涨跌幅
ma5 5日均价
ma10 10日均价
ma20 20日均价
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover换手率(指数无此项)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()

url = ''
url = get_url(ktype, code)
print(url)

js = json.loads(ping_API(url))
cols = []

if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)

if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df

def code_to_APIcode(code):
"""
功能:
验证输入的股票代码是否正确,若正确则返回API对应使用的股票代码
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code

def get_url(ktype, code):
"""
功能:
验证输入的K线类型是否正确,若正确则返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')

def ping_API(url):
"""
功能:
向API发送数据请求,若链接正常返回数据
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text

#测试入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))

热点内容
中衍期货手机版怎么下载 发布:2024-11-13 16:53:11 浏览:906
如何起诉配偶擅自处理财产 发布:2024-11-13 16:43:23 浏览:470
工信部开会调研期货价格怎么变化 发布:2024-11-13 16:34:38 浏览:158
国内6g公募基金有哪些 发布:2024-11-13 16:22:16 浏览:623
千禧一代对数字货币有什么用 发布:2024-11-13 16:22:11 浏览:46
中国重工股票的历史最低价是多少钱 发布:2024-11-13 16:20:36 浏览:428
pandas查询股票交易记录 发布:2024-11-13 16:19:23 浏览:68
asl在股市中什么意思 发布:2024-11-13 15:49:14 浏览:314
地热能的基金有哪些 发布:2024-11-13 15:18:51 浏览:697
期货盘口数据怎么分析 发布:2024-11-13 15:17:32 浏览:900