专业加密货币量化交易系统,支持回测、模拟交易、实盘交易及策略优化
量交易技能:为密码货币市场设计的专业量交易系统,主要包括回试、纸面交易、活贸易以及先进战略优化是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
面向加密货币市场的专业量化交易系统,支持回测、模拟交易、实盘交易及高级策略优化功能。
clawhub install quant-analyst
# 克隆仓库 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"
cd ~/openclaw-quant python -m openclaw_quant --help
自动触发(AUTO-TRIGGER) 当用户消息中包含以下内容时:
backtest、trading strategy、quant、cryptocurrency trading、optimize strategy触发示例(TRIGGER EXAMPLES):
不适用场景(DO NOT USE):
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()
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()
# 自动优化参数
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}")
from openclaw_quant import LiveTrading
# 使用实时数据进行模拟交易
live = LiveTrading(
strategy=MAStrategy,
exchange='binance',
symbol='BTC/USDT',
paper=True # 模拟模式
)
live.run()
# 实盘交易(请谨慎使用!)
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()
# 回测策略 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
智能体可理解如下请求:
系统自动计算全面的绩效指标:
| 指标 | 说明 |
|---|---|
| 总收益率 | 整体盈亏百分比 |
| 年化收益率 | 折算为一年期的收益率 |
| 夏普比率 | 风险调整后收益(越高越好) |
| 索提诺比率 | 仅考虑下行风险的调整后收益 |
| 最大回撤 | 峰值到谷底的最大跌幅 |
| 胜率 | 盈利交易占总交易数的百分比 |
| 盈利因子 | 毛利润 / 毛亏损 |
| 卡玛比率 | 年化收益率 / 最大回撤 |
| 单笔平均盈亏 | 每笔交易的平均盈利或亏损 |
| 期望值 | 每笔交易的预期收益 |
系统预置多种开箱即用策略:
通过 self.I() 方法可调用 50+ 种指标:
趋势类指标:
动量类指标:
波动率类指标:
成交量类指标:
内置风险管理功能示例:
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)
支持多种数据源:
# 示例:从 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
错误:ccxt.NetworkError 或连接超时
解决方案:
# 检查网络连接
# 确认 API 密钥正确无误
# 测试阶段建议使用测试网:
exchange = ccxt.binance({'enableRateLimit': True, 'options': {'defaultType': 'future', 'testnet': True}})
错误:策略所需 K 线数量不足
解决方案:
# 增加预热周期(跳过前 N 根 K 线) bt = Backtest(strategy, data, warmup=100) # 跳过前 100 根 K 线 # 或获取更多历史数据 data = fetcher.fetch_candles(symbol='BTC/USDT', limit=5000)
解决方案:
# 缩小搜索空间
result = bt.optimize(
fast_period=range(5, 20, 5), # 增大步长
slow_period=range(20, 60, 10),
max_tries=50 # 限制迭代次数
)
self.I() 计算指标(一次性完成,避免重复)~/openclaw-quant/QUICKSTART.md~/openclaw-quant/docs/API.md~/openclaw-quant/docs/STRATEGIES.md~/openclaw-quant/README.mdMIT License —— 个人与商业用途均免费
使用本技能时,智能体应遵守以下原则:
应当(DO):
禁止(DON'T):
状态:开发中(Alpha 版本)
作者:@ZhenStaff
最后更新日期:2026-03-05
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习