Skip to main content

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 runpip 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awesome_trading_strategy-0.1.0.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awesome_trading_strategy-0.1.0-py3-none-any.whl (60.7 kB view details)

Uploaded Python 3

File details

Details for the file awesome_trading_strategy-0.1.0.tar.gz.

File metadata

File hashes

Hashes for awesome_trading_strategy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8e53dcd605b53749697f4a600bd250a65a58e1a2c5842b3774967180b025dea2
MD5 69d2c7275121b7bbae6a1bb15fd72e5a
BLAKE2b-256 31c9f3a14ac1e019caab99f71dcf0a38ec7345af2f8ddbf2133d9c6d250e2d2c

See more details on using hashes here.

File details

Details for the file awesome_trading_strategy-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for awesome_trading_strategy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44485671fbf8ab5b23982d04725120349abaec3353b15cb38df3026bdb62ae7d
MD5 b4ba097eb977a48779989e6a48a21ff3
BLAKE2b-256 5a6c26b0e54230dd248756b59b5e87995cb9d98134bdc5135ddc9b45afb9eead

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page