关于 algo-expert
面向在 OpenAlgo 上构建生产级算法交易策略的知识库,覆盖回测与实盘执行。内容聚焦风险、成本、数据和下单等实用模式,并支持部署到 OpenAlgo 自托管策略主机。
主要功能
- 01单文件兼容回测与实盘
- 02VectorBT 回测和成本建模
- 03OpenAlgo SDK 与 WebSocket 执行
- 04仓位及组合风险指导
- 05自托管策略部署规范
适用场景
- 01设计同时支持回测和实盘的策略
- 02为回测纳入交易成本与滑点
- 03规划订单执行及风险控制
- 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.mdevent-loop.mdexecution-patterns.mdexecution-types.mdrules/assets/atr_breakout/strategy.pyrules/assets/bb_squeeze/strategy.pyrules/assets/core/cost_model.pydata_router.pyindicator_adapter.pyportfolio_runner.pypreflight.pyrisk_manager.pysizing.pystate.pystrategy_loader.pyrules/assets/donchian/strategy.pyrules/assets/ema_crossover/strategy.pyrules/assets/event_driven/strategy.pyrules/assets/iron_condor/strategy.pyrules/assets/macd/strategy.pyrules/assets/ml_logistic/strategy.pytrain.pyrules/assets/ml_xgb/strategy.pytrain.pyrules/assets/opening_range/strategy.pyrules/assets/pairs_trading/strategy.pyrules/assets/regime_trend/strategy.pyrules/assets/rsi/strategy.pyrules/assets/short_straddle/strategy.pyrules/assets/supertrend/strategy.py详细介绍
OpenAlgo 执行专家
用于在 OpenAlgo 上构建生产级算法交易策略的知识库。每个策略都是一个 Python 文件,可通过一个 CLI 标志(--mode backtest|live)或环境变量(MODE=...),在**回测模式(VectorBT)与实时执行模式(OpenAlgo SDK + WebSocket)**之间切换。
策略也可直接上传到 OpenAlgo 的可自托管 /python 策略主机。
核心原则
- 一个文件,两种模式。 同一个
signals(df)函数同时用于 VectorBT(回测)和实时事件循环。两种模式都会遵循风险阈值和成本假设。 - 所有经纪商端操作都通过 OpenAlgo 完成。 通过
client.history()和 WebSocket 获取数据。通过client.placeorder()/placesmartorder()/optionsmultiorder()下单。实时模式还是沙盒模式由 OpenAlgo UI 分析器中的开关决定——策略代码对此一无所知。 - 指标库由用户选择——
openalgo.ta(默认)或talib。专业指标(Supertrend、Donchian、Ichimoku、HMA、KAMA)始终来自 openalgo。参见rules/indicator-libraries.md。 - 三种执行类型——
eoc(K 线结束时以 MARKET 执行)、limit(实时挂钩 LIMIT)、stop(经纪商端 SL-M 触发单)。用户在创建策略时选择。参见rules/execution-types.md。 - 每次回测都纳入真实世界的成本和滑点(与
vectorbt-backtesting-skills的印度市场四段模型一致)。参见rules/transaction-costs.md和rules/slippage-handling.md。 - 兼容可自托管的
/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