Awesome Trading Strategy Skill - CLI tool for strategy management, journals, and signals
Project description
Trading Strategy (交易策略管理工具)
一个自动化命令行 (CLI) 工具,用于管理你的交易策略、记录交易日志以及生成交易表现复盘报告。
目前该项目使用 uv 进行环境和依赖管理。uv 是一个极其快速的 Python 包和项目管理器。
核心功能
- 策略管理:创建、查看、更新和列出你的各种交易策略。
- 交易日志 (Journaling):详细记录你执行的每一笔交易,包括进出场逻辑、盈亏 (PnL)、多维度打分和情绪状态。
- 报告与复盘:根据已记录的交易事实,自动生成每周和每月的复盘日志与相关统计指标。
- 信号生成:基于技术指标自动生成买卖信号,支持双均线、海龟交易、组合策略等。
安装指南
方式一:开发模式 (推荐)
请确保你已经安装了 uv 工具,然后在这个项目根目录下执行以下命令:
uv sync
方式二:正式安装
通过 pip 安装发布版本:
pip install trading-strategy
# 首次使用需初始化用户数据目录
awesome-trading-strategy init
(注意:本项目要求 Python 3.12 及以上版本)
运行模式
本项目支持两种运行模式,数据存储位置不同:
| 模式 | 触发条件 | 数据目录 |
|---|---|---|
| 开发模式 | uv run 或 pip install -e . 且当前目录有 trading.yaml |
项目目录 ./data/ |
| 安装模式 | pip install 后在任意目录运行 |
用户目录 ~/.awesome-trading-strategy/ |
数据目录结构
# 开发模式 - 项目目录
./configs/
├── trading.yaml # 主配置
├── signal-params.yaml # 信号参数
└── macro_state.yaml # 宏观风控状态
./data/
├── journals/{YYYY-MM}/ # 交易日志
├── signals/{YYYY-MM}/ # 信号记录
├── strategies/custom/ # 自定义策略 (动态加载)
└── reviews/ # 复盘报告
# 安装模式 - 用户目录 (~/.awesome-trading-strategy/)
结构同上,init 时从项目 configs/ 复制默认配置
使用方法
开发模式
uv run python -m scripts.cli --help
安装模式
awesome-trading-strategy --help
常用命令示例
1. 创建新交易策略
# 开发模式
uv run python -m scripts.cli create-strategy --name "均线突破" --type "趋势" --markets "加密货币" --timeframes "1H,4H" --entry "价格突破阻力位" --stop "放在近期波段低点下方"
# 安装模式
awesome-trading-strategy create-strategy --name "均线突破" --type "趋势" --markets "加密货币" --timeframes "1H,4H" --entry "价格突破阻力位" --stop "放在近期波段低点下方"
2. 列出所有策略
uv run python -m scripts.cli list-strategies --status active
3. 查看某个策略详情
uv run python -m scripts.cli get-strategy --name "均线突破"
4. 更新一个策略
uv run python -m scripts.cli update-strategy --name "均线突破" --status active --reason "策略已回测,准备部署实盘"
5. 记录一笔真实交易 (日志)
uv run python -m scripts.cli record-trade --symbol "BTCUSDT" --direction "long" --entry-price "60000" --exit-price "65000" --strategy "均线突破" --size "0.1"
6. 查询过去的交易记录
uv run python -m scripts.cli query-journals --strategy "均线突破" --result "win"
7. 生成复盘报告
uv run python -m scripts.cli generate-review --type weekly --week "this"
uv run python -m scripts.cli generate-review --type monthly --month "last"
全局可选参数
--format [json|markdown]:选择终端的文本输出格式 (默认格式是json)。--config:提供一个自定义.yaml配置文件的路径。
例如 (使用 Markdown 格式让输出更易读):
uv run python -m scripts.cli --format markdown list-strategies
项目结构概览
trading-strategy/
├── scripts/ # 核心 Python 模块
│ ├── __init__.py
│ ├── cli.py # 命令行入口
│ ├── config.py # 配置加载器
│ ├── strategy_manager.py # 策略管理
│ ├── journal_manager.py # 日志管理
│ ├── signal_manager.py # 信号管理
│ ├── signal_engine.py # 信号引擎
│ ├── risk_filter.py # 风控过滤
│ ├── review_generator.py # 复盘生成
│ └── resources/ # 包内置资源 (随包安装)
│ └── templates/ # 模板文件
├── configs/ # 配置文件
│ ├── trading.yaml # 主配置
│ ├── signal-params.yaml # 信号参数
│ └── macro_state.yaml # 宏观风控状态
├── data/ # 数据存储 (开发模式)
│ ├── journals/
│ ├── signals/
│ ├── strategies/custom/
│ └── reviews/
├── references/ # 文档说明
├── examples/ # 示例数据
├── docs/ # 文档
└── pyproject.toml # 项目配置
信号系统
内置策略
| 策略名称 | 说明 | 适用场景 |
|---|---|---|
ma_crossover |
双均线交叉(纯K线分析) | 趋势行情 |
ma_position_aware |
持仓感知均线策略 | 结合实际仓位决策 |
turtle |
海龟交易/唐奇安通道 | 突破行情 |
rsi |
RSI 超买超卖 | 震荡行情 |
macd |
MACD 交叉 | 趋势确认 |
bollinger |
布林带突破 | 波动率交易 |
composite |
技术+新闻组合 | 需要消息面过滤 |
信号生成示例
# 1. 首先获取市场数据(需要安装 ccxt: uv add ccxt)
uv run python scripts/fetch_data.py --symbol BTC/USDT --timeframe 4h --output data/btc_latest.yaml
# 2. 生成信号
uv run python -m scripts.cli generate-signals \
--symbols "BTC/USDT" \
--strategy ma_crossover \
--data-file data/btc_latest.yaml \
--save
# 2b. 多文件导入(K线+新闻自动合并)
uv run python -m scripts.cli generate-signals \
--symbols "BTC/USDT" \
--strategy news_sentiment \
--data-file data/btc_latest.yaml \
--data-file data/news.yaml \
--save
# 3. 查看历史信号
uv run python -m scripts.cli list-signals --symbol BTC/USDT
风控管理
# 查看当前风控状态
uv run python -m scripts.cli get-macro-state
# 暂停所有交易
uv run python -m scripts.cli set-macro-state --risk-on false
# 恢复交易
uv run python -m scripts.cli set-macro-state --risk-on true
文档索引
新手必读
| 文档 | 说明 |
|---|---|
| 新手完全指南 | 从零开始使用本项目的完整教程 |
| 系统完整指南 | 核心文档:所有功能模块详解、业务逻辑、功能关联图谱 |
| 数据导入规范 | 详细的数据格式说明和获取方法 |
| 策略迭代指南 | 如何持续优化和迭代策略 |
测试数据
| 文件 | 说明 |
|---|---|
| examples/README.md | 测试数据索引 |
| examples/ma_crossover_long.yaml | 双均线做多信号示例 |
| examples/position_aware_example.yaml | 持仓感知策略示例 |
| examples/turtle_long.yaml | 海龟策略突破示例 |
| examples/composite_blocked.yaml | 组合策略过滤示例 |
参考文档
| 文档 | 说明 |
|---|---|
| 信号使用指南 | 信号系统详细说明 |
| 数据适配指南 | 数据适配器开发指南 |
| 策略模板 | 创建策略的模板 |
| 交易日志模板 | 交易日志格式 |
快速开始
# 1. 安装依赖
uv sync
# 2. 列出可用策略引擎
uv run python -m scripts.cli list-strategy-engines
# 3. 使用示例数据测试
uv run python -m scripts.cli generate-signals \
--symbols "BTC/USDT" \
--strategy ma_crossover \
--data-file examples/ma_crossover_long.yaml
# 3b. 多文件导入示例(新闻情绪策略)
uv run python -m scripts.cli generate-signals \
--symbols "BTC/USDT,ETH/USDT" \
--strategy news_sentiment \
--data-file examples/news_sentiment_test.yaml
# 4. 创建你的第一个策略
uv run python -m scripts.cli create-strategy \
--name "我的策略" \
--type "趋势" \
--markets "加密货币" \
--timeframes "4H" \
--entry "突破前高" \
--stop "放在支撑位下方"
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file awesome_trading_strategy-0.1.0.tar.gz.
File metadata
- Download URL: awesome_trading_strategy-0.1.0.tar.gz
- Upload date:
- Size: 60.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e53dcd605b53749697f4a600bd250a65a58e1a2c5842b3774967180b025dea2
|
|
| MD5 |
69d2c7275121b7bbae6a1bb15fd72e5a
|
|
| BLAKE2b-256 |
31c9f3a14ac1e019caab99f71dcf0a38ec7345af2f8ddbf2133d9c6d250e2d2c
|
File details
Details for the file awesome_trading_strategy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: awesome_trading_strategy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 60.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44485671fbf8ab5b23982d04725120349abaec3353b15cb38df3026bdb62ae7d
|
|
| MD5 |
b4ba097eb977a48779989e6a48a21ff3
|
|
| BLAKE2b-256 |
5a6c26b0e54230dd248756b59b5e87995cb9d98134bdc5135ddc9b45afb9eead
|