关于 algo-trading
algo-trading 是用于通过市场数据和经纪商 API 自动执行策略交易的 OpenClaw 技能。它涵盖历史数据分析、回测和实时下单,并提供指标、风险控制及沙盒测试示例。
主要功能
- 01获取实时及历史市场数据
- 02运行基于指标的交易策略
- 03使用历史数据回测策略
- 04通过经纪商 API 下单
- 05使用止损控制和沙盒测试
适用场景
- 01用历史价格比较均线策略
- 02实盘交易前测试 RSI 信号
- 03根据生成的信号提交经纪商订单
- 04在沙盒中模拟交易
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill algo-trading安装后在 Claude Code 中输入/algo-trading确认已加载。
详细介绍
algo-trading
用途
此技能通过将量化模型与金融 API 集成,根据预定义策略执行买卖订单,实现算法交易自动化。它会处理市场数据、运行回测并处理实盘交易,以最大限度减少金融市场中的人工干预。
适用场景
在波动市场中进行高频交易、投资组合优化或策略回测时使用此技能。当你需要依据移动平均线或 RSI 等指标自动执行交易,尤其是针对股票、外汇或加密货币时,可以使用此技能来减少情绪化决策并提升效率。
主要功能
- 使用
/query?function=TIME_SERIES_DAILY等端点,从 Alpha Vantage 或 Yahoo Finance 等 API 获取实时或历史数据。 - 使用内置函数实现移动平均线交叉或均值回归等策略,例如
strategy.run('MA_Crossover', params)。 - 使用历史数据对模型进行回测,并通过夏普比率等指标评估,例如使用命令
backtest --data CSV_FILE --strategy STRATEGY_NAME。 - 通过经纪商 API 执行交易,支持与 Alpaca(例如 POST /v2/orders)或 Robinhood 集成,并提供止损等风险控制。
- 使用 NumPy 等库进行数据分析,例如用 2 行代码计算 RSI:
rsi = talib.RSI(close, timeperiod=14); signals = np.where(rsi > 70, 'sell', 'buy')。
使用模式
使用此技能前,先设置用于身份验证的环境变量,例如 export ALPHA_VANTAGE_API_KEY=$SERVICE_API_KEY。在代码中使用 import openclaw; oc = openclaw.Skill('algo-trading') 初始化技能。使用命令行时,运行 openclaw algo-trading init --config config.json 以加载策略文件。在脚本中,通过 oc.execute_strategy('MA_Crossover', symbols=['AAPL'], timeframe='1d') 调用策略。始终使用 try-except 块包装调用,以增强错误恢复能力。进行实盘交易时,使用以下标志启用:oc.run_live('--broker alpaca --key $ALPACA_KEY')。
常用命令/API
- CLI 命令:运行
openclaw algo-trading run --strategy MA_Crossover --symbols AAPL,GOOG --timeframe 1h,对指定股票执行策略。 - API 端点:GET https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&apikey=$SERVICE_API_KEY,用于获取盘中数据。
- 代码片段:
import openclaw oc = openclaw.Skill('algo-trading') data = oc.fetch_data('AAPL', '1d') # Fetches daily data signals = oc.analyze_strategy('MA_Crossover', data) - 配置格式:使用 JSON 编写策略,例如 {"strategy": "MA_Crossover", "params": {"short_window": 50, "long_window": 200}, "symbols": ["AAPL"]}。通过
openclaw algo-trading load-config path/to/config.json加载。 - 另一条命令:运行
openclaw algo-trading backtest --file historical.csv --strategy RSI_Overbought --iterations 100以进行模拟。 - API 调用示例:向 https://api.alpaca.markets/v2/orders 发送 POST 请求,并在请求体中包含 {"symbol": "AAPL", "qty": 10, "side": "buy", "type": "market"} 以提交订单;使用 $ALPACA_KEY header 进行身份验证。
集成说明
通过运行 openclaw add-skill algo-trading 将此技能添加到你的 OpenClaw Agent 中。对于外部 API,请在环境变量中设置身份验证信息,例如 export BROKER_API_KEY=$SERVICE_API_KEY,并在代码中使用:oc.set_auth('alpaca', os.environ['BROKER_API_KEY'])。确保数据管道格式一致,例如将 API 响应解析为 Pandas DataFrame 以供分析。对于 Webhook,请配置回调,例如 oc.register_webhook('/triggers', lambda event: oc.execute_strategy('event_strategy'))。先在沙盒环境中测试集成,使用 --sandbox true 等标志模拟交易,而不实际执行。
错误处理
始终通过在调用外层使用 try-except 来检查 API 错误,例如:
try:
response = oc.fetch_data('AAPL', '1d')
except APIError as e:
print(f"API Error: {e.code} - {e.message}") # Handles 429 for rate limits
通过实现重试来处理速率限制等常见问题:使用 oc.retry_on_error(call_func, max_retries=3)。对于无效配置,使用 openclaw algo-trading validate-config config.json 进行验证,该命令会返回类似 "Missing param: short_window" 的错误。为便于审计,请记录所有错误及其时间戳,例如使用 oc.log_error('Trade failed: insufficient funds')。如果身份验证失败,请提示检查环境变量,例如确保已设置 $SERVICE_API_KEY。
具体用法示例
-
回测移动平均策略:加载历史数据并运行回测。命令:
openclaw algo-trading backtest --file aapl_historical.csv --strategy MA_Crossover。代码示例:oc = openclaw.Skill('algo-trading') data = oc.load_data('aapl_historical.csv') results = oc.backtest_strategy('MA_Crossover', data) print(results['sharpe_ratio']) # Outputs e.g., 1.2这会分析过去的表现,以便在实盘使用前优化策略。
-
根据 RSI 信号执行实盘交易:获取实时数据、生成信号并下单。命令:
openclaw algo-trading run --strategy RSI_Overbought --symbols TSLA --broker alpaca。代码示例:oc = openclaw.Skill('algo-trading') rsi_data = oc.fetch_data('TSLA', '1m') signal = oc.analyze_strategy('RSI_Overbought', rsi_data) if signal == 'sell': oc.execute_trade('TSLA', 'sell', 5) # Sells 5 shares这会使用实时 API 调用,在 RSI 超过 70 时自动卖出。
图关系
- 依赖于:financial-data-fetcher(用于获取市场数据)
- 相关于:risk-analysis(用于评估交易风险)
- 冲突于:manual-trading(由于侧重自动化)
- 增强:portfolio-management(通过添加自动化策略)