实例介绍
通过baostock.com网站的股票数据获取方法
=====baostock.com==股票数据获取=====
import baostock as bs
import pandas as pd
#### 登陆系统 ####
lg = bs.login(user_id="anonymous", password="123456")
#### 获取历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节
rs = bs.query_history_k_data("sz.000001",
"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST",
start_date='2000-06-01', end_date='2021-7-30',
frequency="d", adjustflag="3") # frequency="d"取日k线,adjustflag="3"默认不复权
print('query_history_k_data respond error_code:' rs.error_code)
print('query_history_k_data respond error_msg:' rs.error_msg)
#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
# result.to_csv("D:/history_k_data.csv", encoding="gbk", index=False)
print(result)
===============================、
import pandas as pd
import numpy as np
from pandas_datareader import data, wb
import matplotlib.pyplot as plt
# 导入数据
df=pd.read_csv('E:\EURUSD1440.csv',parse_dates=True)
# 设置列名
df.columns = ['date', 'time', 'open', 'high', 'low', 'close', 'volumn']
# 把 date 和 time 合并起来作为 index
df['datetime'] = df['date'] ' ' df['time']
df.datetime = pd.to_datetime(df.datetime)
df = df.set_index('datetime')
startDate = '2021-06-01'
endDate = '2021-07-30'
df = df.loc[startDate: endDate]
sp500=df
sp500['42d'] = np.round(sp500['close'].rolling(window=10, center=False).mean(), 2)
sp500['252d'] = np.round(sp500['close'].rolling(window=20, center=False).mean(), 2)
sp500[['close', '42d', '252d']].plot(grid=True, figsize=(8,5))
sp500['42-252'] = sp500['42d'] - sp500['252d']
# 生成投资体制 Regime
SD = 50
sp500['Regime'] = np.where(sp500['42-252'] > SD, 1, 0)
sp500['Regime'] = np.where(sp500['42-252'] < -SD, -1, sp500['Regime'])
sp500['Regime'].plot(lw=1.5)
plt.ylim([-1.1, 1.1])
sp500['Market'] = np.log(sp500['close']/sp500['close'].shift(1))
sp500['Stragety'] = sp500['Regime'].shift(1) * sp500['Market']
sp500[['Market', 'Stragety']].cumsum().apply(np.exp).plot(grid=True, figsize=(8, 5))
plt.show()
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论