这是一个量化交易框架,支持
- AI股价/新闻分析并对当天交易做出决策
- 加密货币自动交易
- 自定义策略与策略回测
本项目包含两类测试:
这些测试使用Mock对象,运行速度快,用于验证代码逻辑的正确性:
# 运行所有单元测试
pytest
# 运行特定测试文件
pytest test/test_agent_tool_call.py
# 运行时显示详细信息
pytest -v
这些测试使用真实的API调用,需要网络连接和有效的API配置,默认不会运行:
# 只运行集成测试
pytest -m integration
# 运行特定的集成测试类
pytest test/test_agent_tool_call.py::TestAgentWithRealPaoluzProvider
# 运行集成测试并显示详细信息
pytest -m integration -v
- 集成测试被标记为
@pytest.mark.integration
,默认被排除在常规测试运行之外 - 慢速测试被标记为
@pytest.mark.slow
- 配置文件
pytest.ini
中设置了默认过滤规则
项目包含完整的Agent工具调用功能测试:
- Mock测试:快速验证工具注册、调用逻辑和错误处理
- 集成测试:使用真实的Paoluz Provider验证端到端功能,包括:
- 真实API调用
- 工具注册和执行
- 多轮对话上下文管理
- 错误处理机制
运行集成测试需要在 .env
文件中配置有效的 PAOLUZ_AI_TOKEN
。
- 确保已安装 Docker。
- 构建 Docker 镜像:
docker build -t ai-quant .
- 运行容器并进入 Bash:
docker run -it -v ~/quant.sqlite:/app/quant.sqlite ai-quant bash
-
安装 Python 3.12 或更高版本。
-
安装 TA-Lib C 库:
wget https://github.com/ta-lib/ta-lib/releases/download/v0.6.4/ta-lib-0.6.4-src.tar.gz tar -xzf ta-lib-0.6.4-src.tar.gz cd ta-lib-0.6.4/ ./configure --prefix=/usr make sudo make install cd .. rm -rf ta-lib-0.6.4 ta-lib-0.6.4-src.tar.gz
如果是在windows下,可以直接访问https://github.com/cgohlke/talib-build/releases下载whl包,并直接`pip install`
-
安装 Python 依赖:
pip install --no-cache-dir -r requirements.txt
-
安装本项目:
pip install -e .
创建一个.env文件,在其中配置环境变量,支持哪些环境变量可以在config.py查看
下面是一个Example
LOG_LEVEL=INFO
CREATE_TABLE=TRUE
PUSH_PLUS_TOKEN='' # 用于接收定时任务消息结果
SILICONFLOW_TOKEN='' # 硅基流动模型token
PAOLUZ_AI_TOKEN='' # 某大模型供应商的token
BAI_CHUAN_TOKEN='' # 百川大模型
申请硅基流动大模型令牌:https://siliconflow.cn/
申请PAOLUZ大模型令牌:https://chatapi.nloli.xyz
如果想支持其它大模型的Provider也非常简单,参考siliconflow.py, 只要是兼容OPENAI的大模型,都可以简单替换其中的参数实现
python3 scripts/gpt_trade_v2.py BTC/USDT "比特币4月AI模拟交易测试" 1000 \
--start-time 2025-04-01 --end-time 2025-04-30 \
--advice-model-provider siliconflow --advice-model deepseek-ai/DeepSeek-V3 \
--news-summary-model-provider siliconflow --news-summary-model THUDM/glm-4-9b-chat \
--risk-prefer 风险喜好型 --strategy-prefer 高抛低吸,见好就收,分批买入
这个程序会模拟从4月1号到4月29号币安交易所的BTC/USDT历史走势,模拟4月1号到4月29号每一天根据当时的历史数据、新闻进行分析,并做出决策,这个过程中,每一天都要总结历史新闻并结合历史数据做出决策,一次会调用两次大模型接口,4月1号到4月29号一共29天,所以一共要调用29 * 2 = 58次大模型接口,速度会比较慢。最终运行结果如下:
运行结果:
其中灰色的线代表本金全部一次新投资的收益走势,蓝色的线代表AI操盘的收益,在这个图中,由于AI没有一次新投入所有本金,后面下跌的时候也没有加仓,币价总体呈上升趋势,所以收益没有跑赢梭哈的收益。
图片标题的地方显示中文不成功,忽略这个问题=-=
python3 scripts/gpt_trade_v2.py 600588 "用友网络4月AI模拟交易测试" 10000 \
--start-time 2025-04-01 --end-time 2025-04-30 \
--advice-model-provider siliconflow --advice-model deepseek-ai/DeepSeek-V3 \
--news-summary-model-provider siliconflow --news-summary-model THUDM/glm-4-9b-chat \
--risk-prefer 稳健型 --strategy-prefer 跟进利好消息分批买入