作者: ianzhi

  • 投资中的耐心与纪律

    投资中的耐心与纪律

    投资中的耐心与纪律

    在 A 股市场,大多数散户亏钱的原因不是因为信息不足或分析能力不够,而是缺乏耐心与纪律。

    耐心:等待好价格的艺术

    巴菲特说:”股市是一个财富转移的场所,从急躁的人手里转移到有耐心的人手里。”

    时间是优秀企业的朋友,是平庸企业的敌人。

    在 A 股,真正的投资机会往往出现在市场恐慌、个股被错杀的时候。但大多数投资者恰恰相反——追涨杀跌,在高点买入,在低点割肉。

    纪律:严格执行投资策略

    投资纪律包括:

    • 仓位管理纪律:不孤注一掷,单只股票不超过总仓位 20%
    • 止损纪律:设定止损线(如 -10%)并严格执行,不抱侥幸心理
    • 估值纪律:只买低估或合理估值的股票,不追高泡沫
    • 分散纪律:不把所有资金押注在一个行业或一只股票上
    # 简单的仓位管理策略
    max_single_position = 0.20  # 单只股票最大仓位 20%
    max_sector_exposure = 0.40  # 单一行业最大暴露 40%
    stop_loss_threshold = -0.10  # 止损线 -10%

    实战案例:茅台的两次黄金买点

    回顾贵州茅台(600519.SH)的历史走势:

    时间价格区间PE(动态)市场情绪
    2018 年底500-550 元约 20 倍恐慌(去杠杆 + 贸易战)
    2022 年 10 月1300-1400 元约 25 倍恐慌(疫情 + 消费疲软)

    这两次都是市场极度悲观、茅台被错杀的黄金买入机会。但当时敢于重仓买入并持有至今的投资者,寥寥无几。


    如何培养耐心与纪律?

    1. 建立投资检查清单:每次买入前,对照清单逐项检查(估值、行业前景、财务健康度、催化剂)
    2. 写投资日志:记录每笔交易的买入理由、预期持仓时间、止损线,定期复盘
    3. 设定”冷却期”:看中一只股票后,强制等待 3-5 个交易日再买入,避免情绪化决策
    4. 远离短线噪音:少看盘、少刷财经新闻、不参与短线炒作,专注于长期价值

    结语

    投资是一场马拉松,不是百米冲刺。在 A 股赚钱,不需要你比别人更聪明,只需要你比别人更有耐心、更守纪律。

    记住:慢就是快,少就是多。

    发布时间:2026 年 5 月 27 日 | 分类:投资 | 标签:价值投资、投资纪律、耐心、A 股

    *本文不构成投资建议,投资有风险,入市需谨慎。*
  • WordPress AI Provider for DeepSeek 插件实现分析

    WordPress AI Provider for DeepSeek 插件实现分析

    前言

    WordPress 6.9 引入了 PHP AI Client SDK,为 WordPress 生态提供了统一的 AI 服务接入标准。本文分析我最近实现的 AI Provider for DeepSeek 插件,它是该 SDK 的 DeepSeek 适配实现,同时支持作为 Composer 包和 WordPress 插件两种使用方式。

    插件架构概览

    插件的目录结构遵循 PSR-4 规范:

    wp-ai-provider-for-deepseek/
    ├── plugin.php                          # WordPress 插件入口
    ├── readme.txt                        # WordPress 插件描述
    ├── assets/images/deepseek.svg        # 供应商 Logo
    └── src/
        ├── autoload.php                 # PSR-4 自动加载器
        ├── Provider/
        │   ├── DeepSeekProvider.php            # 主 Provider 类
        │   └── DeepSeekProviderAvailability.php # API Key 可用性检查器
        ├── Models/
        │   └── DeepSeekTextGenerationModel.php # 文本生成模型实现
        └── Metadata/
            └── DeepSeekModelMetadataDirectory.php # 模型元数据目录
    

    核心实现分析

    1. 插件入口与 Hook 注册(plugin.php)

    插件通过三个关键 Hook 完成初始化:

    // 注册 AI Provider(优先级 5,确保在 AI Client 之后加载)
    add_action('init', __NAMESPACE__ . '\\register_provider', 5);
    
    // 输出 Provider 数据到前端(确保 admin 页面可用)
    add_action('admin_enqueue_scripts', __NAMESPACE__ . '\\ensure_provider_data_output', 5);
    
    // 注册 Connector(WordPress 连接器系统)
    add_action('wp_connectors_init', __NAMESPACE__ . '\\register_connector', 10);
    
    // 自动审批 Connector 使用权限(优先级 20,确保 Approvals_Store 可用)
    add_action('init', __NAMESPACE__ . '\\auto_approve_connector', 20);
    

    设计亮点:

    • register_provider() 先检查 AiClient 类是否存在,避免依赖未安装时 fatal error
    • 使用 $registry->hasProvider() 防止重复注册
    • ensure_provider_data_output() 处理边缘情况:当 AI Client 的脚本未加载时,手动输出 window.aiProviderData

    2. Provider 主类(DeepSeekProvider.php)

    核心类继承自 AbstractApiProvider,实现四个工厂方法:

    class DeepSeekProvider extends AbstractApiProvider
    {
        // API 基础 URL
        protected static function baseUrl(): string
        {
            return 'https://api.deepseek.com';
        }
    
        // 创建模型实例(根据能力分发到具体模型类)
        protected static function createModel(...): ModelInterface
        {
            foreach ($capabilities as $capability) {
                if ($capability->isTextGeneration()) {
                    return new DeepSeekTextGenerationModel(...);
                }
            }
            throw new \RuntimeException('Unsupported model capabilities');
        }
    
        // 创建 Provider 元数据(支持版本化特性)
        protected static function createProviderMetadata(): ProviderMetadata
        {
            $args = [
                'deepseek',
                'DeepSeek',
                ProviderTypeEnum::cloud(),
                'https://platform.deepseek.com/api_keys',
                RequestAuthenticationMethod::apiKey()
            ];
    
            // 1.2.0+ 支持描述
            if (version_compare(AiClient::VERSION, '1.2.0', '>=')) {
                $args[] = __('Text generation with DeepSeek models.', 'ai-provider-for-deepseek');
            }
    
            // 1.3.0+ 支持 Logo
            if (version_compare(AiClient::VERSION, '1.3.0', '>=')) {
                $args[] = dirname(__DIR__, 2) . '/assets/images/deepseek.svg';
            }
    
            return new ProviderMetadata(...$args);
        }
    
        // 自定义可用性检查器(用真实 API 请求验证 Key)
        protected static function createProviderAvailability(): ProviderAvailabilityInterface
        {
            return new DeepSeekProviderAvailability(static::class);
        }
    
        // 模型元数据目录(动态从 API 发现可用模型)
        protected static function createModelMetadataDirectory(): ModelMetadataDirectoryInterface
        {
            return new DeepSeekModelMetadataDirectory();
        }
    }
    

    版本兼容处理是这段代码的精华:通过 version_compare 逐步添加新特性支持,确保插件在旧版 PHP AI Client 上也能正常运行。

    3. API Key 验证与缓存(DeepSeekProviderAvailability.php)

    DeepSeek 不支持标准的”列出模型”端点,因此插件采用真实请求验证法:发送一个 max_tokens=1 的最小化请求,根据 HTTP 状态码判断 Key 是否有效。

    public function isConfigured(): bool
    {
        // 1. 检查缓存(5 分钟过期)
        $cached = get_transient(self::CACHE_KEY);
        if ($cached !== false) {
            return (bool) $cached;
        }
    
        // 2. 获取 API Key(优先 WordPress 选项,fallback 到环境变量)
        $apiKey = $this->getApiKey();
        if (empty($apiKey)) {
            $this->cacheResult(false);
            return false;
        }
    
        // 3. 发送最小化请求
        $response = wp_remote_post($url, [
            'headers' => [
                'Content-Type'  => 'application/json',
                'Authorization' => 'Bearer ' . $apiKey,
            ],
            'body' => json_encode([
                'model'    => 'deepseek-v4-flash',
                'messages' => [['role' => 'user', 'content' => 'test']],
                'max_tokens' => 1,
            ]),
            'timeout' => 30,
        ]);
    
        // 4. 根据状态码判断(200/400 = Key 有效,401/403 = Key 无效)
        $responseCode = wp_remote_retrieve_response_code($response);
        $isConfigured = !in_array($responseCode, [401, 403], true);
    
        // 5. 缓存结果
        $this->cacheResult($isConfigured);
        return $isConfigured;
    }
    

    缓存策略有效减少了重复验证请求:使用 WordPress Transient API,5 分钟过期。注意错误时不缓存,允许下次重试。

    4. 模型元数据动态发现(DeepSeekModelMetadataDirectory.php)

    插件通过调用 DeepSeek 的 /models 端点动态获取可用模型列表,而非硬编码:

    protected function parseResponseToModelMetadataList(Response $response): array
    {
        $responseData = $response->getData();
        
        // 定义 DeepSeek 模型支持的能力和选项
        $textGenerationCapabilities = [
            CapabilityEnum::textGeneration(),
            CapabilityEnum::chatHistory(),
        ];
        
        $textGenerationOptions = [
            new SupportedOption(OptionEnum::systemInstruction()),
            new SupportedOption(OptionEnum::candidateCount()),
            new SupportedOption(OptionEnum::maxTokens()),
            new SupportedOption(OptionEnum::temperature()),
            new SupportedOption(OptionEnum::topP()),
            new SupportedOption(OptionEnum::customOptions()),
            new SupportedOption(OptionEnum::inputModalities()),  // 修复:添加必需的能力声明
            new SupportedOption(OptionEnum::outputModalities()),
        ];
    
        // 将 API 响应映射为 ModelMetadata 对象
        $models = array_map(function ($modelData) use ($textGenerationCapabilities, $textGenerationOptions) {
            return new ModelMetadata(
                $modelData['id'],    // model ID(如 deepseek-v4-flash)
                $modelData['id'],    // model name
                $textGenerationCapabilities,
                $textGenerationOptions
            );
        }, $responseData['data']);
    
        // 排序:deepseek-v4-flash 优先,其次是 deepseek-v4-pro,然后字母序
        usort($models, [$this, 'modelSortCallback']);
        
        return $models;
    }
    

    注意inputModalitiesoutputModalities 的添加——这是修复 ModelRequirements::fromPromptData()generate_text() 调用的关键,缺少这两个选项会导致运行时错误。

    5. 文本生成模型实现(DeepSeekTextGenerationModel.php)

    DeepSeek API 兼容 OpenAI 的 Chat Completions 格式,因此直接继承 AbstractOpenAiCompatibleTextGenerationModel

    class DeepSeekTextGenerationModel extends AbstractOpenAiCompatibleTextGenerationModel
    {
        protected function createRequest(
            HttpMethodEnum $method,
            string $path,
            array $headers = [],
            $data = null
        ): Request {
            // 覆盖父类:使用 DeepSeek Provider 的 URL 而非 OpenAI 的
            return new Request(
                $method,
                DeepSeekProvider::url($path),  // => https://api.deepseek.com/chat/completions
                $headers,
                $data,
                $this->getRequestOptions()
            );
        }
    }
    

    这个实现非常简洁,因为大部分工作(请求格式化、响应解析、流式输出等)都由父类 AbstractOpenAiCompatibleTextGenerationModel 完成。只需要覆盖 createRequest() 将请求路由到 DeepSeek 的 API 地址即可。

    Connector 审批系统

    WordPress 的 AI Client 引入了 Connector 审批机制:每个插件使用 Connector(如 DeepSeek)前必须获得审批。本插件在 init hook(优先级 20)自动审批自己:

    function auto_approve_connector(): void
    {
        if (!class_exists('\WordPress\AI\Connector_Approval\Approvals_Store')) {
            return;  // 旧版 AI Client 不支持审批系统
        }
    
        $store = new \WordPress\AI\Connector_Approval\Approvals_Store();
        $plugin_basename = plugin_basename(__FILE__);
        $connector_id = 'deepseek';
    
        if ($store->is_approved($plugin_basename, $connector_id)) {
            return;  // 已审批,跳过
        }
    
        $store->set_approval($plugin_basename, $connector_id, true);
    }
    

    这避免了用户手动在设置页面审批插件,提升了用户体验。

    使用方式

    作为 WordPress 插件

    // 1. 安装并激活插件(依赖 PHP AI Client 插件)
    // 2. 配置 API Key
    putenv('DEEPSEEK_API_KEY=your-api-key');
    
    // 3. 使用
    $result = AiClient::prompt('解释量子计算')
        ->usingProvider('deepseek')
        ->generateTextResult();
    
    echo $result->toText();
    

    作为 Composer 包

    composer require wordpress/ai-provider-for-deepseek
    
    <?php
    use WordPress\AiClient\AiClient;
    use WordPress\DeepSeekAiProvider\Provider\DeepSeekProvider;
    
    // 注册 Provider
    $registry = AiClient::defaultRegistry();
    $registry->registerProvider(DeepSeekProvider::class);
    
    // 设置 API Key
    putenv('DEEPSEEK_API_KEY=your-api-key');
    
    // 生成文本
    $result = AiClient::prompt('Explain quantum computing')
        ->usingProvider('deepseek')
        ->generateTextResult();
    
    echo $result->toText();
    

    技术亮点总结

    特性 实现方式 价值
    版本兼容 version_compare 渐进式添加特性 支持旧版 AI Client,无 breaking change
    API Key 验证 最小化真实请求 + Transient 缓存 准确验证 + 减少重复请求
    动态模型发现 调用 /models API + 元数据映射 自动支持新模型,无需更新代码
    Connector 审批 init hook 自动审批 零配置用户体验
    OpenAI 兼容 继承 AbstractOpenAiCompatible* 复用大量现有逻辑,代码量极小
    双模式运行 Composer 包 + WordPress 插件 最大灵活性,可在任何 PHP 项目中使用

    结论

    这个插件的实现展示了如何为一个新的 AI 服务商编写符合 WordPress PHP AI Client 标准的 Provider。核心要点:

    1. 继承正确的抽象类:文本生成继承 AbstractOpenAiCompatibleTextGenerationModel
    2. 实现四个工厂方法baseUrl()createModel()createProviderMetadata()createModelMetadataDirectory()
    3. 自定义可用性检查:当标准方法(列出模型)不可用时,用真实请求验证
    4. 版本兼容处理:使用 version_compare 渐进式添加新特性支持
    5. WordPress 集成:正确注册 Hook、Connector、审批

    完整代码已开源在 GitHub,欢迎试用和贡献。

  • 5月26日A股复盘:有色逆市逞强,科技回调是危是机?

    5月26日A股复盘:有色逆市逞强,科技回调是危是机?

    5月26日,A股全天弱势震荡,量能微增至3.26万亿元,但亏钱效应显著——4082只个股收跌,仅1354只上涨。沪指收跌0.17%报4145.37点,创业板指微涨0.11%报4025.43点,深证成指涨0.12%。31个申万一级行业中22个收跌,市场整体赚钱难度较大。

    有色板块逆市领涨:涨价逻辑持续演绎

    当日最亮眼的当属有色金属板块。中国铝业、华锡有色、盛龙股份、招金黄金、金钼股份涨停,整个板块资金净流入近42亿元。细分来看,有色(锡)概念大涨4.80%、博通概念涨4.64%、有色(锑)涨3.31%、白银概念涨2.72%。

    这波有色行情的背后有三重驱动力:一是全球流动性宽松预期持续,大宗商品价格中枢抬升;二是PPI(工业品出厂价格指数)由负转正,上游资源品率先受益于生产资料再通胀;三是部分小金属(锡、锑)存在供给约束,价格弹性更突出。华锡有色10%涨停就是一个典型——公司同时覆盖锡和锑两大品种,直接受益于供给收缩与需求回暖的双重催化。

    从资金面看,铜概念当日主力净流入约48.17亿元,有色金属概念净流入约41.91亿元,显示机构资金在“高切低”过程中选择了估值偏低、涨价逻辑清晰的资源品方向。

    科技板块分化:算力回调,半导体暗流涌动

    前期领涨的科技板块出现明显分化。科创板50指数收跌1.49%,北证50更是大跌2.47%。军工、计算机板块领跌,综合板块跌幅超3%,国防军工跌逾2%。

    半导体内部分化剧烈:长电科技、华天科技涨停,通富微电涨逾8%报75.39元,兆易创新涨2.21%报526.22元。通信设备方面,新易盛涨逾6%报700元,中际旭创涨近1%报1103元。而澜起科技跌逾4%,显示出资金在科技赛道内部正在进行精细化筛选。

    多家机构对此产生了分歧。尚艺基金总经理王峥指出,“科技回调不能简单视为上车机会,需同时关注估值修复、景气改善、资金回流及拥挤度下降等信号。”大道兴业投资总经理黄华艳则提醒,“科技板块当前情绪过于亢奋,市场过热本身就是最大风险。”

    但富荣基金表达了相对乐观的看法:对于产业趋势确定性高、竞争格局清晰、未来1-2年景气路径明确的细分龙头,当前回调正是逢低关注的良机。

    机构后市研判:三条主线浮现

    综合多家机构观点,5月下旬至6月的配置思路正逐渐清晰,三条主线值得关注:

    第一,上游资源品与涨价逻辑。摩根士丹利基金认为,油气、有色、小金属、化工原料等方向最直接受益于PPI修复和生产资料再通胀。东吴证券也推荐有色金属、基础化工、公用事业等板块。从数据看,有色板块年初至今涨幅已达35%以上(如华锡有色所在的锡概念年初至今涨35.30%),但部分品种如铜概念60日仍跌8%,估值仍在合理区间。

    第二,AI算力硬件的结构性机会。尽管科技板块整体回调,但AI算力产业链基本面依然强劲。大模型参数指数级增长带动算力需求持续爆发,PCB(印制电路板)和存储芯片受益于AI服务器架构升级,产业链订单饱满。方正证券强调,AI产业已从“概念炒作”进入“业绩兑现期”,硬件需求确定性最强。

    第三,供给收缩型中游的利润拐点。核心不是PPI有没有上涨,而是PPI能否跑赢PPIRM(动力购进价格指数),以及库存压力是否下降、行业竞争格局是否改善。商用车、电网设备、纺织制造、电子化学品等方向正处在产能周期底部,一旦需求回暖,利润弹性可观。

    风险提示:震荡市中需要盯住的三大信号

    当前市场处于前期趋势性上涨后的震荡分化阶段,投资者需要关注以下风险指标:

    一是高拥挤赛道波动放大风险。部分科技方向前期交易热度较高,成交换手率一旦持续回落,可能触发踩踏式下跌。二是市场宽度不足。指数窄幅震荡但多数个股下跌,赚钱效应并不稳定,结构性行情下选股难度加大。三是外部变量扰动,包括海外利率变化、美联储新任主席政策取向、大宗商品价格波动等。

    操作层面,黄华艳建议“分散配置,满仓亦无妨,切忌单押某一板块或个股”。这或许是当前震荡市中最务实的策略。

    *本文不构成投资建议,投资有风险,入市需谨慎。*

  • 2026年5月A股投资观察:在震荡中寻找确定性

    2026年5月A股投资观察:在震荡中寻找确定性

    2026年已过去近五个月,A股市场在政策托底与外部环境不确定性之间反复拉锯。站在5月底这个时点,回顾年初以来的走势,梳理当前的主要矛盾,对下半年的布局思路做一些思考。

    一、年初以来的市场脉络

    2026年A股的开年并不差。1月底至3月中旬,在春节消费数据超预期、两会政策预期的双重催化下,沪深300一度反弹约12%。科技板块表现尤为突出,AI算力、半导体国产替代两条主线交替领涨,市场情绪明显回暖。

    但3月下旬开始,随着美联储降息预期反复摇摆、地缘政治风险升温,市场进入震荡调整。4月关税摩擦再度成为扰动项,出口链相关板块承压,指数在3100-3300点之间反复拉锯,成交量较3月高点萎缩约三成。

    二、当前市场的核心矛盾

    站在5月底,市场实际上面临几组并行的矛盾:

    政策托底 vs 内生动力不足。今年以来财政和货币政策持续发力,特别国债、设备更新改造再贷款等工具接连出台,对基建和制造业投资形成支撑。但居民消费信心和房地产链条的恢复依然偏慢,内需的「最后一公里」尚未打通。

    外部扰动 vs 资产重估。中美博弈长期化已成市场共识,但节奏上的反复仍会造成短期波动。与此同时,国内无风险利率持续下行,居民资产再配置的需求在积累,红利资产、高股息板块的配置价值在提升。

    科技叙事 vs 业绩兑现。AI和国产替代是长周期逻辑,这一点市场已有充分共识。但部分标的的估值已提前反映了远期预期,中报季来临,能否兑现业绩预期,将成为下一阶段分化的关键。

    三、值得关注的结构性机会

    在指数震荡、主线不明的阶段,与其押注短期方向,不如在结构性机会中寻找确定性更高的配置:

    红利资产的中期逻辑依然稳固。在利率下行、刚兑逐步打破的背景下,高股息资产的稀缺性在提升。电力、运营商、国有大行等板块,分红率稳定、估值并不高估,适合作为底仓配置。

    出口链的差异化机会。关税摩擦是系统性风险,但不同行业的暴露度差异很大。汽车零部件、部分机械设备细分领域,对美依赖度低、同时在「一带一路」和新兴市场有增量空间,值得深度挖掘。

    科技板块的业绩验证窗口。中报季(7-8月)将是AI算力、半导体板块的重要验证节点。优先关注订单可见度高、客户结构优质、毛利率趋势向好的标的,回避纯靠叙事支撑的高估值品种。

    四、风险提示与应对

    当前需要警惕的风险点主要有两个:一是外部冲击的节奏难以预判,建议通过仓位管理而非方向判断来应对;二是指数层面的趋势性机会可能有限,赚 alpha 比赚 beta 更重要,选股的重要性在上升。

    操作层面,建议维持中等仓位,结构上偏重红利底仓+科技成长的组合,在震荡中逐步建仓,避免追涨杀跌。

    小结

    2026年的A股,大概率是震荡中有结构、指数平淡但个股活跃的一年。在确定性上下注,在不确定性上止损,可能是今年最务实的投资哲学。

    本文不构成投资建议,投资有风险,入市需谨慎。

  • Go项目架构实战:从零搭建生产级API服务

    Go项目架构实战:从零搭建生产级API服务

    为什么项目结构很重要

    代码结构是团队协作的隐形成本。好的结构让人一眼看懂模块边界,差的结构让改一个 bug 需要改七个文件。随着项目增长,重新组织结构的代价会越来越高——所以从第一天就把结构做好。

    一种实用的 Go 项目分层

    myapp/
    ├── cmd/
    │   └── server/
    │       └── main.go          # 入口,只负责 wire 和启动
    ├── internal/
    │   ├── handler/             # HTTP/gRPC handler(接收请求)
    │   ├── service/              # 业务逻辑层(纯函数,无依赖注入简化测试)
    │   ├── repo/                 # 数据访问层(DB / Cache / 外部 API)
    │   └── model/                # 数据模型(贫血模型,纯数据结构)
    ├── pkg/
    │   └── response/             # 对外暴露的公共库
    ├── migrations/              # 数据库迁移文件
    ├── config/
    │   └── config.go             # 配置加载
    ├── Makefile
    └── go.mod

    各层职责定义

    Handler 层负责解析请求参数、做基础校验、调用 Service 层、组装响应。注意:Handler 不写任何业务逻辑。

    Service 层包含核心业务逻辑。推荐用纯函数风格,依赖通过参数传入,方便写单元测试。

    Repo 层封装所有数据访问,只对 Service 层暴露存储抽象——换数据库、换缓存策略,不影响上层代码。

    避免几个常见反模式

    • 把 model 当贫血模型塞进 repo 层,导致 repo 越来越胖
    • 在 handler 里直接写 SQL,耦合数据库细节
    • 全局变量(var db *sql.DB)跨包共享,测试时无法 mock
    • 把所有类型都放在 model 包,没有按领域聚合

    小结

    Go 的项目结构没有标准答案,但有一个原则:让每一层都专注于一件事。如果你的 handler 里有 SQL,你的 service 里在 new 各种客户端,那是结构在提醒你需要调整了。

    来源:https://www.dnote.cn

  • 从利润表到现金流:拆解一家公司到底赚不赚钱

    从利润表到现金流:拆解一家公司到底赚不赚钱

    净利润是最容易被操纵的数字

    利润表(Income Statement)上的净利润,是按照权责发生制编制的——卖出商品就算收入,不看钱有没有到账。这意味着可以通过应收款虚增收入、通过会计估计调整来平滑利润。读懂净利润背后的故事,才是财报分析的核心。

    两个核心比率

    第一个是「经营现金流/净利润」比率(盈利质量比率)。正常公司这个比率应该大于 1,说明净利润都有真实的现金支撑。长期低于 0.8 的公司需要警惕。

    第二个是「收现比」:销售商品、提供劳务收到的现金 / 营业收入。这个比率反映每 1 元收入实际收到了多少现金。低于 0.8 说明大量收入停留在应收款里。

    案例:某消费电子公司

    某公司连续三年净利润增速超过 30%,但经营现金流持续为负。深入一看:应收账款从 10 亿增长到 40 亿——原来是通过给经销商大量赊账来「制造」收入增长。这种高增长是危险的,一旦渠道去库存,收入会断崖式下跌。

    如何用自由现金流估值

    DCF 估值本质上是对未来自由现金流的折现。计算公式:自由现金流 = 经营现金流 – 维持性资本支出。简化版可以用「经营现金流净额 × 80%(保守估算资本支出)」来估算。

    小结

    利润是会计游戏,现金流是商业现实。读财报时,永远把现金流量表放在和利润表同等重要的位置。两表对照,才能看清一家公司真正的赚钱能力。

    来源:https://www.dnote.cn

    本文不构成投资建议,投资有风险,入市需谨慎。

  • Go 并发编程:Goroutine 与 Channel 实战指南

    Go 并发编程:Goroutine 与 Channel 实战指南

    为什么 Go 的并发模型值得专门学

    Go 的并发哲学来自 C.A.R. Hoare 的 CSP 理论,与传统线程模型完全不同。理解这套模型,是写出高性能 Go 服务的基础。

    Goroutine 到底是什么

    goroutine 是由 Go 运行时管理的轻量级线程,创建成本极低(约 2KB 栈空间),可以轻松创建数万个 goroutine 而不耗尽系统资源。与 OS 线程的 1:1 模型不同,Go 使用 M:N 调度——M 个 OS 线程上运行 N 个 goroutine,由 Go 运行时 GOMAXPROCS 控制并行度。

    一个简单的 goroutine 示例

    // 启动一个 goroutine
    go func() {
        fmt.Println("running in goroutine")
    }()
    
    // 主 goroutine 继续执行,不等待子 goroutine
    fmt.Println("main exits")

    Channel:goroutine 之间的通信桥梁

    channel 是 goroutine 间传递数据的管道,有带缓冲(buffered)和不带缓冲(unbuffered)两种。推荐优先使用无缓冲 channel,这样发送与接收必须配对,强制调用方思考同步问题,避免隐藏的竞态。

    ch := make(chan int)         // 无缓冲
    ch <- 42                       // 发送(阻塞直到有人接收)
    value := <-ch                  // 接收
    
    // 带缓冲 channel(队列)
    bufCh := make(chan int, 100)  // 最多缓存 100 条,不阻塞

    select:多路复用的并发协调

    select 关键字让一个 goroutine 可以同时监听多个 channel,就跟 select 系统调用监听多个 fd 一样。配合 default case 可以实现非阻塞发送/接收。

    select {
    case msg := <-ch1:
        fmt.Println("received from ch1:", msg)
    case msg := <-ch2:
        fmt.Println("received from ch2:", msg)
    case <-time.After(time.Second):
        fmt.Println("timeout")
    default:
        fmt.Println("no message available")
    }

    常见踩坑与最佳实践

    • 不要用 channel 传递所有数据——共享内存(sync.Mutex/sync.Map)有时更简单
    • 永远不要关闭由别人发送的 channel,避免 panic
    • 使用 context.Context 来控制 goroutine 的生命周期,而不是用 channel 硬传退出信号
    • 生产环境加上 -race 参数跑单元测试,检查数据竞争

    总结

    Go 的并发模型用起来简单,但要真正用好,需要理解 goroutine 的调度原理、channel 的阻塞语义,以及 context 在多层调用中的传递方式。掌握这些,你就能写出既高效又安全的并发代码。

    来源:https://www.dnote.cn

  • 财报速读指南:拿到一份年报该从哪里开始

    财报速读指南:拿到一份年报该从哪里开始

    为什么要自己读财报

    市场上的财报解读要么太浅(只说增长了多少),要么太碎(逐字逐句读,缺乏投资视角)。真正有用的财报阅读,是以投资问题为出发点,在有限时间内找到关键答案。

    第一步:读审计意见

    打开年报先翻到「审计报告」,看审计师给的是「标准无保留意见」还是带说明段的保留意见。如果是后者,说明这家公司的财务数据存在不确定性,需要提高警惕。

    第二步:看收入与利润的趋势

    找到「合并利润表」,重点看近 3-5 年的收入增速和毛利率变化。不要只看数字,要看趋势——是加速增长、增速放缓,还是周期性波动?增速放缓的「高增长」公司是最危险的陷阱。

    第三步:读现金流量表

    利润可以造假,现金流很难。经营活动现金流净额长期低于净利润,说明利润质量差,可能是应收款堆积或关联交易在「制造」利润。自由现金流(经营现金流 – 资本支出)才是企业真正的赚钱能力。

    第四步:读资产负债表的两端

    看负债端:资产负债率是否在合理范围?是否有大量短期借款需要近期偿还?看资产端:商誉占总资产比例?应收账款是否异常增长?这些数字反映了公司的财务健康度。

    第五步:找到管理层讨论与分析(MD&A)

    这是年报中最有价值的定性内容——管理层亲口解释为什么业绩上升/下降,对行业趋势的判断,以及下一年计划。读这里比读研报更能建立对公司的真实理解。

    一个实用的年报速读流程

    • 审计意见 → 排除财务风险
    • 收入/毛利率趋势 → 判断成长性
    • 经营现金流 vs 净利润 → 判断利润质量
    • 资产负债率 + 短债压力 → 判断财务安全
    • MD&A → 理解管理层思路

    小结

    读财报不需要会计专业,核心是建立一套提问框架:这份年报能回答我的投资问题吗?如果找不到答案,就继续找下一个投资标的。财报是用来排除公司的,不是用来证明公司有多好的。

    来源:https://www.dnote.cn

    本文不构成投资建议,投资有风险,入市需谨慎。

  • Go部署:Docker/K8s实战配置

    Go部署:Docker/K8s实战配置

    多阶段构建:让镜像小到 10MB 以内

    Go 是静态编译语言,只需要编译后的二进制文件,不需要运行时环境。多阶段构建可以分离构建环境和运行环境,最终镜像只包含二进制文件。

    # 阶段1:构建
    FROM golang:1.23-alpine AS builder
    WORKDIR /app
    COPY go.mod go.sum ./
    RUN go mod download
    COPY . .
    RUN CGO_ENABLED=0 GOOS=linux go build -ldflags='-w -s' -o server .
    
    # 阶段2:运行
    FROM alpine:3.19
    RUN addgroup -S appgroup && adduser -S appuser -G appgroup
    WORKDIR /app
    COPY --from=builder /app/server .
    RUN chmod +x server
    USER appuser
    CMD ["./server"]

    利用 Docker BuildKit 加速构建

    # 启用 BuildKit
    export DOCKER_BUILDKIT=1
    
    # 并行下载依赖,大幅加速
    docker build --progress=plain -t myapp:latest .

    健康检查:让 K8s/Compose 知道服务已就绪

    在 Dockerfile 里加上 HEALTHCHECK,让 orchestrator 在服务真正能接收请求时才将其加入负载均衡。

    HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
      CMD wget -qO- http://localhost:8080/health || exit 1

    环境变量注入的坑

    Go 程序默认会在 ENV 改变时重新加载,但 Docker 层会缓存 ENV。用 ENTRYPOINT 脚本或 Viper 动态读取,比硬编码 ENV 常量更灵活。

    小结

    Docker 化 Go 服务的核心是:镜像要小(多阶段构建)、构建要快(BuildKit)、健康要可感知。做到这三点,生产部署就没什么大问题了。

    来源:https://www.dnote.cn

  • 李录北大演讲全文:全球价值投资与时代

    李录北大演讲全文:全球价值投资与时代

    2024年12月7日,价值投资课程创办十周年,李录第三次站在北大光华管理学院的讲台上,发表了《全球价值投资与时代》的主题演讲。这是一篇信息量极高、诚意十足的长文,推荐直接观看文末的视频。

    一、世界形势判断

    全球格局正在重塑

    我们正处在二战后全球秩序的一个重大调整期,旧的秩序在逐渐松动,新的秩序还没有完全成型。

    核心变化 表现
    美国战略转向 从”全球警察”转向国内优先(就业、产业回流、债务)
    多极化趋势 不再有单一国家主导,全球进入多中心时代
    大国关系 “既竞争又不得不合作”(气候、供应链、金融风险)
    全球化特征 从”效率优先”转向”安全优先”,区域化趋势明显

    投资背景

    • 通胀粘性:高利率时代来临,”躺赢”投资时代结束
    • 机会所在:科技创新、能源转型、高端制造、医疗健康、消费升级

    二、中国现状分析

    核心矛盾:生产能力 vs 消费能力

    指标 中国 美国
    消费占GDP比重 ~40% >70%
    居民储蓄率 ~50%

    不爱花钱的原因:对未来预期不稳定(看病、养老、育儿、买房)

    两大制约因素

    1. 社会保障体系不完善

    家庭自保效率极低。100万大病存款 vs 1万/年保险分摊——这是效率的巨大差异。

    2. 资本市场不成熟

    国有银行主导,难以高效配置到创新企业。要保障香港的独立性,发挥连接全球资本的桥梁作用。

    中国前景判断

    阶段 说明
    2.5阶段 工业化基本完成,城市化>50%,向高收入阶段迈进
    优势 14亿人统一大市场;勤奋、爱学习、储蓄率高、企业家精神
    关键变量 消费占比从40%→60%,就是巨大增长空间

    三、价值投资六原则

    ① 买股票就是买公司

    股票是公司所有权,不是炒作筹码。案例:持有比亚迪22年,经历多次50%+下跌,从未卖出。

    ② 市场先生是你的仆人

    利用其情绪波动,不被其主导。恐慌时买入,狂热时卖出。

    ③ 安全边际

    “四毛钱买一块钱的东西”——应对未来不确定性的唯一工具。

    ④ 坚守能力圈

    不懂绝对不碰。芒格:承认不懂比假装懂更重要。

    ⑤ 去有鱼的地方钓鱼

    芒格名言。全球”有鱼”:科技、能源转型、医疗、品牌消费。中国”有鱼”:产业升级、内需消费、绿色经济、数字化。

    ⑥ 财富 = 购买力占比

    持有最优经济体的最优公司股权,是保住购买力的最好方式。

    四、给投资者的建议

    建议 要点
    接受现实 不抱怨、不幻想,专注能控制的事
    用闲钱投资 绝对不借钱炒股,不拿短期要用的钱投资
    理性看中国 不悲观、不盲目乐观,好公司能穿越周期

    五、两条道德底线

    1. 追求真知:把对智慧和真理的追求当作道德责任,避免”屁股决定脑袋”
    2. 受托人责任:把客户的钱当父母的钱打理,把客户利益放在自己之前

    结语

    “价值投资恰恰诞生于经济动荡、认知混乱的时期”

    越是在动荡的时代,价值投资的优势就越明显。


    附:李录简介

    1966年生于唐山,1985年考入南京大学物理系,1990年赴哥大深造,6年获得三个学位。因在哥大听了巴菲特演讲,下定决心做价值投资,后创立喜马拉雅资本。查理·芒格的家族资本投在李录管理的基金里。

    演讲视频:可在B站搜索”李录 北京大学 全球价值投资与时代”

  • 用 Excel 做财务建模:从收入预测到利润表

    用 Excel 做财务建模:从收入预测到利润表

    为什么投资人也需要会建模

    很多投资者依赖研报里的模型,但研报模型往往是「乐观假设」的包装。自己动手建模,才能真正理解假设对估值的影响有多敏感——这才是财务分析的核心竞争力。

    建模的基本框架

    财务建模的核心是三张表之间的联动:利润表 ←→ 资产负债表 ←→ 现金流量表。一个简单的 Excel 建模流程:

    • 输入假设:收入增速、毛利率、费用率、税率
    • 预测利润表:收入 × 毛利率 – 费用 = EBIT
    • 预测现金流量表:EBIT → 折旧加回 → 资本支出 → FCF
    • 检查平衡:资产负债端的变动是否合理

    一个简单的收入预测模型

    # Excel 中的收入预测公式(按年)
    
    假设 sheet 中:
    - B1 = 基期收入(100亿)
    - B2 = 预测增速(15%)
    
    B3 = B2 * B1 + B1           # 第二年收入
    B4 = B3 * B1 + B3           # 第三年收入
    # 以此类推...

    敏感性分析:用 Data Table 看估值区间

    DCF 模型最有价值的部分是敏感性分析。用 Excel 的「数据表」功能,把折现率和永续增长率作为横纵轴,一次性显示所有组合下的估值结果——直观看到哪个假设对估值影响最大。

    建模的几个原则

    • 假设和计算分开:不要把数字写死在公式里
    • 用颜色区分输入(蓝)、公式(黑)、链接(绿)
    • 始终检查三张表之间的逻辑一致性
    • 做敏感性分析,不要只报一个「目标价」

    小结

    Excel 财务建模不需要 VBA,不需要宏,只需要清晰的结构和严谨的假设。它是基本面投资者最重要的工具之一,能帮你把「模糊的看好」变成「有依据的估值」。

    来源:https://www.dnote.cn

    本文不构成投资建议,投资有风险,入市需谨慎。

  • Go ORM对比:GORM vs Ent vs Kitex

    Go ORM对比:GORM vs Ent vs Kitex

    为什么 Go 生态里有这么多 ORM 选择

    Go 生态偏好显式而非隐式,所以没有 Java Hibernate 那样的大一统 ORM。GORM、Ent 和 Kitex(配合 codegen)是三条不同的路,各有适用场景。

    GORM:最成熟,上手最快

    GORM 是事实标准,生态丰富、文档完善。缺点是隐式 SQL、链式 API 容易写出难以维护的代码,且性能一般。适合快速开发或中小型项目。

    Ent:代码生成,类型安全

    Ent 是 Facebook 出品的代码生成式 ORM。Schema 定义后自动生成代码,类型安全、IDE 友好、支持图结构查询。缺点是学习曲线稍陡,新增字段需要重新生成。

    Kitex + SQLBricks:微服务场景的最佳组合

    字节跳动的 Kitex 框架不绑定 ORM,推荐配合 sqlx 或 sqlc 使用。sqlc 可以从 SQL 语句生成类型安全的 Go 代码,彻底避免 SQL 注入,同时保持 SQL 的可读性。

    各场景推荐

    场景 推荐 原因
    快速原型/MVP GORM 上手快,生态成熟
    中大型项目 Ent 类型安全,可维护
    高性能微服务 Kitex + sqlx 零抽象,性能可控
    需要图查询 Ent 原生支持图结构

    小结

    选 ORM 就是选抽象程度:GORM 是高抽象(牺牲性能和可维护性),Ent 是中抽象(平衡),sqlx 是低抽象(保留 SQL 的所有优点)。没有最优解,只有最适合当前项目规模和团队风格的方案。

    来源:https://www.dnote.cn

  • 估值方法对比:PE、PEG、ROE、DCF 各适合什么场景

    估值方法对比:PE、PEG、ROE、DCF 各适合什么场景

    估值不是算命,是概率判断

    很多人以为估值是精确计算出一个「真实价值」,其实不是。估值是一种概率判断——当前股价相对于内在价值,是偏贵还是偏便宜?不同方法适用于不同类型的公司,没有万能公式。

    PE(市盈率):最常用,但最容易被误用

    PE = 股价 / 每股收益,是最直观的估值指标。但要注意:低 PE 未必便宜(可能是衰退行业),高 PE 未必贵(可能是高速成长期)。还要区分静态 PE(用去年 EPS)和动态 PE(用分析师预测 EPS)。

    PEG:弥补 PE 无法衡量增速的缺陷

    PEG = PE / 净利润增速(G)。PEG < 1 说明增速相对于估值有安全边际,PEG > 2 则明显偏贵。这个指标适合成长股,不适合成熟期公司和周期股。

    ROE(净资产收益率):衡量赚钱效率

    ROE = 净利润 / 净资产,反映每投入 1 元能赚多少。长期 ROE > 15% 的公司通常有护城河。但要注意:高 ROE 是来自高净利润率、高周转率,还是高杠杆?后者的 ROE 是危险的。

    DCF(现金流折现):最严谨,但最难用对

    DCF 的核心是预测未来自由现金流并折现。问题在于:DCF 对折现率和增速假设极其敏感——折现率差 1%,估值可能差 30%。适合现金流稳定、可预测性强的公司(消费、水电),不适合盈利波动大的周期股和初创公司。

    各估值方法的适用场景

    方法 适用场景 不适用场景
    PE 稳定增长、消费类 亏损、周期、极高增速
    PEG 成长股(增速 15-50%) 周期股、低增速/负增速
    ROE 所有公司(配合杜邦分析) 单独使用不够,需结合负债
    DCF 现金流稳定的水电/消费 周期、亏损、早期公司

    小结

    估值是一种思维框架,不是精确公式。用 PE 看当前市场定价,用 DCF 做内在价值锚定,用 ROE 验证盈利质量——三者结合,比任何单一指标都更可靠。

    来源:https://www.dnote.cn

    本文不构成投资建议,投资有风险,入市需谨慎。

  • Go并发编程精讲:goroutine/channel原理与避坑指南

    Go并发编程精讲:goroutine/channel原理与避坑指南

    深入理解 GMP 调度模型

    Go 运行时调度器将 goroutine 映射到 OS 线程上执行,GMP 代表 G(Goroutine)、M(Machine/OS 线程)、P(Processor,执行上下文)。P 的数量默认等于 CPU 核心数,可以通过 GOMAXPROCS 调整,这是 Go 并发性能的关键参数。

    goroutine 的生命周期与状态

    goroutine 有多个状态:waiting(阻塞在 channel 或系统调用)、runnable(就绪等待调度)、running(正在执行)。理解这些状态有助于分析死锁和性能问题。

    channel 的底层实现

    channel 内部有环形队列和两个等待队列(sendq 和 recvq)。向已满的无缓冲 channel 发送会阻塞,goroutine 被挂在 sendq 上;接收时会从 recvq 唤醒一个 sender 或从队列取数据。

    常见并发陷阱

    • 向已关闭的 channel 发送数据会 panic,但接收会返回零值
    • 多个 goroutine 同时等待同一个 channel,只有 1 个会被唤醒——用 sync.WaitGroup 而非 channel 控制退出
    • for range channel 会一直阻塞直到 channel 关闭
    • context.WithCancel 是优雅退出多个 goroutine 的标准方式

    小结

    理解 GMP 调度和 channel 底层原理,才能真正写出高效的并发代码。遇到性能问题时,用 runtime.NumGoroutine() 和 pprof 分析 goroutine 的状态分布是第一步。

    来源:https://www.dnote.cn

  • 用 Taro 开发小程序:答题卡网格布局的兼容性问题总结

    用 Taro 开发小程序:答题卡网格布局的兼容性问题总结

    背景

    在做一个刷题小程序时,需要实现一个答题卡界面——用网格展示所有题目状态(未答/已答/当前题),支持点击跳转。在 Web 上几行 CSS 搞定,在小程序里却踩了不少坑。

    问题一:gap 属性在小程序里不生效

    这是最常见的问题。CSS gap 属性用于设置网格/弹性盒子的间距,在主流浏览器都支持,但在微信小程序、支付宝小程序里均不支持。解决方案:

    /* ❌ 小程序不支持 */
    .grid { display: grid; gap: 16px; }
    
    /* ✅ 改用 margin 模拟 */
    .grid { display: grid; }
    .grid-item { margin-right: 16px; margin-bottom: 16px; }
    /* 最后一项去掉右边距 */
    .grid-item:last-child { margin-right: 0; }

    问题二:display: grid 在某些机型的兼容情况

    iOS 微信大部分版本支持 grid,但 Android 端部分机型(尤其是低端机)的 UC/QQ 浏览器内核不支持。推荐降级方案:用 flex + 百分比宽度实现网格。

    /* ✅ 兼容写法:flex 模拟网格 */
    .row { display: flex; flex-wrap: wrap; }
    .cell { width: 48px; height: 48px; margin: 0 4px 8px 0; }

    问题三::nth-child 在某些场景下失效

    nth-child 在动态列表(数据来自接口)时表现正常,但在用 v-for 遍历固定数量的数字时,微信开发者工具和部分真机行为不一致。解决方案是改用 v-if 或加辅助 class。

    实战答题卡组件代码

    const AnswerCard = ({ questions, currentIndex, onJump }) => {
      return (
        <View className='answer-card'>
          <View className='row'>
            {questions.map((q, i) => (
              <View
                key={q.id}
                className={`cell ${i === currentIndex ? 'current' : ''} ${q.answered ? 'done' : 'undone'}`}
                onClick={() => onJump(i)}
              >
                {i + 1}
              </View>
            ))}
          </View>
        </View>
      )
    }

    小结

    小程序开发的本质是与 CSS 兼容层打交道。遇到 display、gap、nth-child 等属性,先查 caniuse,再想降级方案。开发阶段多用真机调试,开发者工具的结果不一定准确。

    来源:https://www.dnote.cn

  • Docker 容器化 Go 服务的几个实战细节

    Docker 容器化 Go 服务的几个实战细节

    多阶段构建:让镜像小到 10MB 以内

    Go 是静态编译语言,只需要编译后的二进制文件,不需要运行时环境。多阶段构建可以分离构建环境和运行环境,最终镜像只包含二进制文件。

    # 阶段1:构建
    FROM golang:1.23-alpine AS builder
    WORKDIR /app
    COPY go.mod go.sum ./
    RUN go mod download
    COPY . .
    RUN CGO_ENABLED=0 GOOS=linux go build -ldflags='-w -s' -o server .
    
    # 阶段2:运行
    FROM alpine:3.19
    RUN addgroup -S appgroup && adduser -S appuser -G appgroup
    WORKDIR /app
    COPY --from=builder /app/server .
    RUN chmod +x server
    USER appuser
    CMD ["./server"]

    利用 Docker BuildKit 加速构建

    # 启用 BuildKit
    export DOCKER_BUILDKIT=1
    
    # 并行下载依赖,大幅加速
    docker build --progress=plain -t myapp:latest .

    健康检查:让 K8s/Compose 知道服务已就绪

    在 Dockerfile 里加上 HEALTHCHECK,让 orchestrator 在服务真正能接收请求时才将其加入负载均衡。

    HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
      CMD wget -qO- http://localhost:8080/health || exit 1

    环境变量注入的坑

    Go 程序默认会在 ENV 改变时重新加载,但 Docker 层会缓存 ENV。用 ENTRYPOINT 脚本或 Viper 动态读取,比硬编码 ENV 常量更灵活。

    小结

    Docker 化 Go 服务的核心是:镜像要小(多阶段构建)、构建要快(BuildKit)、健康要可感知。做到这三点,生产部署就没什么大问题了。

    来源:https://www.dnote.cn

  • WordPress 6.9.4 正式发布:更新内容速览

    WordPress 6.9.4 已于 2026年04月15日 正式发布。以下是本次更新的主要内容整理,供站长参考。

    ⚠️ 安全版本:本次更新包含安全修复,建议所有用户尽快升级。

    本次 6.9.4 是一个安全维护版本,修复了 10 个安全问题。WordPress 安全团队发现此前版本中部分安全修复未完全生效,因此紧急发布 6.9.4 补丁。

    🔒 安全修复

    • 路径穿越漏洞(PclZip 组件)
    • 授权绕过漏洞
    • XXE(XML 外部实体注入)漏洞

    如何升级

    登录 WordPress 后台 → 仪表盘 → 更新,点击「立即更新」即可完成升级。建议升级前先备份数据库和文件。

    参考链接

    本文由自动化脚本监测到 WordPress 新版本后自动生成,仅供参考。

  • 迈瑞医疗2025年财报深度解读:上市首次下滑背后,国际化转型提速与估值底部机会

    迈瑞医疗2025年财报深度解读:上市首次下滑背后,国际化转型提速与估值底部机会

    2026年3月30日晚,迈瑞医疗(300760)正式披露2025年年度报告。这份财报给市场带来了不小的震动:这是公司2018年A股上市以来,营收和净利润首次出现年度同比下滑。然而,数字背后,是一个医疗器械龙头在政策寒冬中艰难转型、蓄力待发的真实写照。

    一、核心财务数据一览

    指标 2025年 2024年 同比变化
    营业收入 332.82亿元 367.26亿元 ▼ -9.38%
    归母净利润 81.36亿元 116.68亿元 ▼ -30.28%
    扣非归母净利润 80.69亿元 114.45亿元 ▼ -29.48%
    经营活动现金流 101.45亿元 124.34亿元 ▼ -18.40%
    研发费用 35.79亿元 36.66亿元 ▼ -2.37%
    销售费用 51.45亿元 52.83亿元 ▼ -2.61%
    每股收益(EPS) 6.71元 9.64元 ▼ -30.4%
    拟每10股派息 3.10元(含税)

    乍看之下,这组数字相当难看。但读懂这份财报,需要穿透数字,看清楚究竟发生了什么。

    二、业绩下滑的真实原因:不是竞争,是政策

    国内业务:政策叠加冲击,下滑22.97%

    2025年国内业务收入156.32亿元,同比下降22.97%,是业绩大幅下滑的核心原因。压力主要来自三个方向:

    • 医院采购预算缩减:受医院整体经营压力影响,设备采购处于弱复苏阶段
    • 体外诊断试剂双重打压:DRG/DIP支付方式改革叠加集中带量采购,试剂用量和价格双双下行
    • 检验结果互认政策:减少了重复检验需求,直接压缩试剂市场规模

    值得注意的是,迈瑞在国内市场的份额并未丢失,反而是逆势提升。这意味着整个蛋糕缩小了,而迈瑞分到了更大的比例——这是长期竞争力的体现。

    国际业务:逆势增长,占比首次超50%

    与国内形成鲜明对比,国际业务实现收入176.50亿元,同比增长7.40%,占总收入比重升至53%,首次超过国内业务。

    区域 表现
    欧洲市场 同比增长17%(在2024年高增长基础上继续提速)
    新兴市场 新突破近90家国际重点战略客户,含17家全球前100名医院
    国际新兴业务 增长近30%

    迈瑞正在加速成为一家真正的全球化医疗器械公司,这一转变从长远来看意义重大。

    三、财务健康度:盈利质量仍属优秀

    尽管利润大幅下滑,迈瑞的财务结构依然坚实:

    财务指标 2025年
    毛利率 60.32%
    净利率 25.39%
    ROE(净资产收益率) 22.00%
    ROA(总资产收益率) 15.91%
    资产负债率 27.43%(极低,财务稳健)
    流动比率 2.36(偿债能力强)
    经营现金流 101.45亿元(净利润覆盖率124%)

    毛利率60%+、净利率25%+、ROE 22%——在如此大的盈利下滑背景下,迈瑞依然保持着这样的财务质量,足以说明其商业模式的护城河深度。经营活动现金流达101亿元,远超归母净利润,说明公司盈利含金量极高,没有水分。

    四、新兴业务:下一个增长极

    2025年迈瑞新兴业务收入53.78亿元,同比增长38.85%,占总收入约16%,是整体财报中最亮眼的部分。

    新兴业务 进展
    微创外科 超声刀、吻合器等集采中标,进入上百家头部医院
    微创介入(惠泰医疗) 三维房颤PFA/RFA系统获批,进入临床
    动物医疗 海外收入占比约80%,增速亮眼
    AI大模型”启元生态” 重症医学大模型5秒完成患者24小时病情梳理

    新兴业务的高速成长,让迈瑞从单纯依赖传统三大业务(体外诊断+生命信息支持+医学影像)转型为多赛道驱动,抗风险能力大幅提升。

    五、历史业绩纵览:首次下滑,但趋势不变

    年份 营业收入 归母净利润 EPS
    2021年 252.70亿元 80.02亿元 6.59元
    2022年 303.66亿元 96.07亿元 7.94元
    2023年 349.32亿元 115.82亿元 9.56元
    2024年 367.26亿元 116.68亿元 9.64元
    2025年 332.82亿元 81.36亿元 6.71元

    2025年是迈瑞上市以来的首次年度下滑,主要由国内政策性因素导致,并非企业竞争力丧失。从2021年到2025年,利润整体仍保持增长趋势,只是2025年出现了阶段性回调。

    六、估值分析:当前位置在哪里?

    截至2026年3月31日,迈瑞医疗A股股价约164.66元,总市值约1,996亿元

    估值指标 当前值 参考意义
    PE(TTM) 约24.5倍 基于2025年盈利,历史中位数约35-40倍
    PB 约5.24倍 ROE 22%,PB合理
    PS(TTM) 约6.0倍 医疗器械龙头正常水平
    股价较高点 约较2025年初250元高点下跌34% 估值已大幅压缩

    从历史估值来看,迈瑞在高速成长期PE常年维持在35-50倍区间。当前约24.5倍PE对应的是公司阶段性低谷年份的盈利,若2026年国内业务如期恢复正增长,利润回升到100亿+水平,当前市值隐含的实际估值会更低。

    七、投资视角:该如何看待迈瑞?

    看多的理由

    • 政策压力是阶段性的,不是永久性的:DRG改革、集采是一次性冲击,医院预算最终会恢复,检验需求不会消失
    • 国际化战略提前突围:国际收入首超50%,提供了天然对冲,长期来看降低了对国内政策的依赖
    • 护城河极深:60%毛利率、22% ROE说明定价权强、复购黏性高,这是普通制造业无法比拟的
    • 新兴业务38.85%的高速增长将在未来3-5年贡献越来越大的增量
    • 管理层明确预期2026年国内正增长、2027年加速
    • 当前估值处于历史低位区间,距离高点已回调34%

    需要关注的风险

    • 政策不确定性:若集采范围进一步扩大,或医院采购恢复不及预期,2026年业绩可能再度承压
    • 国际竞争加剧:进入欧美高端市场面临飞利浦、西门子、GE的强力竞争
    • 汇率风险:国际收入占比提升后,人民币升值会对营收产生负面影响
    • 新兴业务规模尚小:53.78亿的新兴业务虽然增速喜人,但尚不足以完全弥补主业波动

    综合判断

    迈瑞医疗2025年的业绩下滑是外因主导的阶段性低点,而非竞争力衰退。公司基本面依然出色,财务质量健康,国际化转型按部就班,新兴业务高速成长。

    对于中长期投资者:当前位置(约165元,PE约25倍)已经接近历史底部估值区间,具备相当的安全边际。如果相信国内医疗政策会逐步归于正常、相信迈瑞的全球化战略能够持续兑现,那么目前的位置提供了不错的中长期布局机会。

    对于短期投资者:需要等待国内业务恢复正增长的明确信号,预计2026年中报可能是一个重要的观察节点。

    目标价参考:假设2026年净利润恢复至95-100亿,给予25-30倍PE,对应合理市值区间约2,375-3,000亿,相当于每股195-248元,相对当前股价有20%-50%的潜在上行空间


    免责声明:本文仅为财报分析,不构成任何投资建议。股市有风险,投资需谨慎。请在做出任何投资决策前进行独立研究或咨询专业人士。

    本文不构成投资建议,投资有风险,入市需谨慎。

  • 中国移动2025年财报深度解读:营收破万亿,算力转型加速,股息率近5%值得关注

    中国移动2025年财报深度解读:营收破万亿,算力转型加速,股息率近5%值得关注

    2026年3月26日,中国移动(股票代码:600941.SH / 00941.HK)正式发布2025年全年业绩。作为全球最大的移动通信运营商,中国移动在复杂的外部经济环境下交出了一份稳中有进的成绩单。本文将从财务数据、业务亮点、估值分析等多个维度,对这份财报进行深度解读。


    一、核心财务数据一览

    营收与利润

    指标 2025年 2024年 同比变化
    营业总收入 10,502亿元 10,408亿元 +0.9%
    营业利润 1,784亿元 1,763亿元 +1.2%
    利润总额 1,756亿元 1,784亿元 -1.6%
    归母净利润 1,371亿元 1,384亿元 -0.9%
    EBITDA 3,415亿元 3,381亿元 +1.0%
    基本每股收益 6.35元 6.45元 -1.6%

    解读:营收突破1万亿元大关,但净利润小幅下滑。这一现象主要源于非经营性收益减少和所得税波动,实际经营层面(EBITDA)仍保持增长,公司核心盈利能力稳健。

    关键财务指标

    指标 2025年 2024年
    ROE(净资产收益率) 9.97% 10.39%
    ROA(总资产收益率) 8.35% 8.70%
    毛利率 28.87% 29.02%
    净利率 13.07% 13.31%
    资产负债率 33.22% 34.33%
    每股净资产 64.37元 63.05元

    现金流

    项目 2025年 2024年
    经营活动现金净流入 2,329亿元 3,157亿元
    投资活动现金净流出 -1,904亿元 -1,852亿元
    筹资活动现金净流出 -1,121亿元 -1,052亿元
    自由现金流 1,031亿元 3,726亿元

    注意自由现金流同比大幅下降,主要是因为2024年该项数字异常偏高(含特殊处置收益),2025年回归正常区间,实际造血能力仍然强劲。


    二、业务亮点:从”管道”到”智能底座”

    1. 算力服务:最亮的增长极

    2025年,算力服务收入达898亿元,同比增长11.1%,其中智算服务收入增速高达279%。这是中国移动战略转型最具说服力的数据——公司正在从传统”流量管道”蜕变为AI时代的”算力底座”。

    截至2025年末,中国移动智算规模达92.5 EFLOPS,已在全国完成”东数西算”架构布局,支撑大模型训练、推理业务的基础设施日趋完善。

    2. 智能服务:AI+产品矩阵初具规模

    智能服务收入908亿元,同比增长5.3%,推出超百款AI+产品及解决方案,覆盖政务、医疗、教育、工业等核心场景。算力+智能两大新兴业务合计占主营收入比重提升至20.2%,成为公司增长的核心驱动力。

    3. 5G网络:规模全球领先

    5G基站规模超277万个,实现全国乡镇以上连续覆盖;千兆光网覆盖达5.3亿户。5G用户渗透率持续提升,为企业级应用(工业互联网、远程医疗等)打下坚实网络基础。

    4. 国际业务:超预期增长

    国际市场收入293亿元,同比增长28.5%,”一带一路”沿线布局加速变现,是营收增长最快的板块之一。

    5. 分红持续慷慨

    2024年度(在2025年实施)每股现金分红2.2916元(税前),连续多年保持增长。最新公告显示派息率为75%,以当前股价(约93元)计算,股息率约为4.93%,远超同期银行存款利率,是价值投资者重要的持有理由。


    三、估值分析:贵还是便宜?

    估值指标 当前值(2026/3/28) 评估
    股价(A股) 93.4元 较年初115元高位回调约19%
    PE(市盈率) 约14.7倍(2025年EPS 6.35元) 历史低位区间
    PB(市净率) 1.45倍(BPS 64.37元) 略高于净资产,溢价合理
    股息率 约4.9% 高于10年期国债利率约3倍
    总市值 约2,300亿元(A股流通) ——

    从历史估值来看,中国移动A股PE在12-20倍之间震荡,当前14-15倍处于中低位水平。考虑到业绩稳定性、高分红以及AI算力转型带来的潜在溢价,当前估值具备一定吸引力。

    券商分析师普遍给出”买入”或”增持”评级,目标价区间在110-125元,较当前股价(约93元)有约20-35%的上行空间。


    四、风险与挑战

    短期风险

    • 宏观经济压力:消费端增速放缓可能影响ARPU(每用户平均收入)提升空间
    • 资本开支高企:2026年资本开支计划1,366亿元,算力网络投资占比超37%,短期净利润承压
    • A股与H股价差:A股相对H股溢价约25%,存在一定估值压力

    中长期风险

    • 技术迭代风险:AI算力竞争激烈,阿里云、腾讯云、华为云均在抢占市场
    • 收入增速天花板:传统通信业务增速接近饱和,依赖新业务驱动的转型需时间验证
    • 监管政策:数据安全、反垄断等监管趋严可能增加合规成本

    五、投资观点:稳健价值 + 算力转型期权

    综合以上分析,我对中国移动的投资判断如下:

    适合的投资者

    • 追求稳定股息的长期投资者:每年约5%的股息率,叠加净资产稳步增长,是抗通胀的优质资产
    • 看好AI算力基础设施的投资者:智算收入279%的增速证明公司已切入AI产业链核心位置
    • 偏好国央企低波动资产的配置型资金:政策背书强、市场地位稳固、现金流可预期

    不适合的投资者

    • ❌ 追求高弹性成长的成长股投资者:净利润增速个位数,不是”翻倍股”逻辑
    • ❌ 短线交易者:从年初高点回调19%后,短期缺乏强催化剂

    我的综合判断

    中性偏乐观,关注回调买点。
    当前PE约15倍、股息率约5%,估值合理偏低。算力服务和智能服务正在重塑公司增长逻辑,但转型成效需2-3年充分体现。建议在90-95元区间逢低建仓,以”持有吃股息 + 等待算力估值重估”的长期视角参与。


    六、小结

    中国移动2025年财报整体符合预期:营收稳健增长、EBITDA创新高、分红力度不减,算力与智能服务双轮驱动的转型路径日益清晰。虽然净利润因非经营性因素小幅下滑,但核心经营能力并未受损。

    在通信运营商普遍面临传统业务天花板的背景下,中国移动选择以”算力基础设施运营商”为方向突围,逻辑清晰、执行有力。这是一家值得长期跟踪的优质公司,当前价位对稳健投资者具有一定的配置价值。

    ⚠️ 免责声明:本文仅为个人财报分析记录,不构成任何投资建议。投资有风险,入市须谨慎。

  • 小米集团2025年全年业绩深度解析:营收破4500亿,汽车业务首次盈利

    小米集团2025年全年业绩深度解析:营收破4500亿,汽车业务首次盈利

    发布时间:2026年3月26日 | 数据来源:小米集团官方财报(2026.03.24发布)

    核心亮点速览

    指标2025年2024年同比变化
    总营收4,572.9亿元3,659.1亿元+25.0%
    毛利润1,018.1亿元765.6亿元+33.0%
    毛利率22.3%20.9%+1.4ppt
    经营利润479.0亿元245.0亿元+95.5%
    经调整净利润391.7亿元272.3亿元+43.8%
    研发投入331.3亿元240.5亿元+37.8%

    一、业绩总览:五年蜕变,2025创历史新高

    小米集团于2026年3月24日发布了经审计的2025年全年财报,各项核心指标均刷新历史记录。总营收突破4500亿元大关,达到4,572.9亿元,同比增长25%;经调整净利润达到391.7亿元,同比大增43.8%。这是小米上市以来表现最为亮眼的一份成绩单。

    纵观小米五年财务轨迹,可以清晰看出其从”高速扩张→调整蛰伏→价值重构”的转型弧线:

    财年总营收(亿元)经调整净利润(亿元)净利率
    2020年2,458.7130.15.3%
    2021年3,283.1220.46.7%
    2022年2,800.485.23.0%
    2023年2,710.7192.77.1%
    2024年3,659.1272.37.4%
    2025年4,572.9391.78.6%

    2022年是小米的”至暗时刻”:全球智能手机市场需求萎缩、疫情冲击供应链,营收较2021年下滑14.7%,经调整净利润腰斩。但小米选择了”向内蓄力”——持续加码研发、启动汽车业务、推进高端化战略,这些投入在2024-2025年集中兑现。

    二、业务结构:双轮驱动格局初步形成

    2.1 手机×AIoT:稳中有升,结构优化

    传统核心业务”手机×AIoT”全年实现营收3,512.2亿元(同比+5.4%),占总营收比例从91%降至76.8%,比例下降主要因为汽车业务的快速壮大,绝对规模仍在增长。

    业务线2025年营收2024年营收同比毛利率
    智能手机1,864.4亿元1,917.6亿元-2.8%10.9%(↓1.7ppt)
    IoT及生活消费产品1,232.0亿元1,041.0亿元+18.3%23.1%(↑2.8ppt)
    互联网服务374.4亿元341.2亿元+9.7%76.5%(持平)

    智能手机:量减价升,高端化战略初见成效。受全球智能手机大盘增速放缓及国补退出影响,手机营收小幅下滑2.8%,毛利率也从12.6%降至10.9%。但值得注意的是,Q4智能手机ASP(平均售价)已达1,176元/台,环比Q3(1,063元/台)提升10.7%,小米17 Pro、17 Pro Max等高端机型热销是主要驱动力。

    IoT及生活消费产品:本年最大惊喜。营收突破千亿达1,232亿元,毛利率更从20.3%大幅提升至23.1%,主要得益于可穿戴设备等高附加值品类收入占比提升。小米的”家居生态”正在产生复利效应。

    互联网服务:高利润压舱石。374亿元营收对应76.5%的超高毛利率,是整个集团的”利润奶牛”。随着小米设备保有量持续扩大,这一业务的天花板仍在抬升。

    2.2 智能电动汽车:从0到1再到盈利,速度超预期

    这是本份财报最具含金量的部分。小米汽车及AI等创新业务全年实现营收1,060.7亿元(同比+223.8%),占总营收23.2%,且年度经营收益首次转正——这对于一个成立仅三年的汽车品牌而言,几乎是不可思议的速度。

    指标2025年2024年增幅
    汽车营收1,033亿元321亿元+221.8%
    汽车交付量411,082辆136,854辆+200.4%
    汽车ASP25.1万元/辆23.4万元/辆+7.1%
    汽车毛利率24.3%18.5%+5.8ppt

    2025年小米交付了411,082辆汽车,是2024年交付量的3倍。SU7 Ultra的成功发布(52.99万元定价)将品牌拉升至豪华赛道;新一代SU7上市34分钟锁单超15,000辆;YU7系列的推出进一步拓宽了产品矩阵。

    更值得关注的是毛利率:从2024年的18.5%跃升至24.3%,超过绝大多数传统车企,已接近特斯拉最辉煌时期的水平。这一数字说明小米汽车具备可持续盈利能力,而非依靠补贴支撑。

    三、盈利质量:研发驱动,护城河持续加深

    2025年小米研发投入达331.3亿元,同比增长37.8%,占营收比例为7.2%。这是小米连续第五年保持研发投入双位数增长。研发方向涵盖:自研芯片(澎湃O1)、AI大模型(MiMo)、自动驾驶(Xiaomi HAD)、操作系统(澎湃OS)。

    从费用结构来看,2025年三大费用(研发+销售+管理)共计731亿元,但因毛利润大幅增长,费用率整体可控,经营杠杆效应明显——经营利润同比增幅高达95.5%,远超营收增速。

    四、Q4单季度:压力下的韧性

    第四季度是全年稍显”美中不足”之处。Q4营收1,169.2亿元(同比+7.3%),但经调整净利润为63.5亿元(同比-23.7%)。下滑原因主要是:

    • 国内国补政策调整导致手机销量季节性下滑
    • 海外市场促销力度减弱,出货量收缩
    • 研发和销售费用同比大幅增加(研发+29%,销售+28%)
    • 金融工具公允价值变动收益减少

    不过汽车业务Q4大幅改善:单季交付145,115辆(环比+33.4%),汽车营收达362.6亿元,为全年最高单季。

    五、前景展望:三大看点

    看点一:汽车目标提速。2026年小米汽车计划年交付量突破60万辆,新一代SU7发布即锁单3万辆,YU7持续放量。汽车业务若能维持24%+的毛利率,贡献利润将进一步提升整体盈利水平。

    看点二:AI全面赋能。小米自研大模型MiMo-V2-Flash已开源,HyperOS 3搭载全系AI助手,澎湃O1芯片量产落地。AI不仅是产品差异化的来源,更是互联网服务变现效率提升的催化剂。

    看点三:出海深化。卢伟冰启动欧洲首站布局,全球化市场拓展加速。海外市场(尤其是印度、东南亚、欧洲)手机份额稳固,是抵御国内竞争压力的重要缓冲。

    六、结语

    小米2025年财报的核心信息只有一条:战略已经兑现。三年前业界对”雷军造车”持怀疑态度,如今这个业务贡献了超过千亿营收并实现年度盈利;五年前小米被认为是”低端机品牌”,如今高端机型ASP突破1,176元并持续攀升。

    当然,挑战也同样清晰:手机业务毛利率下行压力、Q4利润承压、全球宏观不确定性。但从中长期视角看,小米正在构建一个”手机×AIoT×汽车×AI服务”的四轮驱动体系,每一条业务线都有独立的增长逻辑和协同空间。

    对于关注科技成长股的投资者,小米2025年财报是一份值得细细品味的答卷。


    免责声明:本文仅为财报解读与信息整理,不构成任何投资建议。投资有风险,决策需谨慎。