一个量化结果只有在口径清楚、过程可验证时才有讨论价值。Pulsewise 博客将围绕这个原则,记录产品使用方法和个人量化投资研究。
为什么建立这个博客#
排名、回测收益率或组合权重都很容易展示,但单独的数字无法回答更重要的问题:
- 数据覆盖了哪些交易日,缺失值如何处理?
- 策略在什么时点使用了哪些信息?
- 交易成本、流动性和调仓约束是否被计入?
- 参数变化后结论是否稳定?
- 哪些市场环境可能让模型失效?
博客会把这些问题放在结果之前。目标不是给出一个看似确定的答案,而是让结论的依据和边界都能被检查。
研究流程从数据开始,以风险复核结束。任何一个环节缺少记录,都会降低结果的可解释性和可复现性。
两条内容主线#
Pulsewise 使用#
Pulsewise 使用分类会介绍功能入口、指标定义和验证方法。例如,在查看 ETF 排名或策略回测时,我们会说明观察窗口、收益计算方式和常见误读,帮助读者从页面结果追溯到计算口径。
个人量化投资#
个人量化投资分类会讨论数据、因子、组合和风险。内容会尽量给出公式、代码或复现实验,同时记录模型限制。
以简单收益率为例,相邻两个交易日的收盘价可以写成:
r_t = P_t / P_(t-1) - 1如果观察窗口中有 120 个有效价格点,只能得到 119 个相邻日收益。这样的细节会直接影响波动率、协方差和回测边界,不能被省略。
一篇研究文章的基本结构#
后续文章通常会覆盖以下内容:
| 部分 | 要回答的问题 |
|---|---|
| 数据 | 样本来自哪里,时间范围和缺失规则是什么? |
| 方法 | 指标或模型如何计算,参数为何这样选择? |
| 验证 | 如何复现,使用了哪些基准和敏感性检查? |
| 风险 | 哪些偏差尚未消除,结论可能在何时失效? |
文章中的示例代码会保持可读,并明确输入和输出。例如,归一化一组非负权重时,可以先检查总和:
def normalize_weights(raw_weights: list[float]) -> list[float]:
total = sum(raw_weights)
if total <= 0:
raise ValueError("weights must have a positive sum")
return [weight / total for weight in raw_weights]代码片段用于解释方法,不代表完整的生产交易系统。
明确的能力与风险边界#
Pulsewise 面向个人投资者提供量化研究和策略分析能力,但博客内容不构成投资建议,不承诺收益。Pulsewise 不提供自动交易、券商托管、代客理财或保本保收益服务。
历史表现不代表未来结果。数据偏差、参数选择、交易成本、流动性和市场结构变化都可能使回测与实际结果显著不同。做出任何投资决策前,请独立判断,并阅读本站的风险声明。
接下来#
可以从文章目录跟踪新内容,或前往 Pulsewise 主站了解产品。博客与主应用独立运行,不需要账户即可阅读公开文章。