更多用例 - 用自定义策略扫描市场机会

策略扫描(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。