😱 实时获取所有 A 股现在 + 过去的行情数据,可基于它来做量化交易的行情服务,也可以用来实时选股。 项目地址
行情数据来自:wow-stock-quotation
环境准备
由于插件的行情全部来自 python 脚本,故:
- 请确保本地安装了 python3,并加入全局环境变量,即在命令行中输入如下内容:
1 | // 命令正确执行且指向 python3 |
- 安装 python 库 easyquotation
1 | pip install easyquotation |
- 安装 python 库 BaoStock
1 | pip install baostock |
安装
1 | npm install wow-stocks |
示例
1 | // const { update } = require('wow-stocks') |
API
update
是的,插件目前有且仅有这一个入口 api,因为所有的操作都要基于它。毕竟数据都没有呢,操作啥呢?
建议每天收盘后执行一次,这样它可以利用实时行情来快速增量更新所有数据。如果隔了一个交易日,就得执行较慢的全量更新了。
1 | update({ |
该方法执行完毕后,返回一个 Promise,回调数据为如下两个函数:
get
基于已更新的数据获取一次行情
1 | update({ length: 90 }) |
执行完毕后,返回如下结果:
1 | [ |
watch
基于已更新的数据监听实时行情(每隔 1 秒请求一次实时行情
回调函数支持异步,即你可以传入一个 Promise 函数
1 | update({ length: 90 }).then(({ watch }) => { |
黄金搭档
wow-stock-calculator - 类似通达信函数的股票计算工具。
1 | import { ma, cross } from 'wow-stock-calculator' |
再附上上面这段选股代码对应的通达信选股公式,欢迎用来验证结果
1 | XG: CROSS(MA(C, 5), MA(C, 10)); |
好吧,看起来通达信的选股代码更简洁精炼啊。。。是的,大部分情况下推荐直接用通达信之类的股票软件来执行选股。
但是对于全量行情的实时预警,也就是实时选股,本插件比这些传统工具快一亿倍!如果你的选股公式写的够好,完全可以做到全市场股票秒级监控!当然了,甚至还可以搭配某些工具来实现自动交易
其他
关于 length
更新配置中的 length
并不能保证一定是你设置的固定长度,因为某些股票的交易数据可能一共就没有那么多。并且当日停盘的数据也不会被保存
进度条
本插件使用的命令行进度条工具是:cli-progress,不保证任何环境下都可以正常输出,如果发现没有出现进度条,请自行切换命令行环境
进度条的样子:
1 | 数据更新中 [====================================----] 89% 113秒 4341/4890 sh.603363(Full |
行情下载
下载的行情文件会保存在当前运行目录下的 wow-stocks-db.json
文件中,不要随意删除它。
然后还有个问题是在更新过程中如果异常终止了,比如 ctrl + c
。插件做了简单的监听,希望能够在发生异常的时候保存已下载的记录,但经测试很多命令行环境都无效,也调研过相关的工具,测试也都不太理想。如果你有好的方案,欢迎联系我,或贡献你的 PR。