mcpField
A
algo-trading

algo-trading

github.com/alphaonedev其他202 次安装
代码仓库

关于 algo-trading

algo-trading 是用于通过市场数据和经纪商 API 自动执行策略交易的 OpenClaw 技能。它涵盖历史数据分析、回测和实时下单,并提供指标、风险控制及沙盒测试示例。

主要功能

  1. 01获取实时及历史市场数据
  2. 02运行基于指标的交易策略
  3. 03使用历史数据回测策略
  4. 04通过经纪商 API 下单
  5. 05使用止损控制和沙盒测试

适用场景

  1. 01用历史价格比较均线策略
  2. 02实盘交易前测试 RSI 信号
  3. 03根据生成的信号提交经纪商订单
  4. 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。

具体用法示例

  1. 回测移动平均策略:加载历史数据并运行回测。命令: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
    

    这会分析过去的表现,以便在实盘使用前优化策略。

  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(通过添加自动化策略)

评论

支持 Markdown