Skip to main content

用于构建股票扫描仪/筛选器的 Python 框架。

项目描述

测试通过深源

股票扫描仪

使用这个 Python3 库快速开发您自己的股票扫描仪。

  • 内置支持使用免费的 Yahoo Finance API。
  • 轻松编写您自己的条件,以决定股票是否应出现在您的扫描中。
  • 可扩展且易于定制 - 只需编写您自己的包含接口的实现。

示例代码

使用预先编写的示例条件:

from src.stock_scanner.condition.Consolidating import Consolidating
from src.stock_scanner.scanner.BasicScanner import BasicScanner
from src.stock_scanner.stock_io import YahooIO

path = f'./{YahooIO.valid_universes.NASDAQ.value}'

print("Looking for consolidated stocks.")
stock_io = YahooIO(YahooIO.valid_universes.NASDAQ, path, max_tickers=50)
conditions = [Consolidating(window=10, max_difference_percentage=2)]
candidates = BasicScanner(conditions, stock_io).load_data().get_candidates()
print(list(map(lambda x: x.get_ticker(), candidates)))

核心接口

该库的主要目标是实现快速库存扫描仪开发和创建模块,您只需随意换入或换出。为了实现这一点,有许多不同的接口(或者在 Python 中技术上更正确,抽象类):

  • StockIOInterface - 将股票数据下载到磁盘然后读取的接口。
  • ConditionInterface - 检查股票是否满足条件的接口。这是您可能会自己做最多工作的界面,因为它是构建扫描仪时最关键的界面。
  • ValidatorInterface - 一个接口,用于根据股票满足的条件决定是否应将股票作为候选对象返回。
  • ScannerInterface - 扫描“主引擎”的接口。
  • StockInterface - 与股票数据交互的接口。

基本使用指南

  1. 构造一个 StockIO 实例。
  2. 列出 Condition 实例。
  3. 实例化一个验证器。
  4. 将这些作为参数传递给 Scanner。

当使用其中一些接口的包含的基本实现时,该过程会稍微简化:

  1. 构造一个 StockIO 实例(例如 YahooIO)
  2. 列出 Condition 实例。
  3. 将这些作为参数传递给 BasicScanner。

接口的现有实现

  • YahooIO - 从开放且免费的 Yahoo Finance API 获取每日数据。适用于许多用例,但存在速率限制。
  • BasicValidator - 如果它满足所有给定的条件,它会查看股票并将其作为候选返回,否则不返回。
  • BasicScanner - 它运行 StockIO 来下载股票数据,读取每只股票的数据,默认情况下使用 BasicValidator 来查找候选人。对于您孤立地查看股票的大多数用例来说,这应该足够了——但如果您想使用相对强弱指数,例如,您可能需要在自定义实现中编写自己的逻辑。

实验性的

目前,我正在开发一个回测模块,以方便分析扫描仪的质量。如果您可以在扫描仪中看到候选人的赢/输比率,即平均回报,会怎样?还没有完成。

此外,还有一些基本功能可以将股票及其时间序列导出到交互式 HTML/CSS/JS 图表、PNG 文件,或将候选代码列表写入文本文件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

thumos-stock-screener-0.1.6.tar.gz (13.3 kB 查看哈希

已上传 source

内置分布

thumos_stock_screener-0.1.6-py3-none-any.whl (19.9 kB 查看哈希

已上传 py3