Bulbea助力实现股票的深度学习量化

大家好,Bulbea 是一个基于深度学习开发的,用于股票市场预测和建模的Python库。Bulbea 自带了不少可用于股票深度学习训练及测试的API,并且易于对数据进行扩展和延申,构建属于我们自己的数据及模型。

1.Bulbea基本使用方法

Bulbea 和普通的深度学习研究项目一样,在做训练和测试时,分为四步(加载数据,预处理,建模,测试)。

1.1 加载数据

Bulbea内置了数据下载模块,让你很轻易地能够下载雅虎财经的股票数据,比如下面下载雅虎财经源的GOOGL股票数据:

python 复制代码
>>> import bulbea as bb
>>> share = bb.Share('YAHOO', 'GOOGL')
>>> share.data
# Open High Low Close Volume \
# Date
# 2004-08-19 99.999999 104.059999 95.959998 100.339998 44659000.0
# 2004-08-20 101.010005 109.079998 100.500002 108.310002 22834300.0
# 2004-08-23 110.750003 113.479998 109.049999 109.399998 18256100.0
# 2004-08-24 111.239999 111.599998 103.570003 104.870002 15247300.0
# 2004-08-25 104.960000 108.000002 103.880003 106.000005 9188600.0
...

1.2 预处理

Bulbea 同样也内置了预处理模块,让你能够轻易地分割训练集和测试集:

python 复制代码
>>> from bulbea.learn.evaluation import split
>>> Xtrain, Xtest, ytrain, ytest = split(share, 'Close', normalize = True)

1.3 建模

Bulbea自带了RNN模型可供使用:

python 复制代码
>>> import numpy as np
>>> Xtrain = np.reshape(Xtrain, (Xtrain.shape[0], Xtrain.shape[1], 1))
>>> Xtest = np.reshape( Xtest, ( Xtest.shape[0], Xtest.shape[1], 1))

>>> from bulbea.learn.models import RNN
>>> rnn = RNN([1, 100, 100, 1]) # number of neurons in each layer
>>> rnn.fit(Xtrain, ytrain)
# Epoch 1/10
# 1877/1877 [==============================] - 6s - loss: 0.0039
# Epoch 2/10
# 1877/1877 [==============================] - 6s - loss: 0.0019
...

1.4 测试

通过调用sklearn的metrics就能对数据实现测试:

python 复制代码
>>> from sklearn.metrics import mean_squared_error
>>> p = rnn.predict(Xtest)
>>> mean_squared_error(ytest, p)
0.00042927869370525931
>>> import matplotlib.pyplot as pplt
>>> pplt.plot(ytest)
>>> pplt.plot(p)
>>> pplt.show()

2.情感分析

Bulbea 能自动爬取相关股票在推特上的文字,并对这些文字做一个情感分析。

只需要给Bulbea提供以下环境变量就能够进行感情色彩分析:

python 复制代码
export BULBEA_TWITTER_API_KEY="<YOUR_TWITTER_API_KEY>"
export BULBEA_TWITTER_API_SECRET="<YOUR_TWITTER_API_SECRET>"

export BULBEA_TWITTER_ACCESS_TOKEN="<YOUR_TWITTER_ACCESS_TOKEN>"
export BULBEA_TWITTER_ACCESS_TOKEN_SECRET="<YOUR_TWITTER_ACCESS_TOKEN_SECRET>"

测试一下:

python 复制代码
>>> import bulbea as bb
>>> share = bb.Share('YAHOO', 'GOOGL')
>>> bb.sentiment(share)
0.07580128205128206

由于较为粗略,这个分析仅供参考,如果喜欢今天的量化投资内容,请持续关注。

相关推荐
火山引擎开发者社区30 分钟前
Seedance 2.0 1080P 生成能力正式上线
人工智能
冬奇Lab39 分钟前
一天一个开源项目(第79篇):生化危机女主角亲自开源的 AI 记忆系统 MemPalace
人工智能·开源·资讯
冬奇Lab41 分钟前
Android 开发要变天了:Google 专为 Agent 重建工具链,Token 减少 70%、速度提升 3 倍
android·人工智能·ai编程
慧一居士42 分钟前
Open WebUI 和Ollama 区别对比和关系
人工智能
云安全助手1 小时前
2026年AI安全大模型实战指南:快快云安全AI能力全景解析
人工智能·网络安全·claude
fuquxiaoguang1 小时前
当AI开始改写自己的“进化引擎”:从DGM到HyperAgents
人工智能·hyperagents
bKYP953cL1 小时前
构建自己的AI编程助手:基于RAG的上下文感知实现方案
数据库·人工智能·ai编程
数字供应链安全产品选型1 小时前
在供应链攻击激增200%的时代,如何用AI原生安全重塑防御边界?
人工智能
枫叶林FYL1 小时前
项目七:实时异常检测与告警系统——基于统计与机器学习的数据质量监控平台
人工智能·自然语言处理
ZC跨境爬虫2 小时前
3D 地球卫星轨道可视化平台开发 Day7(AI异步加速+卫星系列精简+AI Agent自动评论)
前端·人工智能·3d·html·json