上一章结尾留了个钩子:一旦接受「价格只是最近一笔成交的脚印」,很多真实市场里的怪现象会免费出现在你的模拟器里。这一章就来收这个账——先讲清楚从一笔笔成交到屏幕上那根 K 线之间到底发生了什么,再看三个「免费」的现象。
从成交到 K 线:一条纯加工的流水线
撮合引擎吐出来的只有一样东西:成交流水——大白话:一本流水账,每行写着「某时某刻,以 10.6 元成交了 300 股」。行业里把每一行叫一个 tick(最小的一次行情跳动)。
你看到的所有行情图表,都是这本流水账的压缩产物。比如一根 1 分钟 K 线(蜡烛图里的一根蜡烛),制作方法是:把这一分钟里所有成交找出来,记下四个数——第一笔的价(开)、最后一笔的价(收)、最高价、最低价。一根蜡烛就是这四个数画出来的。日线不过是把「一分钟」换成「一天」。
为什么要强调这是「压缩」?因为压缩会丢信息,而丢掉的信息恰恰是模拟器玩家最该敬畏的。一根写着「开 10.5、收 10.5」的平淡小蜡烛,中间可能经历过 10.2 到 10.9 的剧烈往返——成百上千笔成交、无数人的希望和恐慌,全被压扁成「今天没动」。K 线是尸检报告,不是心电图。
给模拟器做行情图表时,永远从成交流水往上加工,绝不要反过来存「每分钟的 K 线」当原始数据。流水是真源,图表是视图——这跟「数据库里存原子事件、报表随时重算」是同一个道理。
免费现象一:跳空
真实市场里,股票经常今天收 10 元、明天一开盘直接 10.8——中间的价格像被跳过去了,K 线图上留一道缺口。财经新闻会神秘兮兮地说「跳空高开」。
在你的撮合引擎里,这事会自然发生,一行代码都不用加:昨晚收盘后出了一则利好新闻(第四章会讲新闻系统),今早 NPC 们醒来集体改了主意,买盘直接挂到 10.8。第一笔成交发生在 10.8。所谓跳空,不过是「没有人愿意在中间价位成交」——脚印直接踩到了新地方,中间没留印子。价格从来不是连续移动的,它只是在有成交的地方留下点,点与点之间是空白。
免费现象二:闪崩
更刺激的:2010 年 5 月 6 日,美股道琼斯指数几分钟内暴跌近 1000 点又拉回,史称「闪电崩盘」(Flash Crash)。它是怎么发生的?
回忆第二章的结构:市价买单吃掉卖盘队首后,会继续吃下一个、再下一个,直到吃够数量。买侧也一样:一张大额市价卖单砸进来,会沿着买盘队列一路往下吃。如果买盘队列很薄——10.4 只有 200 股,10.3 只有 500 股,10.0 有 1000 股——一张 5000 股的市价卖单会瞬间把价格从 10.4 砸穿到很深的地方。屏幕上就是一根断崖式直线。
这就是闪崩的完整机理:不是价格「决定」跌,而是买单队列被吃穿了。价格没有地板,地板是排队的买单构成的,队列有多厚,地板就有多硬。真实市场那天也是同样的事:大量买单撤单(做市商吓坏了,第六章会讲他们为什么跑),队列变薄,大额卖单一脚踩空。你的模拟器只要把订单簿做真,闪崩就是物理定律的必然推论。
免费现象三:无量阴跌
还有一种真实市场常见的磨人走势:成交量很小,价格却天天阴跌。财经评论会解释为「市场缺乏信心」——说了等于没说。
用脚印理论看就一目了然:买卖双方都缩手了,队列又薄又稀。偶尔来一张小卖单,因为买盘稀薄,成交价就比上一笔低一截。一天没几笔成交,但每笔都比前一笔低。价格不是被「砸」下去的,是自由落体下去的——没有人接,小石子也能砸出坑。你的模拟器里,只要 NPC 的情绪系统(第五章)会让他们在坏消息后缩手,这个现象就会自动浮现。
「最新价」是最容易被误解的数字
现在可以给这章的问题下结论了。屏幕上那个大数字「最新价」,本质上是:某两个人,在某个瞬间,就某个数量,达成的那一笔交易的价格。它不代表「这只股票现在值多少钱」,更不代表「你现在能以这个价买入」——等你真下单时,队首可能已经变了。
所有资产网站上的「总市值」都是拿这个数字乘以总股本——也就是说,整个市值的大厦,建立在最近一笔可能只有几百股的小交易上。这就是为什么操纵一只冷门小盘股的「价格」出奇容易:找没人的时段,自己跟自己成交一笔高价单,脚印就踩在了你想要的位置。你的模拟器上线后,一定会有玩家发现这招——别急着封,这是模拟器能教的最生动的一课。
下一章换一层:给这个世界装上「基本面」,让 NPC 们有东西可吵。