Reddit Hyped Stocks — 是GitHub上開源的一個(gè)基于 Python 開發(fā)的查找 Reddit 當(dāng)前被炒作的股票的Web應(yīng)用程序。
通過它,你或許能找到下一支“游戲驛站”。
1.怎么判斷“炒作”?
作者使用“炒作得分”的概念對(duì)Reddit上所有被炒作的股票進(jìn)行了排序,其中炒作得分的計(jì)算如下:
收集的原始數(shù)據(jù)包含所選子Reddit的前n個(gè)帖子,每次都會(huì)收集包括點(diǎn)贊在內(nèi)的所有基本數(shù)據(jù)。
每個(gè)帖子都會(huì)被標(biāo)記為某只股票的炒作貼(基于標(biāo)題)。
然后建立一個(gè)矩陣,其中每一行代表一個(gè)時(shí)間點(diǎn),每一列代表一只股票。矩陣的值表示在某個(gè)時(shí)間點(diǎn),一只股票的所有帖子的炒作分?jǐn)?shù)的總和。
然后計(jì)算每個(gè)時(shí)間點(diǎn)的差值作為增量值,比如我想知道過去7天的炒作分?jǐn)?shù)排行,我會(huì)對(duì)各個(gè)股票將過去7天的增量值之和作為總和來計(jì)算炒作分?jǐn)?shù)并進(jìn)行排行。
有關(guān)確切的算法,請(qǐng)查看源代碼中的ticker_score_calulation.py。
2.功能與說明
炒作圖(頂部),即下圖所示:
該圖表顯示了Reddit上當(dāng)前炒作分?jǐn)?shù)最高的一些股票,顯示了排名前15位的股票的累計(jì)炒作得分。默認(rèn)情況下,這個(gè)圖表顯示過去一星期內(nèi)各個(gè)股票的分?jǐn)?shù)變化。
炒作表(左側(cè)),如下圖所示:
這里會(huì)顯示排名前30位的炒作股票及其各自的炒作得分,以下值:
Score Abs:所有相關(guān)帖子的炒作分?jǐn)?shù)總和
Δ7d/Δ3d/Δ1d:周期分別為7/3/1天的增量炒作得分
另外,每一行都指示一天的倉位增/減(兩個(gè)上/下箭頭表示+/- 5個(gè)排名,一個(gè)上/下箭頭表示小于+/- 5個(gè)排名,= 表示不變)。
單擊股票名字后,會(huì)打開詳細(xì)信息視圖:
這里會(huì)展示股票的基本信息,每股收益、所屬行業(yè)、PE值、關(guān)聯(lián)的Reddit帖子等等。
3.安裝部署
在Python實(shí)用寶典后臺(tái)回復(fù):Reddit可以獲取此開源代碼庫的代碼和數(shù)據(jù)(reddit-hyped-stocks 及 data.db)。
(選項(xiàng)1)使用Docker運(yùn)行應(yīng)用程序:
1. 克隆此倉庫或?qū)⑵湎螺d到本地計(jì)算機(jī)
2. 要使用沒有你自己的數(shù)據(jù)的應(yīng)用程序,你可以從:
https://drive.google.com/file/d/12aAc35F5a0_doGE7Af8xsukRyNKPo1g0/view?usp=sharing
獲取示例數(shù)據(jù)庫,下載并將文件復(fù)制到backend/data.db
4. 運(yùn)行./run-server-docker.sh這將需要一些時(shí)間來下載依賴項(xiàng)并構(gòu)建應(yīng)用程序
5. 瀏覽器打開http://localhost:5000訪問頁面
(選項(xiàng)2)在沒有Docker的情況下運(yùn)行應(yīng)用程序/設(shè)置開發(fā)環(huán)境
1. 將存儲(chǔ)庫克隆到本地計(jì)算機(jī)
2. 安裝Python 3和Node.js
3. cd 到 backend 并運(yùn)行 pip3 install -r requirements.txt 以安裝后端依賴項(xiàng)。運(yùn)行 backend/start.sh 以運(yùn)行后端開發(fā)服務(wù)器
4. cd 到 frontend 并運(yùn)行 npm i 以安裝前端依賴項(xiàng)。運(yùn)行 npm run start 以運(yùn)行前端開發(fā)服務(wù)器。
(非必須)收集原始數(shù)據(jù)
由于炒作得分取決于帖子,因此必須定期(例如每小時(shí))爬取 Reddit 帖子數(shù)據(jù)。
必須條件:獲取 Reddit API token:
1. 前往https://www.reddit.com/prefs/apps
2. 點(diǎn)擊“創(chuàng)建應(yīng)用”并填寫信息,使用“script”類型
3. 將密鑰和應(yīng)用程序ID復(fù)制到文件中: backend/praw.ini
默認(rèn)情況下,子論壇 robinhoodpennystocks 和 pennystocks 會(huì)被爬?。稍谥信渲胋ackend/load_data.py)。
數(shù)據(jù)會(huì)被保存到Sqlite數(shù)據(jù)庫中。要查詢數(shù)據(jù),請(qǐng)使用腳本 backend/load_data.py 或運(yùn)行 ./run-load-data-docker.sh。
我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實(shí)戰(zhàn)教程,請(qǐng)持續(xù)關(guān)注Python實(shí)用寶典。
-
Web
+關(guān)注
關(guān)注
2文章
1255瀏覽量
69292 -
python
+關(guān)注
關(guān)注
55文章
4767瀏覽量
84375 -
GitHub
+關(guān)注
關(guān)注
3文章
465瀏覽量
16359
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論