如何利用Python找到下一个“游戏驿站”?
共 1846字,需浏览 4分钟
·
2022-03-04 14:47
Reddit Hyped Stocks — 是GitHub上开源的一个基于 Python 开发的查找 Reddit 当前被炒作的股票的Web应用程序。
通过它,你或许能找到下一支“游戏驿站”。
1.怎么判断“炒作”?
作者使用“炒作得分”的概念对Reddit上所有被炒作的股票进行了排序,其中炒作得分的计算如下:
收集的原始数据包含所选子Reddit的前n个帖子,每次都会收集包括点赞在内的所有基本数据。
每个帖子都会被标记为某只股票的炒作贴(基于标题)。
然后建立一个矩阵,其中每一行代表一个时间点,每一列代表一只股票。矩阵的值表示在某个时间点,一只股票的所有帖子的炒作分数的总和。
然后计算每个时间点的差值作为增量值,比如我想知道过去7天的炒作分数排行,我会对各个股票将过去7天的增量值之和作为总和来计算炒作分数并进行排行。
有关确切的算法,请查看源代码中的 ticker_score_calulation.py。
2.功能与说明
炒作图(顶部),即下图所示:
该图表显示了Reddit上当前炒作分数最高的一些股票,显示了排名前15位的股票的累计炒作得分。默认情况下,这个图表显示过去一星期内各个股票的分数变化。
炒作表(左侧),如下图所示:
这里会显示排名前30位的炒作股票及其各自的炒作得分,以下值:
Score Abs:所有相关帖子的炒作分数总和
Δ7d/Δ3d/Δ1d:周期分别为7/3/1天的增量炒作得分
另外,每一行都指示一天的仓位增/减(两个上/下箭头表示+/- 5个排名,一个上/下箭头表示小于+/- 5个排名,= 表示不变)。
单击股票名字后,会打开详细信息视图:
这里会展示股票的基本信息,每股收益、所属行业、PE值、关联的Reddit帖子等等。
3.安装部署
在公众号后台回复:Reddit 可以获取此开源代码库的代码和数据(reddit-hyped-stocks 及 data.db)。
(选项1)使用Docker运行应用程序:
1. 克隆此仓库或将其下载到本地计算机
2. 要使用没有你自己的数据的应用程序,你可以从:
https://drive.google.com/file/d/12aAc35F5a0_doGE7Af8xsukRyNKPo1g0/view?usp=sharing
获取示例数据库,下载并将文件复制到 backend/data.db
4. 运行./run-server-docker.sh 这将需要一些时间来下载依赖项并构建应用程序
5. 浏览器打开 http://localhost:5000 访问页面
(选项2)在没有Docker的情况下运行应用程序/设置开发环境
1. 将存储库克隆到本地计算机
2. 安装Python 3和Node.js
3. cd 到 backend 并运行 pip3 install -r requirements.txt 以安装后端依赖项。运行 backend/start.sh 以运行后端开发服务器
4. cd 到 frontend 并运行 npm i 以安装前端依赖项。运行 npm run start 以运行前端开发服务器。
(非必须)收集原始数据
由于炒作得分取决于帖子,因此必须定期(例如每小时)爬取 Reddit 帖子数据。
必须条件:获取 Reddit API token:
1. 前往 https://www.reddit.com/prefs/apps
2. 点击“创建应用”并填写信息,使用“script”类型
3. 将密钥和应用程序ID复制到文件中: backend/praw.ini
默认情况下,子论坛 robinhoodpennystocks 和 pennystocks 会被爬取(可在中配置backend/load_data.py)。
数据会被保存到Sqlite数据库中。要查询数据,请使用脚本 backend/load_data.py 或运行 ./run-load-data-docker.sh。