Sequoia:A股自动选股程序

投资有风险 入市需谨慎

大家好!最近我发现了一个炒A股的神器——Sequoia自动选股程序,它实现了海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态。

介绍

本程序使用AKShare接口,从东方财富获取数据。

本程序实现了若干种选股策略,大家可以自行选择其中的一到多种策略组合使用,参见work_flow.py,也可以实现自己的策略。

#filename: work_flow.py
strategies = {
 '放量上涨': enter.check_volume,
 '均线多头': keep_increasing.check,
 '停机坪': parking_apron.check,
 '回踩年线': backtrace_ma250.check,
 '突破平台': breakthrough_platform.check,
 '无大幅回撤': low_backtrace_increase.check,
 '海龟交易法则': turtle_trade.check_enter,
 '高而窄的旗形': high_tight_flag.check,
 '放量跌停': climax_limitdown.check,
}

使用方法

以下仅以Windows为例, Linux、Mac可以参照下面Github官网安装

配置python环境

推荐使用 Miniconda来进行 Python 环境管理Miniconda

安装 conda 后,切换到项目专属环境进行配置,例如:

conda create -n sequoia39 python=3.9
conda activate sequoia39

下载代码

git clone https://github.com/sngyai/Sequoia.git
cd Sequoia

安装依赖

pip install -r requirements.txt 

这一步通常会失败, 如下:

Building wheels for collected packages: TA-Lib
  Building wheel for TA-Lib (pyproject.toml) ... error
  error: subprocess-exited-with-error
  ......
  error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

这是因为需要编译环境, 按需安装即可。 不过有第三方已经编译好了TA-Lib库, 我们可以直接用。 https://github.com/cgohlke/talib-build/

requirements.txt 里指定的TA-lib版本v0.4.32, python版本3.9, 找到对应的文件,下载下来。

然后在对应的sequoia39环境安装

(sequoia39) D:\zuoye\Sequoia>pip install D:\gebaocai\Downloads\TA_Lib-0.4.32-cp39-cp39-win_amd64.whl
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Processing d:\gebaocai\downloads\ta_lib-0.4.32-cp39-cp39-win_amd64.whl
Requirement already satisfied: numpy in c:\users\gebaocai\miniconda3\envs\sequoia39\lib\site-packages (from TA-Lib==0.4.32) (2.0.2)
Installing collected packages: TA-Lib
Successfully installed TA-Lib-0.4.32

这样就安装好了TA-Lib, 再执行

pip install -r requirements.txt 

处理Bug

这个程序在回踩年线策略时有个bug, 执行时会报:

  File "D:\zuoye\Sequoia\strategy\backtrace_ma250.py", line 72, in check
    date_diff = datetime.date(datetime.strptime(recent_lowest_row['日期'], '%Y-%m-%d')) - \
TypeError: strptime() argument 1 must be str, not datetime.date

这个需要把backtrace_ma250.py第72行改为:

date_diff = datetime.date(datetime.strptime(str(recent_lowest_row['日期']), '%Y-%m-%d')) - \
                datetime.date(datetime.strptime(str(highest_row['日期']), '%Y-%m-%d'))

运行程序

python main.py

等待10分钟左右,在程序目录下会生成文件sequoia.log, 里面会把符合条件的股票选出来, 如图:

结语

我个人觉得Sequoia对A股投资者来说是一个非常不错的工具,推荐大家关注一下,说不定能帮助大家在股市里获得更好的回报!

github地址: https://github.com/sngyai/Sequoia


推荐阅读