<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>格物致雅 - 分类 - 涵舍</title><link>/categories/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85/</link><description>格物致雅 - 分类 - 涵舍</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Wed, 10 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="/categories/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85/" rel="self" type="application/rss+xml"/><item><title>[格物致雅] Beruto-v1.0</title><link>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--beruto-v1.0/</link><pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate><author>HangYaHan</author><guid>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--beruto-v1.0/</guid><description><![CDATA[<h1 id="beruto-v10">Beruto v1.0</h1>
<p>仓库地址: <a href="https://github.com/HangYaHan/Beruto" target="_blank" rel="noopener noreffer ">Beruto</a>
发布日期: 2025-12-09</p>
<h2 id="概要">概要</h2>
<ul>
<li>首个可运行的端到端版本：支持加载任务、拉取历史行情、运行策略回测、生成资金曲线，并通过 CLI 与绘图工具交互。</li>
<li>核心数据链路打通：适配 akshare / yfinance / 本地 CSV，附带缓存读写与错误分类。</li>
<li>提供示例策略与指标工具，便于快速扩展与验证。</li>
<li>完善文档，涵盖快速入门、命令行使用、接口设计与技术指标指南。</li>
</ul>
<h2 id="主要特性">主要特性</h2>
<ul>
<li><strong>回测引擎</strong>：<code>src/backtest/engine.run_task</code> 读取任务 JSON，动态加载策略，调用数据层并驱动组合回测。</li>
<li><strong>数据层</strong>：统一 fetch 接口，适配 akshare、yfinance、本地 CSV；带 parquet 缓存读写、按需刷新。</li>
<li><strong>策略与指标</strong>：内置 SMA 金叉/死叉示例策略，提供 MA/EMA/RSI/MACD/BOLL/ATR 等指标及触发器 DSL（crossabove/crossbelow）。</li>
<li><strong>绘图</strong>：<code>plot_kline</code> 支持日/周 K 线、MA/EMA/BOLL/RSI/MACD/ATR 叠加，CLI 参数解析 <code>plot SYMBOL ...</code>。</li>
<li><strong>日志与 CLI</strong>：日志落盘到 <code>logs/</code>，CLI 支持 help / backtest / plot / config (占位)。</li>
</ul>
<h2 id="文档">文档</h2>
<ul>
<li>新增 Manual 子目录，按子模块列出函数/类签名与用途，便于二次开发。</li>
<li>保留快速入门、命令行使用、接口设计与技术指标指南等主线文档。</li>
<li>添加了相关知识的文档，为后续复习与扩展提供参考。</li>
</ul>
<h2 id="已知限制--待办">已知限制 / 待办</h2>
<ul>
<li><code>common.config</code>, <code>common.utils</code>, <code>risk.RiskManager</code> 仍为占位，需要完善实现。</li>
<li>CLI 的 config 命令未实现；GUI <code>main_window.py</code> 为空。</li>
<li>缺少自动化测试覆盖数据适配器、策略决策与回测边界场景。</li>
<li>策略库较为单一，需丰富多样化策略与参数调优示例。</li>
<li>代码注释不够充分，未完全贯彻自文档化写作模板。</li>
<li>Portfolio 设计需增强：交易成本/滑点模型细化，多资产与现金管理、持仓轮转等能力。</li>
</ul>
<h2 id="后续展望">后续展望</h2>
<ul>
<li>实现 UI 界面，打通交互与可视化入口。</li>
<li>落地基础风控（最大仓位/回撤）并在下单前校验。</li>
<li>为数据层与回测核心补充单元测试与集成测试；考虑加入 CI。</li>
<li>丰富策略库（多因子/均值回归/动量）与可视化报表；补充参数调优示例。</li>
</ul>]]></description></item><item><title>[格物致雅] Docker初见</title><link>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--docker%E5%88%9D%E8%A7%81/</link><pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate><author>HangYaHan</author><guid>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--docker%E5%88%9D%E8%A7%81/</guid><description><![CDATA[<blockquote>
<p>吾尝终日而思矣，不如须臾之所学也。</p>
</blockquote>
<h1 id="docker核心概念与实战">Docker核心概念与实战</h1>
<h2 id="1-docker---基础概念">1. Docker - 基础概念</h2>
<ul>
<li><strong>Docker概述</strong>: Docker是一种高效的软件部署技术，利用容器化技术为应用程序封装独立的运行环境。每个运行环境即为一个<strong>容器</strong>，承载容器运行的计算机称为<strong>宿主机</strong>。</li>
<li><strong>容器与虚拟机的区别</strong>: Docker容器共享同一系统内核，轻量、启动快；虚拟机包含完整内核，占用资源多。</li>
<li><strong>镜像 (Image)</strong>: 容器的模板，类似软件安装包。</li>
<li><strong>容器 (Container)</strong>: 基于镜像运行的应用实例。</li>
<li><strong>Docker仓库 (Registry)</strong>: 存放和分享镜像的场所，Docker Hub为官方公共仓库。</li>
</ul>
<h2 id="2-docker---安装">2. Docker - 安装</h2>
<ul>
<li><strong>运行环境</strong>: Docker基于Linux容器化技术，Windows/Mac通过虚拟化运行。</li>
<li><strong>安装步骤</strong>:
<ul>
<li><strong>Linux</strong>: 通过<code>getdocker.com</code>获取并执行安装脚本。</li>
<li><strong>Windows</strong>: 启用WSL，安装Docker Desktop。</li>
<li><strong>Mac</strong>: 根据芯片类型下载Docker Desktop。</li>
</ul>
</li>
<li><strong>验证安装</strong>: 运行<code>docker --version</code>。</li>
</ul>
<h2 id="3-docker---镜像管理命令">3. Docker - 镜像管理命令</h2>
<ul>
<li><strong><code>docker pull</code></strong>: 下载镜像，格式为<code>[registry_address/][namespace/]image_name[:tag]</code>。</li>
<li><strong><code>docker images</code></strong>: 列出本地镜像。</li>
<li><strong><code>docker rmi</code></strong>: 删除镜像。</li>
<li><strong>镜像架构</strong>: 默认选择适合宿主机的架构，可指定<code>--platform</code>。</li>
</ul>
<h2 id="4-docker---容器管理命令">4. Docker - 容器管理命令</h2>
<ul>
<li><strong><code>docker run</code></strong>: 创建并运行容器，支持参数：
<ul>
<li><code>-d</code>: 后台运行。</li>
<li><code>-p</code>: 端口映射。</li>
<li><code>-v</code>: 数据持久化。</li>
<li><code>-e</code>: 设置环境变量。</li>
<li><code>--name</code>: 自定义容器名称。</li>
<li><code>-it</code>: 交互式终端。</li>
<li><code>--rm</code>: 运行结束后自动删除。</li>
</ul>
</li>
<li><strong>容器管理</strong>:
<ul>
<li><code>docker ps</code>: 查看运行中的容器。</li>
<li><code>docker stop/start</code>: 停止/启动容器。</li>
<li><code>docker logs</code>: 查看日志。</li>
<li><code>docker exec</code>: 在容器内执行命令。</li>
</ul>
</li>
</ul>
<h2 id="5-dockerfile---构建镜像的蓝图">5. Dockerfile - 构建镜像的蓝图</h2>
<ul>
<li><strong>基本指令</strong>:
<ul>
<li><code>FROM</code>: 指定基础镜像。</li>
<li><code>WORKDIR</code>: 设置工作目录。</li>
<li><code>COPY</code>: 拷贝文件。</li>
<li><code>RUN</code>: 执行命令。</li>
<li><code>CMD/ENTRYPOINT</code>: 容器启动命令。</li>
</ul>
</li>
<li><strong>构建镜像</strong>: <code>docker build -t &lt;镜像名称&gt; .</code>。</li>
<li><strong>推送镜像</strong>: 登录Docker Hub后使用<code>docker push</code>。</li>
</ul>
<h2 id="6-docker---网络模式">6. Docker - 网络模式</h2>
<ul>
<li><strong>Bridge</strong>: 默认模式，容器通过内部IP互通。</li>
<li><strong>Host</strong>: 容器共享宿主机网络。</li>
<li><strong>None</strong>: 无网络模式。</li>
<li><strong>网络管理命令</strong>:
<ul>
<li><code>docker network ls</code>: 列出网络。</li>
<li><code>docker network create</code>: 创建自定义网络。</li>
</ul>
</li>
</ul>
<h2 id="7-dockercompose---多容器编排">7. DockerCompose - 多容器编排</h2>
<ul>
<li><strong>定义</strong>: 使用<code>docker-compose.yml</code>文件管理多容器应用。</li>
<li><strong>核心元素</strong>:
<ul>
<li><code>services</code>: 定义服务。</li>
<li><code>volumes</code>: 数据持久化。</li>
<li><code>ports</code>: 端口映射。</li>
<li><code>depends_on</code>: 启动顺序。</li>
</ul>
</li>
<li><strong>常用命令</strong>:
<ul>
<li><code>docker compose up</code>: 启动服务。</li>
<li><code>docker compose down</code>: 停止并删除服务。</li>
</ul>
</li>
</ul>
<h2 id="8-docker的核心原理">8. Docker的核心原理</h2>
<p>容器镜像的技术实现基于多个Linux内核特性的协同工作。在存储层面，镜像采用分层架构，每个镜像层本质上是文件系统差异的只读快照。联合文件系统（如OverlayFS、AUFS）将这些只读层与一个可写层进行目录级合并，通过写时复制机制确保底层数据的不可变性。当容器修改文件时，联合文件系统会将目标文件复制到可写层进行操作，保持基础层不变。这种设计使得镜像构建具有可追溯性，且相同基础层可在多个容器间共享。</p>]]></description></item><item><title>[格物致雅] BiliBili_DownloadFileProcessor</title><link>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--bilibili_downloadfileprocessor/</link><pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate><author>HangYaHan</author><guid>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--bilibili_downloadfileprocessor/</guid><description><![CDATA[<h1 id="bilibili_downloadfileprocessor">BiliBili_DownloadFileProcessor</h1>
<p>A naive app to process download files from BiliBili app and turns them into available mp4 or mp3 automatically.
Link: <a href="https://github.com/HangYaHan/BiliBili_DownloadFileProcessor" target="_blank" rel="noopener noreffer ">https://github.com/HangYaHan/BiliBili_DownloadFileProcessor</a></p>
<h2 id="features">Features</h2>
<ul>
<li>Automatically scans and processes BiliBili app download folders</li>
<li>Converts .m4s files to .mp4</li>
<li>Extracts audio and converts .mp4 to .mp3 using FFmpeg</li>
<li>Results are named by its video title</li>
<li>Supports Chinese filenames</li>
<li>Simple command-line interface</li>
</ul>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li><a href="https://ffmpeg.org/" target="_blank" rel="noopener noreffer ">FFmpeg</a> (for media conversion)</li>
<li><a href="https://github.com/nlohmann/json" target="_blank" rel="noopener noreffer ">nlohmann/json</a> (for JSON parsing)</li>
<li>C++17 or later</li>
<li>CMake 3.10 or later</li>
</ul>
<blockquote>
<p>Only Windows is supported currently, older versions of dependencies might work but are not tested.</p>]]></description></item><item><title>[格物致雅] A Simple ClickScript</title><link>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--a-simple-clickscript/</link><pubDate>Thu, 21 Aug 2025 00:00:00 +0000</pubDate><author>HangYaHan</author><guid>/posts/gewu/%E6%A0%BC%E7%89%A9%E8%87%B4%E9%9B%85--a-simple-clickscript/</guid><description><![CDATA[<h1 id="clickscript">ClickScript</h1>
<h2 id="前言">前言</h2>
<p>ClickScript 最初是在实验室中为方便测试而编写的一个点击脚本工具。经过多次迭代，它逐渐发展为一个功能相对完善的自动化工具。虽然它非常朴素、简单，无法与其他成熟的自动化工具相比——没有图形界面，需要手动测量坐标——但它是我从零开始独立开发的第一个完整应用项目。尽管不够完美，但我在开发过程中收获了许多宝贵的经验。因此，我决定将测试脚本独立出来，打磨成一个成熟的项目。也许它会默默无闻，但对我而言意义非凡：这是我独立完成的第一个面向实际应用的完整项目，具备实际应用价值，而不仅仅是自娱自乐的产物。</p>]]></description></item></channel></rss>