A股自动选股程序,实现了海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态
MIT License
本程序使用AKShare接口,从东方财富获取数据。
本程序实现了若干种选股策略,大家可以自行选择其中的一到多种策略组合使用,参见work_flow.py,也可以实现自己的策略。
各策略中的end_date
参数主要用于回测。
推荐使用 Miniconda来进行 Python 环境管理 Miniconda — conda documentation
安装 conda 后,切换到项目专属环境进行配置,例如:
conda create -n sequoia39 python=3.9
conda activate sequoia39
Mac OS X (x86_64)
$ brew install ta-lib
# conda 环境下 可直接执行
$ conda install -c conda-forge ta-lib
Mac OS X (arm64)
需要特殊说明的是 M1 芯片的 Mac OS 很多库和依赖都需要基于 arm64 来构建。 所以,这里首先需要确认安装的 homebrew 是 arm 版本,如果之前安装的 homebrew 是 x86 版本,推荐重装 homebrew。
sudo rm -rf /usr/local/.git
rm -rf ~/Library/Caches/Homebrew
rm -rf /usr/local/Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
vim ~/.zshrc
# 加入到系统环境变量
export PATH=/opt/homebrew/bin:$PATH
source ~/.zshrc
# 确认版本信息
brew config
ta-lib
了。 参考以下是完整的操作命令示例:
# 操作示例
# 1. 创建专属 python 环境
conda create -n sequoia39 python=3.9
conda activate sequoia39
# 2. 安装 ta-lib 库
arch -arm64 brew install ta-lib
export TA_INCLUDE_PATH="$(brew --prefix ta-lib)/include"
export TA_LIBRARY_PATH="$(brew --prefix ta-lib)/lib"
python3.9 -m pip install --no-cache-dir ta-lib
# 3. 验证是否安装成功
python -c "import talib; print(talib.__version__)"
Windows
下载 ta-lib-0.4.0-msvc.zip,解压到 C:\ta-lib
Linux
$ untar and cd
$ ./configure --prefix=/usr
$ make
$ sudo make install
pip install -r requirements.txt
本项目已切换至akshare数据接口,该项目更新频率较高,使用前建议检查接口更新
pip install akshare --upgrade
cp config.yaml.example config.yaml
$ python main.py
运行结果查看 logs 目录下生成的日志文件 格式为 logs/sequoia-$YEAR-$MONTH-$DAY-$HOUR-$MINUTE-$SECOND.log
如:logs/sequoia-2023-03-03-20-47-56.log
服务器端运行需要改为定时任务,共有两种方式:
使用Python schedule定时任务
cron
配置改为true
,push
.enable
改为true
使用crontab定时任务
cron
配置为false,push
.enable
为true
crontab -e
添加如下内容(服务器端安装了miniconda3): SHELL=/bin/bash
PATH=/usr/bin:/bin:/home/ubuntu/miniconda3/bin/
# m h dom mon dow command
0 3 * * 1-5 source /home/ubuntu/miniconda3/bin/activate python3.10; python3 /home/ubuntu/Sequoia/main.py >> /home/ubuntu/Sequoia/sequoia.log; source /home/ubuntu/miniconda3/bin/deactivate
使用WxPusher实现了微信推送,用户需要自行获取wxpusher_token和wxpusher_uid,并配置到config.yaml
中去。
修改config.yaml中end_date
为指定日期,格式为'YYYY-MM-DD'
,如:
end = '2019-06-17'