ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ruflo-neural-trader 组合优化实战:基于 mean-variance 引擎的资产配置、风险约束与再平衡

ruflo-neural-trader 组合优化实战:基于 mean-variance 引擎的资产配置、风险约束与再平衡 ruflo-neural-trader 组合优化实战基于 mean-variance 引擎的资产配置、风险约束与再平衡【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflotrader-portfolio是 ruflo-neural-trader 插件中负责组合级决策的核心技能它把npx neural-trader的 mean-variance均值-方差组合优化引擎、风险度量命令和 AgentDB 记忆系统串成一条可复现的流水线从「读取当前持仓」到「生成再平衡交易计划」再到「落库存档」。读完本文你将掌握如何在该插件中完成带风险目标的组合优化、用 VaR/相关性指标约束配置、借助 SONA 神经预测注入预期收益以及把优化结果沉淀为可检索、可追溯的历史资产。本文以 trader-portfolio/SKILL.md 为主体骨架并结合 ruflo-neural-trader 插件源码 中的底层实现子线性求解器、命名空间约定、多智能体风险门禁做纵深展开。技能定位组合层而非标的层的决策入口在 ruflo-neural-trader 的九大技能体系中trader-portfolio负责的是「把一堆标的装进一个组合」这件事。它与单标的技能形成明确分工技能职责层次trader-signal单标的信号生成Z-score 异常检测trader-risk单标的与组合的风险度量VaR、仓位、熔断trader-portfolio组合权重分配、风险约束、再平衡计划trader-regime市场状态regime识别为组合调仓提供前提从技能声明frontmatter可以看到它的契约name: trader-portfolio description: Optimize portfolio allocation using npx neural-trader mean-variance engine with risk constraints and rebalancing plan allowed-tools: Bash Read mcp__plugin_ruflo-core_ruflo__memory_store mcp__plugin_ruflo-core_ruflo__memory_retrieve mcp__plugin_ruflo-core_ruflo__memory_search mcp__plugin_ruflo-core_ruflo__neural_predict mcp__plugin_ruflo-core_ruflo__agentdb_pattern-search argument-hint: [--risk-target NUMBER]注意allowed-tools列表除Bash外本技能被授权访问的是记忆系统memory_store/memory_retrieve/memory_search、SONA 神经预测neural_predict以及 AgentDB 模式检索agentdb_pattern-search——这正对应了它的八步工作流里「读持仓 → 算权重 → 测风险 → 预测收益 → 定计划 → 查历史 → 存结果」的完整闭环。argument-hint也提示了唯一的关键参数--risk-target NUMBER风险目标通常可传目标年化波动率之类的数值具体取值取决于策略偏好仓库内trader命令示例中曾以0.15作为典型值见 commands/trader.md。八步工作流全景技能文档把整个组合优化过程定义为 8 个步骤先给出全景再逐段拆解确保neural-trader可用npm ls/npm install --ignore-scripts从记忆加载当前组合memory_search命名空间trading-portfolio运行 mean-variance 组合优化npx neural-trader --portfolio optimize可带--risk-target获取风险度量--risk assess/--var/--correlation用 SONA 预测各持仓的预期收益neural_predict生成再平衡计划npx neural-trader --portfolio rebalance在历史中检索相似配置agentdb_pattern-search存储优化后的配置memory_store下面按步骤展开并把每一步背后「命令能做什么」和「仓库里是怎么实现的」对应起来。前置条件安装与版本约束第一步是所有技能共用的「环境自愈」逻辑npm ls neural-trader 2/dev/null || npm install --ignore-scripts neural-trader--ignore-scripts是刻意保留的安全纵深插件 README 明确指出推荐版本线为neural-trader^2.8.11该版本修复了 2.5.x–2.7.x 系列中安装钩子 fork-bomb、require缺文件、aarch64构建失败、二进制分发缺失等四个连环缺陷且仓库内的 CI 审计脚本audit-neural-trader-safety.mjs会在每次文档化调用上强制--ignore-scripts防止有人把锁文件钉在旧版本上。安装该插件本身则通过claude --plugin-dir plugins/ruflo-neural-trader第二步加载当前组合优化不能凭空开始技能要求先从记忆系统读取现状mcp__plugin_ruflo-core_ruflo__memory_search({ query: current portfolio holdings, namespace: trading-portfolio })这一步把组合状态当作一等公民持久化持仓快照、权重、标的列表都按trading-portfolio命名空间归档后续的 optimize/rebalance 都以「上一次落库的组合」为输入。命名空间路由是整个插件的统一约定——README 的 Namespace coordination 一节强调所有记忆访问都必须走memory_*工具并按命名空间路由保留命名空间pattern、claude-memories、default严禁占用。trading-portfolio正是本技能与/trader portfolio optimize命令共同使用的持久化命名空间见 commands/trader.md。第三步运行 mean-variance 组合优化核心求解命令# 无约束的默认优化 npx neural-trader --portfolio optimize # 带风险目标 npx neural-trader --portfolio optimize --risk-target number--risk-target是约束求解器的风险预算输入数值越小求解器越倾向于低波动、低相关性的保守组合数值越大越允许追逐高收益高波动资产。它是整个技能唯一的对外参数最终权重必须在「风险目标」约束下解出。值得说明的是在默认路径上--portfolio optimize底层走的是 legacy Neumann 级数求解见下文源码级深化一节而在较新的流水线里同一问题还会被派发给更快的 Conjugate Gradient共轭梯度路径——trader-portfolio-cg技能即为此而生本文末尾会展开。第四步获取风险度量优化出权重之后技能紧接着用三条命令把组合的风险画像拉出来npx neural-trader --risk assess --portfolio current npx neural-trader --var --portfolio current npx neural-trader --correlation --portfolio current --flag-threshold 0.8--risk assess组合级风险总评产出 Sharpe、最大回撤、VaR/CVaR 快照等指标与单标的--risk assess --symbol TICKER对应详见 trader-risk/SKILL.md。--varValue-at-Risk 计算衡量组合在给定置信水平下的最大预期损失。--correlation --flag-threshold 0.8组合相关性矩阵分析把相关系数超过 0.8 的标的对标记出来——这是组合层面最典型的风险约束持仓过度同涨同跌意味着分散化失效。这些风险度量与插件内置的熔断机制circuit breakers构成「风险约束」的另一半。README 中定义的熔断规则如下可作为优化后人工复核的对照表熔断器触发条件动作日亏损当日回撤 3%暂停新开仓周亏损当周回撤 5%仓位减半相关性飙升组合相关系数 0.85削减相关头寸波动率状态VIX 历史 2 倍最小仓位最大持仓数开仓数超限阻止新开仓集中度单一标的 10%强制减仓--correlation --flag-threshold 0.8的阈值与「相关性 0.85 触发熔断」的规则在数值上是同一套风险哲学优化结果若让组合陷入高相关就会被这些约束拦下或要求人工干预。第五步用 SONA 预测预期收益mean-variance 优化的输入不只是协方差还需要每个资产的预期收益向量μ。技能用 SONASelf-Organizing Neural Architecture插件内的神经预测运行时来提供这一项mcp__plugin_ruflo-core_ruflo__neural_predict({ input: expected returns for [HOLDINGS] given current regime })把「当前持仓 当前市场状态」喂给神经预测模型得到预期收益的估计再作为 μ 注入优化器。这与 README 中的模型矩阵对应LSTM序列预测、Transformer多变量模式识别、N-BEATS趋势/季节性分解都可用于产出这一预测trader-signal技能同样在信号生成后调用neural_predict做 regime 预测见 trader-signal/SKILL.md说明 SONA 是贯穿「信号 → 组合」两层的关键能力。第六步生成再平衡计划优化完成后的落地动作npx neural-trader --portfolio rebalance技能文档明确标注了该命令的三项输出需要的交易trades needed从当前权重移动到目标权重需要执行哪些买卖当前 vs 目标权重current vs target weights逐标的对比便于审计偏离估计成本estimated costs换手成本估算帮助判断是否值得执行再平衡。再平衡计划把「理论最优权重」翻译成「可执行交易清单」是组合优化从研究走向实盘的最后一步。第七步检索历史相似配置在落库之前技能建议先用 AgentDB 的模式检索做交叉验证mcp__plugin_ruflo-core_ruflo__agentdb_pattern-search({ query: optimized portfolio Sharpe 1, namespace: trading-portfolio })即在历史优化记录中寻找「Sharpe 1」的相似配置用于回答「这次优化出来的组合历史上类似配置表现如何」。这属于经验校验层如果新配置与历史高绩效模式显著背离值得在继续之前重新审视输入数据风险目标、预期收益、协方差估计。第八步存储优化结果最后把结果持久化供后续 rebalance、回测归因或审计使用mcp__plugin_ruflo-core_ruflo__memory_store({ key: portfolio-optimal-TIMESTAMP, value: ALLOCATION_JSON, namespace: trading-portfolio })key采用portfolio-optimal-时间戳的命名模式value为完整的配置 JSON含各标的权重命名空间固定为trading-portfolio。这一模式与/trader portfolio optimize命令的落库约定portfolio-TIMESTAMP→trading-portfolio保持同构见 commands/trader.md保证后续步骤如第七步的模式检索能按统一 key 模式检索到历史配置。源码级深化从 Neumann 到 Conjugate Gradient 的快速求解路径trader-portfolio的默认--portfolio optimize走的是 legacy Neumann 级数路径而仓库同期提供了另一条更快的求解通道trader-portfolio-cg技能把同一个 mean-variance 问题Σ · x μΣ 为资产协方差矩阵μ 为预期收益向量改由 Conjugate Gradient 求解。这部分的核心实现在 src/sublinear-adapter.ts为什么 CG 适用协方差矩阵 Σ 是真实收益上的 Gram 矩阵天然对称正定SPD。源码注释明确指出SPD 输入下 CG 至多 n 次迭代收敛特征值聚集时通常远小于 n而 Jacobi-Neumann 级数在强相关资产特征谱贴近 1条件下迭代数会膨胀到数千——这正是组合优化场景的真实痛点。性能与一致性声明根据仓库基准 benchmarks/portfolio-cg.bench.mjs 与 READMENeumann 路径在 n256 时约 50 µsCG 本地 JS 内核目标 1 ms原生路径约 816 ns声称 40–60× 提速同时以固定种子保证||cg − neumann||_∞ 1e-4的一致性parity基准脚本在 parity 破坏时以非零码退出。双通道探测与回退SublinearAdapter.detectSublinearTool()依次探测globalThis[mcp__ruflo-sublinear__solve]是否为函数、以及环境变量RUFLO_SUBLINEAR_NATIVE1是否设置命中则走原生 MCP 工具algorithm: cg否则透明回退到内嵌的约 50 行 JS CG 内核并通过结果中的method字段cg-sublinear-native/cg-local让下游能审计实际求解后端。降级开关设置RUFLO_NEURAL_TRADER_DISABLE_CG1可整体跳过 CG 路径回到--portfolio optimize的 Neumann 路线——用于 A/B 验证或上游协方差回归破坏 SPD 时的应急通道详见 trader-portfolio-cg/SKILL.md。换句话说trader-portfolio教的是「组合优化是什么、按什么步骤做」而trader-portfolio-cg解决的是「同一个问题怎么算得更快且结果可审计」——两者共享同一套输入输出契约协方差矩阵 预期收益向量 → 权重向量。风险门禁组合优化结果如何进入执行流水线优化出的权重最终要服务于实盘执行而插件的执行流水线在结构上设置了硬性风险门禁。在 src/pipeline-messages.ts 中定义了三个类型化消息RegimeVerdictmarket-analyst→trading-strategist市场状态判定bull-trending/bear-trending/ranging/high-volatility/low-volatility/transitioning带置信度与支撑指标SignalProposaltrading-strategist→risk-analyst含signalId、方向long/short/close、仓位占比、置信度RiskDecisionrisk-analyst→trading-strategist阻塞式门禁——只有decision: approved且signalId匹配时策略师才被允许调用实盘 broker拒绝原因映射到 VaR/CVaR、集中度、相关性、回撤等熔断检查并可通过adjustedSizePct调降建议仓位。从源码结构可以推断组合优化的权重与再平衡计划正是SignalProposal中sizePct组合百分比的输入来源之一trader-portfolio产出目标权重risk-analyst依据风险度量与熔断状态决定是否放行、是否缩小规模。这让「优化 → 度量 → 审批 → 执行」形成一条完整且可审计的链路而非把优化结果直接丢给实盘。与相邻技能的协同矩阵trader-portfolio并非孤岛它在插件技能矩阵中与上下层技能形成调用链相邻技能与本技能的关系trader-risk提供--risk assess/--var/--correlation/--position-sizing kelly等风险度量命令是本技能第四步的直接调用方trader-signal单标的异常检测信号spike/drift/flatline/oscillation/pattern-break/cluster-outlier构成组合层调仓的标的级输入trader-portfolio-cg同一优化问题的 CG 快速求解变体40–60× 提速路径trader-backtest对优化后的组合/策略做 walk-forward 回测验证Sharpe 1.5 时触发 SONA 训练见 commands/trader.mdtrader-regime/trader-explain前者提供优化所用的 regime 前提后者为组合中的信号提供可审计的特征归因记忆生命周期与审计注意点组合优化结果写入trading-portfolio命名空间后受插件依赖的claude-flow/memory生命周期管理约束README 的 Memory lifecycle 一节优化权重是长寿命数据不设 TTL——组合配置与再平衡记录是后续归因与审计的基线相比之下trader-signal写入的日内信号以 24 小时 TTL 存放到期由MemoryConsolidator.sweepExpired()统一清扫避免短期信号污染长期记忆组合层面的风险快照协方差、权重、method 元数据按 trader-portfolio-cg/SKILL.md 的约定写入trading-risk命名空间并带完整 provenancemethod/solver/iterations/residual/latencyMs为后续 Ed25519 签名审计ADR-126 Phase 4预留了可追溯性。小结一条可复现的组合优化闭环把八步工作流压缩成一句话读持仓memory_search→ 解权重--portfolio optimize可选 CG 加速→ 度量风险VaR/相关性/熔断→ 预测收益SONA→ 生成交易计划rebalance→ 历史校验pattern-search→ 落库归档memory_store。这套流程的价值在于两点一是所有中间产物当前持仓、风险快照、最优配置都按统一命名空间持久化后续任何技能都能检索复用二是优化结果受风险度量与执行门禁双重约束权重不是「算出来就用」而是「算出来、度量过、审批过、留痕后再用」。若需在更大规模资产集上做组合优化可进一步研究 trader-portfolio-cg 的 CG 路径及其底层实现 sublinear-adapter.ts两条路线共享同一契约可平滑切换。【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表