策略扫描(scan)做的是:使用我们定义过的策略去当前市场上扫描看看有没有什么投资机会。一句话说:就是应用我们的策略去找机会。
扫描的两种模式:
严格要求使用最新数据 - 真实的使用策略去找当前市场里的机会
使用所有数据里的最近的一个日期作为最新日期来扫描 - 方便测试和演示
两种模式在配置上略有不同,请注意区别。
关键配置是 (settings.py里):
# ...
"scanner": {
"use_strict_previous_trading_day": True, # 严格要求数据是最新的才可以扫描。
# ...
},
# ...扫描的步骤是:
前提条件:已经更新数据到最新。(在接入data source的模式下运行 python start-cli.py renew)
请注意,框架不自带数付费的据源,因此默认情况下无法拉取数据。但框架里有一套默认的更新数据逻辑(Tushare)需要购买tushare的数据服务才能使用。您也可以接入自己的数据源或者使用免费数据源,可以参考这篇文档
收集策略:系统会自动查找所有enabled策略并放入策略集。
逐个扫描:在当前市场里用收集到的策略去扫描所有股票(您也可以定制股票候选池),看看有什么可投资机会:
呈现结果:使用adapter模块定义的模式输出结果,本地也会留有一份可读的json或者csv结果(在每个strategy的results目录里)
运行扫描的命令是:
python start-cli.py scan或者指定一个策略进行扫描:
python start-cli.py scan --strategy my_strategy结果在哪看
终端:console adapter 会直接打印本期扫到的机会摘要。(默认adapter是console)
自定义 adapter:您可以在每个策略里配置一个adapter,并且在 userspace/adapters 自定义处理机会信息的逻辑,这样这些结果也可以通过您自定义的逻辑进行处理。(例如把这些机会通过email发送的某个邮箱,或者通过微信通知等等...)
框架里不负责内置短信、邮件、App 推送的商业能力。
输出目录:与策略相关的产物仍在各策略目录下的 results/(若你们有扫描落盘约定,以保持仓库内 README 为准);大体量结果通常 勿提交 Git。