
1. 为什么聊价格却要从“效率损失”说起如果你在电力市场里做过结算或者看过现货出清结果大概率会碰到边际电价机制这个名词。简单说它就是“用满足负荷的那最后一台机组的报价作为全部成交机组的统一结算价”。这个价格在每一天的现货交易里都是核心但它也是很多争论的起点有人嫌它太高有人觉得它不公平还有人把“低成本机组赚了高价”直接等同于效率损失。这些说法对吗不对但也不完全错。区别在于我们怎么定义效率损失。这次我把整个机制从出清逻辑、节点电价、市场力、新能源影响到容量回收拆了一遍也搭了一个极简模型做验证。这篇文章不打算做教科书式的概念罗列而是站在实际分析项目的角度把“边际电价机制为什么会有效率损失”“损失到底出在哪一步”讲清楚。适合刚接触到现货市场的分析师、交易员、售电公司运营以及想搞明白电价机制背后逻辑的工程师。1.1 边际电价机制到底在解决什么问题电力不太像其他商品它很难经济地大规模储存发用之间必须随时保持平衡。电网每一秒都在做一个“数量匹配”的动作所有机组加起来的出力要刚好等于所有用户加起来的用电。这个动作在物理上必须完成但经济上怎么给电定价却有很多种可选方案。边际电价机制就是其中被电力市场化程度较高的地区广泛采用的一种。它的核心逻辑可以理解成“拍卖”发电企业先把各段电量的价格报出来交易中心把报价从低到高排成一列再一条一条点亮直到满足负荷。最后一个被点亮的机组决定了系统边际价格所有中标电量都按这个价格结算。这样一来全社会只需要关心一件事哪个机组是边际机组它的报价是多少。不是所有的电厂都按自己的报价拿钱也不是电厂想报多少就能拿到多少。为什么不改成“各家报多少就结多少”的按报价支付方式道理也不复杂。在按报价支付的规则下所有企业都有很强的动机往高里报希望能搏一个更高的结算价。报价变成猜谜游戏真实成本被埋住市场效率反而更低。统一出清价让报价者面对一个更直接的激励把报价报到真实边际成本附近才不会因为报得过高而失去中标机会也不会因为报得过低而失去利润空间。这种机制不是为了照顾谁而是为了在极短的实时平衡周期里用一个相对简单的规则把供给和需求撮合起来。1.2 效率损失一个常被误解的词第一次看边际电价结算结果的人往往会对“信息租金”感到震惊。同一台边际机组报价500元/兆瓦时边上那台成本只有200元/兆瓦时的机组也能按500元拿到钱。于是很多人说这多出来的300元就是效率损失。严格来说这不算。多出来的部分是低成本机组因为统一价格机制而获得的信息租金它的本质是从用户向生产者的转移不是社会财富平白蒸发。在经济学里效率损失更严格的说法是“对资源配置产生了扭曲”比如该用的机组没用、该退出的机组还在跑、该响应的负荷没有响应、该来的投资没有来。理解这个区分非常关键。因为如果只盯着“统一价格造成租金”很容易得出“必须改成按报价支付”的错误结论。事实上边际定价本身并不会必然带来资源错配它带来的主要问题是分配问题真正造成效率损失的往往来自市场结构、物理约束、需求响应缺位、长期投资机制失灵这些配套环节。后面几节我会沿着这些环节逐个展开。提示讨论效率损失时先分清“转移”和“净损失”。“多付了钱”不等于“社会浪费”只有当有人因为价格信号而放弃了本可以发生的交易、投资或消费时才出现真正的效率损失。2. 边际电价机制的出清逻辑谁定价格、怎么定价格这一节把出清过程拉到显微镜下面看。你会发现边际电价不是一个孤立的数字它是一整套“报价-排序-约束-结算”流程的产物。很多实操中的困惑比如“为什么报价很高的机组中标了”“为什么某区域价格特别高”追到底都是出清逻辑不同环节的问题。2.1 报价栈、边际机组和统一出清价先看无网络约束的理想场景。假设有3台机组每台容量100兆瓦报价和实际变动成本如下表。机组容量MW报价元/MWh实际变动成本元/MWhG1100200200G2100300300G3100500500假设某时段系统负荷为250兆瓦。交易中心把所有报价按价格从低到高排列G1报价200先被调度累计容量100兆瓦G2报价300继续被调度累计容量200兆瓦还剩50兆瓦需求只能调用G3G3的报价500就是边际价格。最终结算价就是500元/兆瓦时G1、G2、G3各按500元结算各自的中标电量而不是按它们自己的报价结算。总购电费用是500×25012.5万元。三家机组的实际变动成本之和是200×100300×100500×507.5万元信息租金就是5万元。这笔钱在账面上看起来像“发电公司赚了钱”但它对应的不是实物资源的浪费而是统一价格机制下的再分配。市场价格再高只要调度顺序没有偏离“低成本优先”资源使用层面就没有扭曲。这一点是理解后面所有内容的地基。但要注意这个例子是静态的、无约束的。真实市场里机组还有启动成本、空载成本、爬坡速率、最小运行时间报价也不是一档而是好几段阶梯曲线。实际出清通常由调度机构的安全约束经济调度程序完成先做机组组合再在满足潮流和备用约束的前提下最小化总购电成本最后得出每个节点的价格。理解无限网络下的报价栈只是理解真实市场出清的第一步。2.2 加了安全约束之后节点电价与阻塞盈余电网不是一根粗水管电流要遵守基尔霍夫定律并受线路载流能力限制。当A地区有便宜的电但通往B地区的输电线已经满载时B地区并不能无限使用A地区的便宜资源必须启用本地的贵机组来维持供需平衡。这时如果还用一个全系统统一的边际价格结算就吸收不了空间上的成本差异进而给出错误信号该在B地区建厂的地方不建该在A地区控制用电的地方也不控制。行业里解决这个问题的主流做法是节点边际电价。它不是单一价格而是每个电网节点一个价格由“系统边际能量成本加上阻塞的影子价格”构成。当一个节点处于电力流入受限侧时本地机组的边际成本决定了该节点的价格当一个节点处于电力送出侧且电价较低时这个价差就反映了阻塞成本。相邻节点之间的价差本质上就是“这一段电送不过去”的经济代价。实际市场设计里也可能采用分区电价代替完全节点电价。分区电价把若干节点合并成一个大区区内统一价格区与区之间保留价差。分区分得好可以兼顾计算复杂度和公平性分得不好区内的安全约束仍然可能被掩盖产生我们后面要说的效率损失。做市场分析时不能只看一个“平均出清价”就下结论至少要把节点价差、线路负载率和阻塞盈余放在一起看。同一个边际价格在不同的阻塞状态下含义完全不同。3. 效率损失的四个典型来源从理论到现场清楚了出清流程再来看效率损失就有的放矢。基于我从出清数据分析、报价策略复盘和长期市场评估里得到的经验最常见的来源可以归纳为四类。3.1 市场力与高价报价策略市场力是效率损失最容易被识别、也最受关注的一条路径。当系统备用不足、负荷处于高位或者某个区域只有少数几台机组能提供增量电量时边际机组实际上获得了“单机定价权”。它报价多少市场价格就是多少因为系统已经离不开这最后几十兆瓦。即便这台机组本身成本很低它也可以通过抬高报价把整个市场价格顶上去。短时间看这种抬价造成的后果更多是转移而不是净浪费用户多付的钱变成发电企业的超额利润发电量没有减少机组没有停运。但长此以往它会严重扭曲报价行为。当大家都发现“报高一点并不一定更危险”真实成本信息就被掩盖了机组组合和检修计划也可能被策略性编排甚至在高峰时段人为制造备用紧张。更麻烦的是这种价格信号会误导长期投资看起来是电价很高、有利可图实际只是市场力制造出来的假象。所以成熟市场的运行者不会只看价格水平还会监控“供应报价与成本的偏离度”“区域集中度”“关键输电阻塞时段的可调度容量”等指标。对报价异常高的时段要做专项分析不能把所有高价都理解为稀缺信号。我们自己做数据复盘时会把同类型机组的报价分布拉出来对比如果某台机组连续多个高峰时段报价都比同区域同类型高出明显一截就要打一个问号。3.2 零边际成本新能源与收益回收难题新能源加入后边际电价机制呈现出另一面。风电、光伏的变动成本接近零报价自然很低在报价栈里永远排在最前面。它们挤出传统机组的电量把系统边际价格显著压低这对用户和减排可能是好事。但问题也随之而来如果能量市场的价格长期被压得很低传统机组不仅赚不到固定投资回报连启动一台机组所需的启动成本、空载成本都难以通过能量电费回收。这种现象在业内叫“missing money”也就是“缺钱问题”。边际电价机制给出的是每一度电的短期机会成本它不直接包含机组的长期容量价值。大容量、可调度的火电、水电或者储能建设时投入了大量固定成本如果只在能量市场上靠低价时段“卖电”维持财务上很难成立。长期看它们会陆续退出市场系统在负荷尖峰时段就会缺乏可调度资源。效率损失在这里就不是短期的“价格高低”问题了而是长期资源错配。市场看起来很便宜但备用容量在悄悄下降。解决思路是让能量市场之外还有一个能反映“容量价值”的机制比如稀缺定价、容量市场、可靠性合约等。做分析时要把能量市场收入、辅助服务收入和容量补偿放同一张表里看单独看任何一种收入都会得出偏激进的结论。3.3 需求无弹性与稀缺定价电力需求在短期内几乎是垂直的用户对实时电价不敏感因为绝大多数家庭和中小工商业用户并不按小时电价购电。需求曲线缺乏弹性会导致一个很直接的结果当供给紧张时价格只有靠供给侧的单点报价被推高需求侧完全没有“用脚投票”的机会。这既推高了尖峰价格也没有激励用户错峰用电。如果有一部分负荷能实时感知电价并主动削减情况会完全不同。比如某用户本来要做1小时高耗电工序看到实时电价从300元/兆瓦时涨到800元/兆瓦时会选择把工序推迟2小时。这一条需求侧的“弹性”可以替系统省下一台尖峰机组的建设。效率损失的方向也就清楚了不是边际电价机制本身阻止了用户响应而是市场配套没有把实时价格传达给需求侧让弹性需求无法参与出清。实操中常见的判断方式是看尖峰时段的价格弹性指标以及需求响应资源是否真的进入现货市场出清。如果一个市场里可中断负荷、储能、电动汽车充放电都只是“计划外的活动”没有参与日前和实时市场报价那就意味着价格信号只作用在半边市场上效率自然打折。3.4 短期价格信号与长期投资失配最后一条往往争议最大因为它跨越了“短期调度”和“长期投资”两层时间尺度。能量市场本身追求的是让既有机组在每一个运行时段实现最高效率的调度但新电厂建不建、什么时候建依靠的是未来价格预期。如果价格上限太低或者高价时段太少市场给投资者的回报就不足以覆盖固定投资投资信号自然会减少。这里有一个典型的矛盾为了让短期价格不过于失控很多市场会给实时电价设一个价格上限。上限固然保护了用户但也压掉了稀缺时段的利润。机组在全年绝大多数时段处于微利甚至亏损状态只有个别极端时段能“回血”。如果制度设计没有为这部分“容量价值”留出出口最终就表现为备用电率持续下降、系统可靠性恶化。这种损失不会在某个月的结算单里体现但会在几年后的缺电事件里集中暴露。所以我一直主张做市场效率评估时至少看三个层面短期调度层面、中期价格信号层面、长期投资层面。边际电价机制解决得好的是第一层第二层要看价格弹性设计第三层要看有没有容量回收机制。4. 用一个小模型复现边际电价与效率损失理论讲完了下面把上面这套逻辑在一台电脑上跑一遍。我没有用复杂电网和真实交易数据只搭了3台机组、1条负荷曲线的极简模型。但它能清楚帮助你建立“价格怎么来、损失从哪来”的直觉。代码用Python只依赖标准库可以直接跑。4.1 模型设定和最小可复现代码先把场景固定下来3台机组每台容量100兆瓦实际变动成本分别200元/兆瓦时、300元/兆瓦时、500元/兆瓦时。固定负荷250兆瓦无网络约束不考虑机组启动成本和爬坡暂不引入需求弹性。代码实现很简单。units [ {id: G1, cap: 100, bid: 200, cost: 200}, {id: G2, cap: 100, bid: 300, cost: 300}, {id: G3, cap: 100, bid: 500, cost: 500}, ] load 250 stack sorted(units, keylambda u: u[bid]) cum 0 marginal_price None dispatch [] for u in stack: if cum load: break take min(u[cap], load - cum) dispatch.append((u, take)) cum take if cum load: marginal_price u[bid] print(边际出清价:, marginal_price) print(调度结果:) for u, take in dispatch: print(f{u[id]}: {take} MW, 成本 {take * u[cost]} 元) total_revenue marginal_price * load total_cost sum(take * u[cost] for u, take in dispatch) print(f总购电成本: {total_revenue} 元) print(f实际变动成本: {total_cost} 元) print(f信息租金: {total_revenue - total_cost} 元)跑出来边际价格是500元/兆瓦时G1调度100兆瓦G2调度100兆瓦G3调度50兆瓦。实际变动成本7.5万元总购电成本12.5万元信息租金5万元。这个结果和第2节的笔算完全一致说明模型正确。如果你想检验自己手算能力也可以先不跑代码把结果写在草稿纸上再对比。4.2 按报价支付和边际计价的对比在同样的报价数据下把结算规则从“统一出清价”改成“按报价支付”结果会发生变化。G1按200元结100兆瓦G2按300元结100兆瓦G3按500元结50兆瓦总购电费用是7.5万元。这个数字刚好等于机组实际变动成本信息租金变成0。这个对比看起来按报价支付更“省钱”。但如果机组都知道这个规则报价会往哪里走答案是往高里报。结算规则总购电费用信息租金报价激励统一出清价12.5万元5万元按真实边际成本报价基本最优按报价支付假设不调整报价7.5万元0强烈倾向于报高抢价这个表不是想说统一出清价一定更好而是提醒我们比较机制时不能只盯着“当前这一轮谁花了多少钱”还要看“下一轮报价会被激励成什么样”。真实市场里按报价支付非常难维持真实报价反而可能带来更大的价格扭曲。边际电价机制的信息租金很大程度是换取报价真实性的成本。注意以上对比是在所有机组报价等于真实边际成本的前提下做到的。实际市场里不存在“真实边际成本表”摆在交易中心面前所以按报价支付的优势只在纸面上成立。4.3 策略性报价情景下的损失识别下面再改造一个情景用来展示真正的效率损失。假设负荷拆成两部分固定负荷150兆瓦它对价格几乎不敏感价值很高弹性负荷50兆瓦最多愿意付350元/兆瓦时。机组还是G1报价200、G2报价300。如果G2诚实报价边际价格是300元/兆瓦时弹性负荷认为350高于300选择用电总用电量200兆瓦。现在让G2策略性抬高报价到450元/兆瓦时。价格超过弹性负荷的支付意愿350元弹性负荷选择停用总需求下降到150兆瓦。系统只需要调度G1的100兆瓦和G2的50兆瓦边际价格变成450元/兆瓦时。表面上看价格确实抬高了G1和G2多赚了钱但与此同时本来价值350元/兆瓦时的50兆瓦用电需求消失了。假设这50兆瓦的生产边际成本约300元/兆瓦时社会等于损失了50×(350−300)2500元的净福利。这才是真正的效率损失。这个例子浓缩了前面讲的市场力与需求弹性缺位单机抬高报价需求侧又没有响应能力交易量从200兆瓦掉到150兆瓦边际电价从300元冲到450元。价格和交易量同时偏离“以真实成本为基础”的理想结果消费者多付了钱社会还丢了本可创造的价值。分析真实市场时把截面数据换成实时报价曲线、负荷曲线和需求响应资源就可以用同样的思路识别不同时段是否出现过类似的损失。5. 实操中常见问题与排查建议规则看得再多不如在真刀真枪的结算和复盘里踩几次坑。下面这些问题是我在实际做电价数据分析时反复遇到的整理成一个简单排查清单能省掉不少绕路时间。5.1 为什么报价高于成本反而可能亏钱统一出清价机制下报价的边际位置比报价高低更关键。常见误区是报价一定要高于成本否则亏钱。实际操作中如果你的报价不是边际机组结算价由别人决定你的报价只影响你能不能被调度。报高了可能直接被挤出调度序列一台机组一个时段不开机损失的机会成本往往比降价卖电更难看。正确思路是按真实机会成本报价再通过辅助服务、容量补偿等机制回收固定成本而不是把回收压力硬塞进能量报价里。还有一个实操坑机组有启动成本报价曲线不是一条水平线。如果只把燃料成本除以电量得到平均成本忽略了启动成本和最小运行时间就会在低负荷时段报出一个不合理的低价导致明明开机就亏还是被调度。可以用分段报价把空载成本体现成第一段电量上的高报价后面各段再体现增量煤耗。5.2 阻塞费用为什么不是电力公司的利润用节点电价结算时经常出现“用户总电费大于发电企业总收入”的情况差额就是阻塞盈余。很多非专业的人看到这笔钱第一反应是“市场出问题中间商赚差价”。实际上这笔钱来自输电阻塞负荷节点用户要为高价电付费送端节点发电企业只按当地的低价结算中间价差对应的正是“电送不过去的物理代价”。这笔盈余怎么处理不同市场有不同规则但原则上它不是某个发电企业或售电公司的收入。常见用途包括回收输电成本、平抑波动、分配给负荷主体等。做财务分析时要注意不能把阻塞盈余和企业利润混在一起。如果某个月失衡资金特别高要先去查输电阻塞小时数而不是直接认定是电企多赚了钱。5.3 如何判断一个市场有没有明显效率损失我常用的“体检清单”包括四件事。第一看调度效率是否存在大量比在运行机组更便宜的可调容量被闲置如果有说明价格信号或出清算法没有把低成本资源用足。第二看需求响应尖峰时段价格很高时需求侧有没有可验证的削减行为完全为零基本就是需求弹性缺位。第三看节点价差同一时间相邻节点的价差长期存在并且不收敛通常意味着输电阻塞或市场的价格分区设计不合理。第四看投资信号未来新增的电源项目是不是跟着稀缺时段的价格走长期没有新投资、备用率持续下降就要怀疑容量回收路径是否出了问题。这张清单不用等模型多复杂把几个指标列出来再结合月度结算数据大部分结论都能出来。更关键的是做判断时不要单看一个价格数字比如“某天峰价到了1500元是不是太黑”要配合报价分布、阻塞情况、需求弹性一起看。同为高价可能是稀缺定价的真实信号也可能是市场力集中释放。5.4 现货市场与容量机制的搭配问题最后聊一个最容易被忽视的配套。边际电价机制负责的是“运行效率”它不能同时承担“容量充足性”的全部任务。当一个市场长期只靠能量市场收入来支撑固定成本就必须允许极端时段出现非常高的价格如果政策上又不允许价格太高投资就会减少系统备用开始下滑。这不是边际电价机制的bug而是市场设计目标之间的冲突。实操里常见的错误是一看能量市场价格低迷就急着把所有问题都归给“边际电价”然后讨论要不要改回按报价支付。改结算规则并不能解决固定成本回收问题真正需要补的是容量市场、可靠性期权或者干脆提高稀缺定价上限并让需求侧承担一部分真实价格。我在做分析项目时最后都会建议把“能量市场辅助服务容量补偿”三本账放在一起看单独拆任何一块都会得出片面的结论。老实说把边际电价机制完整拆一遍之后我最大的体会是价格本身不一定是错错的是看不见约束和缺失配套。统一出清价给市场带来了简洁而有力的价格信号但前提是电源侧能够真实报价、电网侧能够反映阻塞、需求侧能够感知价格、投资侧能够回收容量。这四件事没有做到效率损失就会出现而且往往藏在最繁荣的价格曲线之下。如果你也在做类似的分析建议不要一开始就陷入复杂模型先用今天这套3机组的场景把“边际机组定价格、信息租金不等于净损失、真正损失来自无弹性和市场力”这几个直觉建立起来再去啃完整出清模型会顺很多。