mcpField
A
algo-expert

algo-expert

github.com/marketcalls其他942 次安装26 周前更新
代码仓库

关于 algo-expert

面向在 OpenAlgo 上构建生产级算法交易策略的知识库,覆盖回测与实盘执行。内容聚焦风险、成本、数据和下单等实用模式,并支持部署到 OpenAlgo 自托管策略主机。

主要功能

  1. 01单文件兼容回测与实盘
  2. 02VectorBT 回测和成本建模
  3. 03OpenAlgo SDK 与 WebSocket 执行
  4. 04仓位及组合风险指导
  5. 05自托管策略部署规范

适用场景

  1. 01设计同时支持回测和实盘的策略
  2. 02为回测纳入交易成本与滑点
  3. 03规划订单执行及风险控制
  4. 04准备部署到 OpenAlgo /python

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/marketcalls/openalgo-execution-skills --skill algo-expert

安装后在 Claude Code 中输入/algo-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
duckdb-data.md
event-loop.md
execution-patterns.md
execution-types.md
rules/assets/atr_breakout/
strategy.py
rules/assets/bb_squeeze/
strategy.py
rules/assets/core/
cost_model.py
data_router.py
indicator_adapter.py
portfolio_runner.py
preflight.py
risk_manager.py
sizing.py
state.py
strategy_loader.py
rules/assets/donchian/
strategy.py
rules/assets/ema_crossover/
strategy.py
rules/assets/event_driven/
strategy.py
rules/assets/iron_condor/
strategy.py
rules/assets/macd/
strategy.py
rules/assets/ml_logistic/
strategy.py
train.py
rules/assets/ml_xgb/
strategy.py
train.py
rules/assets/opening_range/
strategy.py
rules/assets/pairs_trading/
strategy.py
rules/assets/regime_trend/
strategy.py
rules/assets/rsi/
strategy.py
rules/assets/short_straddle/
strategy.py
rules/assets/supertrend/
strategy.py

详细介绍

OpenAlgo 执行专家

用于在 OpenAlgo 上构建生产级算法交易策略的知识库。每个策略都是一个 Python 文件,可通过一个 CLI 标志(--mode backtest|live)或环境变量(MODE=...),在**回测模式(VectorBT)与实时执行模式(OpenAlgo SDK + WebSocket)**之间切换。

策略也可直接上传到 OpenAlgo 的可自托管 /python 策略主机。

核心原则

  1. 一个文件,两种模式。 同一个 signals(df) 函数同时用于 VectorBT(回测)和实时事件循环。两种模式都会遵循风险阈值和成本假设。
  2. 所有经纪商端操作都通过 OpenAlgo 完成。 通过 client.history() 和 WebSocket 获取数据。通过 client.placeorder() / placesmartorder() / optionsmultiorder() 下单。实时模式还是沙盒模式由 OpenAlgo UI 分析器中的开关决定——策略代码对此一无所知。
  3. 指标库由用户选择——openalgo.ta(默认)或 talib。专业指标(Supertrend、Donchian、Ichimoku、HMA、KAMA)始终来自 openalgo。参见 rules/indicator-libraries.md。
  4. 三种执行类型——eoc(K 线结束时以 MARKET 执行)、limit(实时挂钩 LIMIT)、stop(经纪商端 SL-M 触发单)。用户在创建策略时选择。参见 rules/execution-types.md。
  5. 每次回测都纳入真实世界的成本和滑点(与 vectorbt-backtesting-skills 的印度市场四段模型一致)。参见 rules/transaction-costs.md 和 rules/slippage-handling.md。
  6. 兼容可自托管的 /python——每个策略都按规范优先级读取环境变量、捕获 SIGTERM,并将日志写入 stdout。参见 rules/self-hosted-strategies.md。

应阅读哪些规则

用户想了解……加载这些规则文件
策略模板概览unified-strategy-pattern.md、mode-toggle.md、execution-types.md
指标选择indicator-libraries.md
仓位规模(最重要的修正)position-sizing.md
启动时的预检preflight-checks.md
单个仓位的风险risk-management.md
投资组合级别的风险和每日上限portfolio-risk.md
成本 / 滑点建模transaction-costs.md、slippage-handling.md
数据来源(DuckDB、Historify、API)duckdb-data.md
WebSocket 和 K 线收盘模式websocket-feeds.md、event-loop.md
下单惯用模式execution-patterns.md、order-constants.md
期权策略options-execution.md
波动率策略volatility-strategies.md
ML 策略ml-strategies.md
重启之间的持久状态state-persistence.md
日志记录和 Telegram 警报logging-and-alerts.md
常见生产环境错误pitfalls.md
策略目录 / 模板选择strategy-catalog.md
OpenAlgo /python 自托管self-hosted-strategies.md
符号格式和手数symbol-format.md、lot-sizes.md、order-constants.md
完整 SDK 参考sdk-reference.md

生产模式(摘自 OpenAlgo 示例)

  • 双线程实时模型:信号轮询线程 + WS 回调线程(来自 examples/python/emacrossover_strategy_python.py)。WS 回调绝不直接下单——而是启动一个工作线程。
  • 收盘逻辑使用 iloc[-2],而不是 iloc[-1]——client.history() 中的最后一根 K 线仍在形成,可能导致重绘。
  • 风险退出使用 client.placesmartorder(position_size=0),以便干净地平仓(来自 examples/python/stoploss_target_example.py)。
  • 多腿期权入场通过 client.optionsmultiorder() 实现——为提高保证金效率,先下 BUY 腿。每条腿的止损通过 client.placeorder(price_type="SL") 设置(来自 examples/python/straddle_with_stops.py)。
  • 基于时间的入场通过 apscheduler.schedulers.background.BackgroundScheduler 和 IST cron 实现(来自 examples/python/straddle_scheduler.py)。
  • 任何期权订单前,始终先获取现货报价——先调用 client.quotes(),再调用 client.optionsorder() 并设置 offset="ATM"。

反模式(务必避免)

  • asyncio——OpenAlgo SDK 是同步的;改用 threading
  • 在实时数据上使用 df.iloc[-1]——那是正在形成的 K 线;使用 iloc[-2]
  • 调用 client.history(start_date=end_date)——只会返回 1 根 K 线;务必使用多日回溯
  • 直接在 WS 回调中下退出订单——应启动一个工作线程
  • 可自托管时将 exchange="NSE" 硬编码——应改为读取 OPENALGO_STRATEGY_EXCHANGE 环境变量
  • 使用 fees=0 和 slippage=0 进行回测——结果不切实际;请使用适用于相应板块的常量
  • 以快于 0.5s 的频率轮询 client.get_ltp()——实时数据请使用 WS 回调

参考文档(位于 OpenAlgo 仓库中)

  • SDK:D:/openalgo-python/openalgo/docs/prompt/openalgo python sdk.md
  • 服务:D:/openalgo-python/openalgo/docs/prompt/services_documentation.md
  • WebSocket 协议:D:/openalgo-python/openalgo/docs/prompt/websockets-format.md
  • 可自托管 /python:D:/openalgo-python/openalgo/strategies/README.md
  • 生产示例:D:/openalgo-python/openalgo/examples/python/

评论

支持 Markdown