使用 Bright Data API 进行情绪分析以获取交易信号

如今,我们可以轻松找到许多开源交易机器人来自动化交易活动,以期获得利润。在本文中,我将分享我的最新项目,利用**Bright Data Web Scraper API**和开源LLM创建一个简单的交易信号仪表板。

这个想法本身并不新鲜,许多交易机器人都可以使用来自新闻和社交媒体的公开数据来创建交易信号。见鬼,即使是金鱼也可以比“r/WallStreetBets”中的人赚更多的钱,正如迈克尔·里夫斯 (Michael Reeves) 视频中展示的那样。

我建造了什么

我构建了一个仪表板,您可以在其中查看来自各种新闻来源的情绪分析的所谓“交易信号”。在这个项目中,我使用来自 BBC、CNN 和路透社的数据作为情绪来源。然后,我使用雅虎财经获取股票(AAPL、META、MSFT、NVDA)的历史数据。我还使用 Ollama 和 Llama 3.1 来预测新闻中的情绪。

Project flowchart

总体而言,这个过程并不复杂。获取数据,进行情绪分析,并将情绪叠加在股价历史图中。我将使用 Streamlit 和 Plotly 绘制数据。

演示

您可以在此处查看网络应用程序。

fahminlb33 / devto-brightdata-scraping-sentiment

Bright Data Hackathon:使用情绪分析进行交易信号

这个 repo 包含我在 DEV.to 上提交给 Bright Data Web Scraping Hackathon 的源代码。

设置

使用 `uv` 安装依赖项。克隆此 repo 并运行 `uv sync` 来安装软件包。

运行项目

触发数据收集 API 从多个来源抓取新闻。

python scripts/scrape_api.py --api-key YOUR_API_KEY discover --output-file ./data/snapshot-bbc.jsonl --keywords 'apple,facebook meta,microsoft,nvidia' --engine bbc
python scripts/scrape_api.py --api-key YOUR_API_KEY discover --output-file ./data/snapshot-cnn.jsonl --keywords 'apple,facebook meta,microsoft,nvidia' --engine cnn
python scripts/scrape_api.py --api-key YOUR_API_KEY discover --output-file ./data/snapshot-reuters.jsonl --keywords 'apple,facebook meta,microsoft,nvidia' --engine reuters

将所有 3 个快照文件的内容复制到一个文件中,然后下载抓取的数据。

python scripts/scrape_api.py --api-key YOUR_API_KEY download --snapshots-file ./data/snapshot-all.jsonl --output-path ./data/scraped

然后按顺序运行这些笔记本:

  • 合并.ipynb
  • eda-股票数据.ipynb
  • eda-llm-提取.ipynb
  • 评估.ipynb
  • 注意:您还需要 Ollama 和 Llama 3.1 来运行 LLM 提取笔记本。

    在 GitHub 上查看

    您可以在 Web 应用中探索以下内容:

    **交易信号**,在此页面您可以看到新闻文章的发布时间及其情绪分析结果。一般来说,如果文章提供了希望/积极的观点,情绪值将为 +1,否则为 -1。

  • 绿色 = 积极前景/看涨。
  • 红色 = 负面前景/看跌。
  • Trading signal page

    我们想要的是绿点出现,股价上涨,反之亦然,红点出现,股价下跌。但正如我们上面看到的,情况并非总是如此。

    **情绪分析**,在这个页面中你可以看到情绪分析过程中的一些统计数据,还可以看到新闻标题及其对应的情绪。有时,LLM 无法可靠地对情绪进行分类。

    Sentiment analysis page

    如何使用 Bright Data

    我主要使用 Bright Data 的 **Web Scraper API** 来收集新闻文章。Bright Data 拥有广泛的支持抓取网站选择,因此大大简化了该项目的建模过程。我只使用了 Bright Data 提供的一小部分新闻网站,但我已经获得了一个工作原型。我们绝对可以通过添加更多网站来扩展这个项目,甚至可以添加“r/WallStreetBets”来获取更多交易信号。

    即使您想要抓取的网站在 Web Scraper API 中不可用,您也可以随时创建自己的脚本或使用 **Scraping Browser** 服务来构建您自己的数据收集脚本。实际上,我第一次提交时就是这么做的。

    奖项类别

    虽然我在第三个提示中填写了 hackathon 类别,但我相信这个项目也可以属于第二个提示。

    最后的想法

    这是一个非常意外的项目。最初,我计划只提交一个项目,但在最后一刻,我从观看 Michael Reeves 视频和帮助我的朋友完成他的研究论文(也使用股票市场数据)中获得了灵感。而且,我不敢相信我在不到 8 小时内就完成了这个项目。

    如果我必须从头开始手动创建抓取脚本并等待数据,我肯定不会很快完成这个项目。感谢 Bright Data Web Scraper API,我可以快速获得所需的数据。

    DEV 挑战现已开始!

    DEV Challenges Hub

    查看所有参与方式、证明您的技能并赢取奖品。

    访问挑战中心