专业的加密货币量化交易系统——支持回测、模拟交易、实盘交易及策略优化
量交易技能:为密码货币市场设计的专业量交易系统,主要包括回试、纸面交易、活贸易以及先进战略优化
功能概述
量交易技能:为密码货币市场设计的专业量交易系统,主要包括回试、纸面交易、活贸易以及先进战略优化是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
量化交易技能
面向加密货币市场的专业量化交易系统,支持回测、模拟交易、实盘交易及高级策略优化功能。
安装
步骤 1:安装技能
clawhub install quant-trader
步骤 2:克隆并配置项目
# 克隆仓库 git clone https://github.com/ZhenRobotics/openclaw-quant.git ~/openclaw-quant cd ~/openclaw-quant # 安装依赖 pip install -r requirements.txt # 设置 API 密钥(回测可选) export BINANCE_API_KEY="your-key" export BINANCE_API_SECRET="your-secret"
步骤 3:验证安装
cd ~/openclaw-quant python -m openclaw_quant --help
核心功能
- 回测引擎:基于历史数据进行高保真策略测试
- 模拟交易:使用实时行情数据进行实时仿真
- 实盘交易:在真实交易所(Binance、OKX 等)自动执行交易
- 策略优化:采用贝叶斯方法进行参数优化
- 技术指标:内置 50+ 种指标(MA、RSI、MACD、布林带等)
- 风险管理:仓位控制、止损、止盈
- 绩效分析:夏普比率、最大回撤、胜率、盈利因子
- 多交易所支持:通过 ccxt 库接入 100+ 交易所
适用场景
自动触发(AUTO-TRIGGER)当用户消息中包含以下内容时:
- 关键词:
backtest、trading strategy、quant、cryptocurrency trading、optimize strategy - 请求示例:“测试该交易策略”、“回测 MA 交叉策略”、“对比特币进行模拟交易”
- 策略描述:“RSI < 30 时买入,RSI > 70 时卖出”
- 绩效相关问题:“夏普比率是多少?”、“计算最大回撤”
触发示例(TRIGGER EXAMPLES):
- “在比特币上回测移动平均线交叉策略”
- “对过去六个月的 RSI 参数进行优化”
- “使用我的动量策略启动模拟交易”
- “该策略的胜率是多少?”
不适用场景(DO NOT USE):
- 仅需投资组合追踪(请使用 portfolio-tracker 技能)
- 仅需价格提醒(请使用 price-alert 技能)
- 通用加密货币新闻或信息查询
快速入门示例
示例 1:简单移动平均策略
from openclaw_quant import Strategy, Backtest
class MAStrategy(Strategy):
# 参数(支持后续优化)
fast_period = 10
slow_period = 30
def init(self):
# 向量化指标计算
self.fast_ma = self.I(SMA, self.data.Close, self.fast_period)
self.slow_ma = self.I(SMA, self.data.Close, self.slow_period)
def next(self):
# 事件驱动逻辑
if self.fast_ma[-1] > self.slow_ma[-1]:
if not self.position:
self.buy()
else:
if self.position:
self.sell()
# 回测
bt = Backtest(MAStrategy, data, cash=10000, commission=0.001)
result = bt.run()
print(result)
result.plot()
示例 2:RSI 均值回归策略
class RSIStrategy(Strategy):
rsi_period = 14
oversold = 30
overbought = 70
def init(self):
self.rsi = self.I(RSI, self.data.Close, self.rsi_period)
def next(self):
if self.rsi[-1] < self.oversold:
if not self.position:
self.buy()
elif self.rsi[-1] > self.overbought:
if self.position:
self.sell()
bt = Backtest(RSIStrategy, data, cash=10000)
result = bt.run()
示例 3:参数优化
# 自动优化参数
result = bt.optimize(
fast_period=range(5, 20, 2),
slow_period=range(20, 60, 5),
maximize='sharpe_ratio' # 或 'total_return'、'profit_factor'
)
print(f"最优参数: {result.best_params}")
print(f"夏普比率: {result.sharpe_ratio:.2f}")
示例 4:模拟交易
from openclaw_quant import LiveTrading
# 使用实时数据进行模拟交易
live = LiveTrading(
strategy=MAStrategy,
exchange='binance',
symbol='BTC/USDT',
paper=True # 模拟模式
)
live.run()
示例 5:实盘交易
# 实盘交易(请谨慎使用!)
live = LiveTrading(
strategy=MAStrategy,
exchange='binance',
symbol='BTC/USDT',
paper=False, # 实盘模式
api_key=os.getenv('BINANCE_API_KEY'),
api_secret=os.getenv('BINANCE_API_SECRET')
)
live.run()
Agent 使用指南
命令行接口(CLI)
# 回测策略 openclaw-quant backtest --strategy ma_cross --symbol BTCUSDT --days 365 # 参数优化 openclaw-quant optimize --strategy rsi --symbol ETHUSDT --metric sharpe_ratio # 模拟交易 openclaw-quant paper --strategy ma_cross --symbol BTCUSDT # 实盘交易 openclaw-quant live --strategy ma_cross --symbol BTCUSDT --confirm # 查看结果 openclaw-quant results --backtest-id abc123
自然语言交互(通过 OpenClaw Agent)
Agent 可理解如下请求:
- “在比特币上对移动平均线交叉策略进行为期一年的回测”
- “优化 RSI 参数以最大化夏普比率”
- “使用我的动量策略,以 10,000 USDT 启动模拟交易”
- “展示最近一次回测的绩效指标”
- “我实盘账户的最大回撤是多少?”
绩效指标
系统计算全面的绩效指标:
| 指标 | 说明 |
|---|---|
| 总收益率 | 整体盈亏百分比 |
| 年化收益率 | 将收益外推至一年期 |
| 夏普比率 | 风险调整后收益(越高越好) |
| 索提诺比率 | 下行风险调整后收益 |
| 最大回撤 | 从峰值到谷底的最大跌幅 |
| 胜率 | 盈利交易占总交易的比例 |
| 盈利因子 | 毛利润 / 毛亏损 |
| 卡玛比率 | 收益率 / 最大回撤 |
| 平均盈利/亏损 | 每笔交易的平均盈亏额 |
| 期望值 | 每笔交易的预期收益 |
内置策略
系统预置多种即用型策略:
- MA Cross:移动平均线交叉策略
- RSI 均值回归:超卖买入、超买卖出
- MACD 动量:MACD 线与信号线交叉
- 布林反弹:交易布林带触碰点
- 突破策略:支撑/阻力位突破
- 网格交易:在震荡区间内低买高卖
- DCA(定投):定期定额累积
- 均值回归:统计套利策略
技术指标
通过 self.I() 方法可调用 50+ 种指标:
趋势类指标:
- SMA、EMA、WMA、DEMA、TEMA
- MACD、ADX、Aroon、Supertrend
动量类指标:
- RSI、Stochastic、CCI、Williams %R
- ROC(变动速率)、Momentum
波动率类指标:
- 布林带、ATR、Keltner 通道
- 标准差、历史波动率
成交量类指标:
- OBV、Volume SMA、MFI、VWAP
- 累积/派发线、CMF
风险管理
内置风险管理功能:
class MyStrategy(Strategy):
def init(self):
# 设置风险参数
self.risk_per_trade = 0.02 # 单笔交易承担 2% 资金风险
self.stop_loss = 0.05 # 止损幅度为 5%
self.take_profit = 0.10 # 止盈幅度为 10%
self.ma = self.I(SMA, self.data.Close, 20)
def next(self):
if self.ma[-1] > self.data.Close[-1]:
if not self.position:
# 基于风险计算仓位大小
size = self.calculate_position_size(
risk=self.risk_per_trade,
stop_loss=self.stop_loss
)
self.buy(size=size)
self.set_stop_loss(self.stop_loss)
self.set_take_profit(self.take_profit)
数据源
支持多种数据来源:
- 交易所 API:Binance、OKX、Bybit 等(通过 ccxt)
- CSV 文件:从本地文件加载历史数据
- 数据库:PostgreSQL、SQLite(用于缓存)
- 实时 WebSocket:获取实时行情数据
# 示例:从 Binance 加载数据
from openclaw_quant import DataFetcher
fetcher = DataFetcher('binance')
data = fetcher.fetch_candles(
symbol='BTC/USDT',
timeframe='1h',
since='2023-01-01',
limit=1000
)
配置
配置文件示例(config.yaml):
backtest:
initial_capital: 10000
commission: 0.001 # 0.1%
slippage: 0.0005 # 0.05%
strategy:
name: ma_cross
parameters:
fast_period: 10
slow_period: 30
exchange:
name: binance
testnet: false
risk:
max_position_size: 0.1 # 占资金总额 10%
max_drawdown: 0.2 # 回撤达 20% 时暂停
daily_loss_limit: 0.05 # 单日亏损达 5% 时暂停
notification:
telegram:
enabled: true
bot_token: "your-token"
chat_id: "your-chat-id"
项目结构
openclaw-quant/ ├── src/ │ ├── openclaw_quant/ │ │ ├── __init__.py │ │ ├── strategy.py # 策略基类 │ │ ├── backtest.py # 回测引擎 │ │ ├── live.py # 实盘交易引擎 │ │ ├── broker.py # 订单执行模块 │ │ ├── data.py # 数据获取模块 │ │ ├── indicators.py # 技术指标模块 │ │ ├── optimizer.py # 参数优化模块 │ │ ├── metrics.py # 绩效指标模块 │ │ └── risk.py # 风险管理模块 │ └── strategies/ │ ├── ma_cross.py │ ├── rsi.py │ └── ... ├── examples/ │ ├── backtest_example.py │ ├── optimization_example.py │ └── paper_trading_example.py ├── tests/ ├── docs/ ├── requirements.txt └── README.md
依赖要求
Python >= 3.9 pandas >= 2.0.0 numpy >= 1.24.0 ccxt >= 4.0.0 optuna >= 3.0.0 matplotlib >= 3.7.0 pydantic >= 2.0.0
故障排查
问题 1:API 连接错误
错误:ccxt.NetworkError 或连接超时
解决方案:
# 检查网络连接
# 验证 API 密钥是否正确
# 测试阶段建议使用测试网:
exchange = ccxt.binance({'enableRateLimit': True, 'options': {'defaultType': 'future', 'testnet': True}})
问题 2:数据不足
错误:K线数量不足以运行策略
解决方案:
# 增加预热周期(跳过前 N 根 K 线) bt = Backtest(strategy, data, warmup=100) # 跳过前 100 根 K 线 # 或获取更多历史数据 data = fetcher.fetch_candles(symbol='BTC/USDT', limit=5000)
问题 3:参数优化耗时过长
解决方案:
# 缩小搜索空间
result = bt.optimize(
fast_period=range(5, 20, 5), # 增大步长
slow_period=range(20, 60, 10),
max_tries=50 # 限制最大尝试次数
)
安全准则
回测
- 务必先在历史数据上完成测试
- 使用贴近真实的手续费与滑点设置
- 警惕过拟合风险
- 推荐采用滚动向前验证(Walk-forward Validation)
模拟交易
- 至少持续测试 1–2 周
- 监控实际滑点与成交情况
- 在不同市场行情下验证策略行为
实盘交易
- 初始投入小额资金
- 设定严格的风控阈值
- 首周需持续监控
- 必须配备紧急停止机制
- 切勿投入超出承受能力的资金
性能优化建议
- 向量化计算:使用
self.I()调用指标(一次性计算,高效复用) - 数据缓存:缓存历史数据以避免重复调用 API
- 优化方法:优先使用贝叶斯优化,而非穷举式网格搜索
- 并行回测:同时对多个交易对执行回测
- WebSocket:使用 WebSocket 获取实时行情(比 REST 更快)
文档资源
- GitHub 仓库:https://github.com/ZhenRobotics/openclaw-quant
- 快速入门:
~/openclaw-quant/QUICKSTART.md - API 参考:
~/openclaw-quant/docs/API.md - 策略指南:
~/openclaw-quant/docs/STRATEGIES.md - 完整说明文档:
~/openclaw-quant/README.md
路线图
版本 0.1.0(当前)
- 基础回测引擎
- 简易策略(MA、RSI)
- Binance 支持
版本 0.2.0
- 模拟交易
- 参数优化
- 更多技术指标
版本 0.3.0
- 实盘交易
- 多交易所支持
- 高级风险管理
版本 1.0.0
- 生产就绪版本
- Web 仪表盘
- 策略市场
成本说明
- 开发:免费开源(MIT License)
- 数据:免费(使用交易所公开 API)
- 交易手续费:依交易所而异(通常为 0.1%)
- API 成本:多数交易所提供免费额度
许可证
MIT License —— 可免费用于个人及商业用途
技术支持
- 问题反馈:https://github.com/ZhenRobotics/openclaw-quant/issues
- 讨论区:https://github.com/ZhenRobotics/openclaw-quant/discussions
- ClawHub 页面:https://clawhub.ai/ZhenStaff/openclaw-quant
Agent 行为准则
使用本技能时,Agent 应遵循以下规范:
应做(DO):
- 使用前确认项目已正确安装
- 在实盘交易模式下明确提示风险
- 校验策略参数的有效性
- 清晰展示各项绩效指标
- 解释参数优化结果及其含义
禁止(DON'T):
- 未经用户显式确认执行实盘交易
- 推荐具体交易策略
- 承诺收益或盈利保证
- 忽略风险警告
- 提供金融投资建议
状态:开发中(Alpha 版本)
作者:@ZhenStaff
最后更新:2026-03-05
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章