如何利用Steam冬季特卖活动获得超额收益

作为一个社区等级已经超过一百级, 游戏数量超过三千的Steam用户, 我在近几年失去了在Steam上继续喜加一的乐趣, 正如我对很多其他事物包括一些游戏失去乐趣一样: 数字变大的乐趣在数字本身已经很大的情况下, 边际效用的递减十分严重. 从游戏库里只有几款游戏到拥有几百款游戏, 一直到第一次拥有超过一千款游戏为止都是一个很愉快的过程, 之后就渐渐觉得无趣, 从一千款游戏喜加一到两千款的乐趣不断地在衰减, 当我喜加一到两千多款游戏时, 我进入了贤者时间, 我意识到喜加一不过是又一项无聊且浪费时间的体力劳动罢了, 我确实可以继续再喜加一上几千款游戏, 可是那又如何呢? 在送掉我手中至少六百个多余的游戏Key, 挂完了库里所有游戏的Steam卡牌并且通过卖卡获得了总计上千元的钱包收益后(在这期间我的社区等级和游戏数量达到了如今的数据), 之后我的Steam之旅便终于陷入了一个长期的停滞状态. 在最近几年的特卖活动中, 我在Steam的消费几乎是可以忽略不记的, 我只买少量我打算玩的游戏, 一些看起来有喜加一嫌疑的游戏也不过是因为买了之后发现自己竟然没有时间玩罢了, 比如我之前买了几个城市天际线的DLC, 直到现在都没有打开来玩过.

我对Steam的冷淡一直持续到2018年的Steam 冬季特卖, 在冬季特卖中我找回了Steam的乐趣, 确切的说是Steam市场的乐趣. 由于之前喜加一、挂卡、合卡、卖卡、合背景表情的经历, 我的Steam市场交易次数早已超过了一万次, 可以说已经是这个市场的常客了: 用户在Steam市场年销售超过一定数量的物品后就要填写的个人资料我在很久以前就填过了. 我从市场交易不需要验证的时代开始, 经历了每一项物品都需要验证的时代, 到了现在低价值物品和小规模交易不需要验证的时代. 即便如此, 本次的冬季特卖也让我意识到我对Steam市场其实并不了解. 重新投身Steam市场后, 我从低风险的交易中获得了稳定的收益, 这其中带来的乐趣让我意识到自己过去的喜加一还是有利用价值的. 写这篇文章, 意在回顾自己在本次冬季特卖的操作, 同时分享一些Steam市场交易的经验. 虽然冬季特卖已经过去, 但其中的一些模式化的内容在短期内是不太可能改变的, 愿读者能从中得到一些启发, 找到属于自己的交易乐趣.

宝石价格在下跌

12月28日, 于12月21日开始的冬季特卖活动已经过去了一半, 我偶然观察到Steam市场里最硬也最稳定的通货"一袋宝石"的价格进入了一个明显的低位, 当时我对"一袋宝石"的印象还停留在4~6元的时代, 当我发现"一袋宝石"竟然只需要不到2块钱就可以买到的时候, 我非常惊讶. 通过查询物品的历史图表可以发现, 即使在12月中旬, "一袋宝石"的价格也在3元出头, 21日开始出现明显下跌, 之后几天里最低价每天都在刷新.

是什么影响了宝石价格?

12月21日这个日期是如此特殊, 让人很难不联想到已经开始的冬季特卖活动. 根据以往参与特卖活动的经验, 几乎每届特卖活动Steam官方都会推出活动卡牌, 这种卡牌的发放量很大, 价格低廉, 很多追求Steam活动徽章和社区等级的用户会在特卖活动期间大量购买活动卡牌以提升自己的Steam等级. 由于这种市场行为的广泛存在, 很多人也会选择在特卖活动期间清理自己的Steam库存, 进而导致游戏卡牌和宝石价格也受到影响而下跌. 因为我曾经多次观察到同样的规律, 以前(在我还有库存的时候)我都会选择在活动开始前就清理自己的库存, 然而这个世界上总会有一批人跟你抱有同样的想法, 所以事实上的最佳清理时间至少还要提前到活动开始的两周之前(如果你知道活动大概什么时候会开始的话), 对于大多数库存里有一大堆社区物品却又没有什么欲望去利用这些物品的人来说, 我都是推荐他们在两周之前就清空库存的. 可即便以往活动期间有过宝石价格下跌的情况, 在2018年冬季特卖活动里发生的下跌显然也是不正常的, 因为跌得实在太多了.

Valve对Steam市场的干预

找到宝石价格真正下跌的理由并不困难, 在本次冬季特卖活动期间, 每天都可以在"Steam超舒适惊喜小屋"里领取三样物品: 一个用于提升"2018冬季小玩意收藏家"徽章的消耗品, 一个参与活动游戏的背景, 一个参与活动游戏的表情. 如果你一开始就有宝石需求, 那么你可能在活动开始的第一天就注意到, 这次活动发放的三样物品里, 背景和表情都可以被转换为100宝石. 如果你之前转换过其他游戏的社区物品, 注意过购买"一袋宝石"和自己转换宝石哪个更划算, 你就会意识到每日领取的活动物品提供的这200宝石的转换量其实是相当大的, 要知道只有部分游戏的闪卡才能超过这个转换量, 很多背景和表情也只能转换出80宝石, 更重要的是这些物品并不是免费的, 而活动物品是免费的. 在过去很长一段时间里, 自己转换宝石都是不划算的, 但由于本次冬季特卖活动里单个价值100宝石的物品的存在, 转换宝石变得划算了, 宝石价格下跌也就成了理所应当的事.

在2018年10月, Valve对外宣布过Steam的每日活跃用户数量超过4500万, 我们可以通过这个数据简单计算出如果每个活跃用户都在活动期间于"Steam超舒适惊喜小屋"领取物品的宝石价值, 本次活动产出的总宝石数量约为:

45000000个用户 * 200 宝石 * 活动持续14天 = 1260亿个宝石

要知道这1260亿个宝石是从天而降的, 如果把Steam比作中央银行, 宝石比作货币, 那么相当于Steam通过冬季特卖活动里的"Steam超舒适惊喜小屋"这一调控手段, 为市场提供了规模巨大的货币供给, 通过增加宝石总量的方式, 降低了宝石的单位价格. 简单地套用二八法则做一个保守的估计, 即使我们假设由于种种原因1260亿宝石只有20%会真正被玩家领取到, 而被领取到的宝石里又只有80%真的影响了宝石的供需关系, 又或者80%的宝石被玩家领取到(由于Steam市场的使用权限存在一个小小的门槛, 还是前者的可能性比较大), 只有20%真的影响宝石的供需关系, 带来的影响也有201.6亿宝石之巨, 换算成"一袋宝石", 就是2016万袋宝石.

消化掉V社释放出来的宝石需要接盘的人, 接盘的人有多少, 愿意花多少钱接盘, 最终接盘的宝石总量有多少是难以估算的. 在活动期间, 即节日效应下"一袋宝石"比较好卖的日子里, "一袋宝石"的日销量也不过三万份左右(在我写文章的时候日销量已经只有一万七千份了), 做一个简单的除法就会得知如果所有宝石只通过"一袋宝石"的形式进行流通, 且假设每天消耗掉三万份"一袋宝珠", 每天都有人愿意接盘, 也需要672天才能消化完. 无论宝石最后是否被用于合成补充包, 继而进一步压低所有与卡牌相关的社区物品的价格, 活动释放出的巨量宝石都是市场难以承受的, 更不要说消化的时间足够Steam再办几次类似的活动了. 一旦得知这一事实, 你会发现在活动前清空库存这一行为总是对的, 在本次活动前囤积宝石的人差不多都亏了, 他们降低自身损失的唯一方法, 就是在降价后买入更多宝石以降低自己的成本价. 从交易中收取手续费的Valve永远是赚钱的, 即使有卖家通过倒卖宝石赚到了余额, 余额最终还是会被用于购买游戏(约30%抽成)和市场交易(5%交易费, 最低0.01美元).

我不清楚Valve是出于何种理由决定释放大量的宝石, 但它的做法对宝石价格和整个Steam市场交易环境的损害是有目共睹的, 类似的情景你在一些经济比较魔幻的国度中也很容易见到. 若"一袋宝石"的价格在日后回升, 倒是可以从经过的时间和交易总量来得出整个市场交易宝石的比率, 也许能为今后的宝石交易提供参考, 但这一天可能比较遥远.

Steam市场的有效性

Steam市场是一个虚拟物品现货交易市场, 物品的所有权转移是在成交的瞬间完成的, 交易后的物品有7天的冷却期, 相当于T+7交易制度. 这个制度的存在严重地打击了搬砖式的套利行为, 却也降低了物品的流动性, 增加了Steam市场作为一个金融系统自我调节的延迟, 使得Steam市场的有效性下降.

除了T+7交易的硬性限制外, 参与Steam市场交易的用户们也并非都是专业的交易人士, 不仅情报流通十分有限, 也难以利用已有的情报做出符合自己最大利益的行为——以推动市场的有效性, 这次冬季特卖活动期间的宝石就是典型例子: 宝石作为一种高适用性、高流通率的物品, 其素材——价值100宝石的活动物品与"一袋宝石"之间存在着明显的差价. 在12月28日下午两点零五分, 单个宝石素材的卖价为0.15元, 相当于"一袋宝石"——得到1000宝石只需要1.5元. 然而此时市场上"一袋宝石"物品的卖价却是1.89元, 买价为1.88元, 积压的买单和卖单数量都超过一千个, 过去24小时内售出的"一袋宝石"数量超过三万份.

购买"一袋宝石"和购买10个宝石素材最终得到的东西几乎是一样的——本身及其衍生品只能在7天后交易的1000宝石, 唯一的不同在于为了转换出1000个宝石, 购买宝石素材的用户需要将10个宝石素材分解10次, 而购买"一袋宝石"的用户则只需要拆开一次, 可这点区别根本不值0.39元——高出1.5元26%的差价——比交易的手续费还要高出11%. 宝石也好, 宝石合成的补充包也好, 想重新进入市场都需要经历7天的冷却期, 而能够批量分解宝石的脚本和扩展程序实在是再常见不过, 所以这个差价只能是交易者之间的信息不对称导致的, 那些成袋买入宝石的人根本没有注意到宝石素材的价格要低得多. 考虑到在12月28日, 活动第一天卖出的宝石素材及其衍生品马上就可以再次流入Steam市场, "一袋宝石"与宝石素材的差价就显得更加不合理.

一个市场的有效性越低, 就越容易出现获得超额利润的机会, 在T+7交易机制和由非经济人组成的交易者们的共同作用下, 加上接盘者的普遍存在, 在Steam市场里获得超额收益的可能性是较为乐观的.

对宝石市场的预测

做投机决策主要是在平衡最终收益和概率之间的关系, 基于我们对Steam市场的了解, 很容易对一周后(一次买入卖出周期)的宝石市场做出以下几种状态的预测, 至于真实世界的结果落到哪里则全凭运气.

一周后市场调节未开始

概率: 极低.

由于市场调节的延迟极高, 一周后市场调节未开始, 这意味着T+7交易机制不再是Steam市场高延迟的主要原因, 说明绝大多数Steam市场交易是非理性的, 市场根本无法有效运转.

结果: "一袋宝石"的价格出现明显上涨, 一周前购买的宝石可以得到极大利润, 宝石素材的价格仍显著低于"一袋宝石"的价格.

一周后市场调节处于进行中

概率: 高.

由于市场调节的延迟较高, 一周后市场调节处于进行中, T+7交易机制是Steam市场高延迟的主要原因, 已经有少数用户意识到并有动力和能力参与到推进有效市场形成的活动中.

结果: "一袋宝石"的卖价在多数时间里高于一周前购买宝石的成本+手续费, 一周前购买的宝石可以得到一定利润. 当前宝石素材的价格虽仍低于"一袋宝石"的价格, 但由于手续费的存在已经不能得到收益.

一周后市场调节接近结束

概率: 中等.

由于市场调节的延迟中等, 一周后市场调节已经处于尾声, 说明一周前有大量用户发现并采取了相同的行动, 但因为种种原因并没有让市场达到最有效的状态.

结果: "一袋宝石"的卖价在多数时间里等于或低于一周前购买宝石的成本+手续费, 一周前购买的宝石若非自用则会亏本. 当前宝石素材的价格虽仍低于"一袋宝石"的价格, 但由于手续费的存在已经不能得到收益.

一周后市场调节结束

概率: 极低.

由于市场调节的延迟几乎等同于T+7交易机制, 在一周后市场调节已经结束, 这意味着Steam市场的场内交易极度繁荣, 且大多数人都是经济人, 有较多的时间和精力参与交易.

结果: "一袋宝石"的价格降低至与宝石素材价格相同, 一周前购买的宝石若非自用则会亏本.

一周后市场调节提前结束

概率: 更可能在平行宇宙里发生.

绝大多数人都在场外交易, 甚至出现了能够提前锁定价格的期货交易, 资本集团垄断了物品的定价权, 买卖双方通过账户间的直接交易绕过了Steam市场的手续费甚至直接使用现金交易, Steam市场和钱包体系很可能已经名存实亡.

结果: 绝大多数通过Steam市场交易的人都会亏本, 连V社都赚不到几个钱, G胖亏到没钱交服务器费含泪数3.

超越宝石市场

想超越宝石市场很简单, 只要你卖出的不是宝石就可以了, 即是指合成补充包之后再卖出. 由于Steam市场的有效性很低, 加上合成补充包本身具有一定门槛(至少你得拥有目标游戏), 宝石价格波动对补充包和卡牌这类衍生品的价格影响也是有延迟的, 如此一来就可以减少宝石价格波动对自身产生的影响. 当然, 为了有更多的盈利机会, 实施这一方法也要求你的账户拥有较为庞大的游戏库.

为什么我确信这是一个超越宝石市场的方法呢? 这是因为早在2017年我就做过为期一个月的相关实验.

就像很多人会沉迷于零成本建站和用过时的廉价硬件组装电脑一样, 用更低的成本实现对目标的挑战这件事总是令人兴奋的, 当时的我就很好奇是否有可能在Steam市场获取稳定的正收益, 于是我决定自己尝试一下, 开发了一个名为Steam-gems-vampire的扩展程序, 这个扩展程序的功能如下:

  1. 获取我可以合成补充包的Steam游戏列表.
  2. 获取当前"一袋宝石"的卖价.
  3. 获取列表中对应的Steam游戏的补充包在Steam市场的买单价格、卖单价格、日销量、周销量、成交价中位数、合成所需的宝石数量.
  4. 通过以上数据, 计算出算上手续费之后, 合成补充包并立即按照最高买单价格卖出所获得的收益.

在为期一个月的实验后, 我发现稳定获取正收益是可能的, 我的扩展程序在那个月里大概为我的Steam钱包带来了60元左右的收益, 每天都有收益, 不过平均下来相当于一天只有2块钱, 这个收益实在太低了, 我之后就放弃了继续在这种无聊的事情上较劲, 扩展程序也随即被我雪藏. 相较于现在的情形来说, 那时候"一袋宝石"的价格处于一个高位, 如果在那个时期通过这个方法都能够稳定胜过宝石市场, 那么现在我自然有更大的概率胜过宝石市场, 因为宝石价格下跌带来的衍生品下跌由于调节延迟的存在可能还未开始. 于是我翻出了那个扩展程序, 将"一袋宝石"的价格从实时获取改为了固定的成本价0.15元, 程序不仅成功运行, 还出现了比较满意的结果(也说明了这两年Steam市场压根没怎么改过页面结构), 我的游戏库里至少有60个游戏可以让我以极低的风险获得较高的收益率, 一周后的宝石市场可能对我造成的损失规模因此减小.

事实上还不止如此, 由于程序统计的是立即按照最高买单价格卖出补充包所获得的收益, 所以实际上我如果以常见的成交价格挂单, 虽然成交时间可能会从立即成交上升到几个小时乃至几天才成交, 但最终收益会明显增加. 但这还不是同等风险下能达到的最大收益, 在Steam的经济系统里, 为价格兜底的是宝石, 然后是补充包, 之后是卡牌, 紧接着是闪卡, 最后是作为货币出口存在的各种稀有背景和表情. 在Steam社区的游戏化机制下, 卡牌的买方规模要远大于补充包的买方规模, 即使算上手续费, 补充包的价格也往往低于三张衍生卡牌的价格, 更不要说拆补充包还有可能出现价值更高的闪卡了, 同样会增加成交时间, 将补充包拆成卡牌后销售比单独销售补充包速度不但更快, 收益还更高, 卖卡牌总是比补充包划算. 由于合出稀有背景和表情的赌博成分很大, 而且愿意为单一高价物品买单的用户数量是比较有限的, 稀有物品的定价范围也存在着较大的不稳定性, 为了收益稳定我在这个策略里最多只追求到一般卡牌和闪卡的收益.

基于以上事实, 超越宝石市场的出货策略十分简单:

通过程序得出的数据, 合成补充包, 如果当前有立即回收成本的需求, 例如市场价格出现剧烈波动, 长成交时间存在风险, 那么就以最高买单价格直接出售, 否则拆开补充包. 拆开补充包后, 若出现闪卡, 则直接将闪卡以最高买单价格出售(闪卡的买方规模比补充包更小, 所以更应该立即回收成本, 闪卡的最低买单价格普遍都是可以接受的, 收益比成本高出十倍都很常见), 其他卡牌以比当前市场最低卖单价格更低的价格挂出卖单, 通常来说就是-0.01元, 然后定期重新上架那些因为其他人的市场行为而失去最低卖单价格的卡牌.

上述过程都是可以通过程序自动完成的, 所以即使市场上存在同样策略的机器人也不会奇怪, 事实上只要Steam不肯加入像reCAPTCHA这样的验证环节, 市场上总是有可能存在着24小时自动交易的机器人. 但是为了避免自动化无法应对的风险, 实际操作中有一部分决策还是我自行决定的, 不过这也不怎么费时间.

在现实的操作中, 你会发现有一些游戏的卡牌买方规模非常小, 即使你的卖价已经是最低的, 但是几天也未必能卖出去. 于是我在本次的冬季特卖活动中途对策略进行了补充, 如果当前还未卖出的相关游戏卡牌数量大于1, 则新的补充包不再拆包, 而是直接以最高买单价格售出, 以此避免回本周期过长带来的其他风险.

在我的策略里有几个比较明显的弱点, 很容易发现:

  1. 依然受到T+7交易机制的影响, 依然有亏本的可能性, 虽然这种可能性是比较低的, 且只要我积累足够多的收益, 损失对我影响就越小.
  2. 每天能够获得的最大收益受到游戏库的限制, 比如我只能从60个达到高收益游戏的补充包里获得高收益, 一天想要再获得更多收益, 只能靠继续合成剩余的低收益游戏的补充包(收益依然是正的, 但是赚得太少了, 不如将宝石留到第二天继续合成高收益游戏的补充包), 或者干脆卖出剩余的宝石(这几乎永远是最愚蠢的选择, 由于T+7交易机制的存在, 无冷却期的宝石其存在本身就是一种筹码, 除非宝石价格在以后有可以准确预测的明显下跌, 否则就不应该浪费筹码).
  3. 如果我的策略运行时间足够长, 加上市场上可能存在的其他采取类似行动的用户, "高价接盘"宝石的人、"高价接盘"补充包的人和"高价接盘"卡牌的用户的订单最终可能会消失, 虽然这种可能性非常低, 但任何运用这个策略的人都必须认识到这不是一个绝对长期稳定胜出的策略.
  4. 用来分析的扩展程序远远不够完善, 在显示卖补充包的收益以外, 还可以再显示相关卡牌的平均价格, 但我实在是懒得再去改2年前写的代码.

G胖亏到出门只能坐公交车

正如文章一开始写的那样, 淡出Steam已久的我没有库存, 也没有多少Steam余额(差不多靠卖挂机掉下来的补充包攒了10块钱). 为了启动这次实验, 我只能选择充值钱包, Steam官方在线充值渠道的充值比例是1:1的, 也就是说充600块人民币钱包余额就需要用600块人民币. 有趣的是2018年是人民币对美元贬值的一年, 这带来了一个结果, 就是你在淘宝买Steam充值卡, 可以以低于600元人民币的价格, 购买到100美刀的"实体"充值卡, 充值之后这100美刀会以当前汇率转换成你账户钱包区域的货币. 换做是以前, 我是不会考虑在淘宝买Steam充值卡的, 因为我的账户本身已具备一定的价值, 完全没有必要因为买这种来历不明的充值卡而承担可能带来的黑卡风险. 基于同样的考虑, 从以前没有国区定价到后来有国区定价, 我账户里也从来都没有过像是俄区礼物之类的这种与我实际所在区域不同的低价区里得到的游戏. 可由于人民币对美元贬值的这种客观事实使得淘宝上Steam充值卡的存在有了更大的安全性(自我安慰), 我还是在淘宝上购买了100美刀进行充值, 于是我用586元人民币为Steam钱包充值了约687元的余额, 比直接充值等量的余额要节省约15%, 以更少的成本得到了更多的实验费用(真香).

虽然我这次是通过淘宝买的充值卡充值的余额, 但这并不代表我支持这种行为. 只要想想都能知道成本足够低的充值卡数量总是有限的, 而淘宝商家却总是能够以比当前汇率低得多的价格卖出大量的充值卡, 这是反直觉的, 虽然我们对其幕后运作的方式并不清楚, 但保持怀疑总是对的. 尤其是你已经对自己的账号有一定的投入的情况下, 在淘宝购卡充值却碰巧遇到了黑的充值卡, 你损失的可能比一张充值卡的面额要大得多.

由于我在Steam上购买游戏数量的减少(以及在PS4和NS上购买游戏数量的增多, 一大堆积压未玩的库存游戏和我那少得可怜的游戏时间), 加上本次实验带来的收益, 应该足以支撑我在Steam市场继续进行实验性质的交易很长一段时间, 所以大概也不会有下一次在淘宝购买充值卡的可能了.

认识Steam市场的运作机制

其实这篇文章从这一节开始才是主要内容, 也是不知道怎么回事就写了前面那么多废话.

为了保持仓位的灵活性, 我在最初几天购买的宝石素材数量是比较保守的, 每个订购单只买200个物品, 在一天的不同时段提交订单, 买入价要么是0.15元, 要么是0.14元.

我在购买素材的第二天注意到了一个以前就发现过但从未深究的现象: 为什么有一些物品实际上以比当前最高买单更低的价格成交了? 如果你观察过Steam单个物品的交易动态, 可能也会产生同样的疑问.

为了消除这个疑问, 我做了一个测试, 来搞明白如果我以低于最高买单的价格出售, 成交时系统撮合的是最高价的买单, 还是刚好和我设定的卖价相同的买单. 好在每天都可以从"Steam超舒适惊喜小屋"得到物品, 这些物品的单价非常之低, 又有足够多的买单, 所以这个测试很容易就能完成.

在我把物品的出售价格设定为比最高买入价低的其他买入订单后, 交易立即完成了, 在市场历史记录里查看成交的价格, 会发现是以那个更低的价格成交的. 系统撮合的是跟我设定的卖价相同的买单, 而不是保全卖家收益自动成交最高价的买单, 这意味着如果有人在卖出物品时填写的价格由于种种原因低于最高买单的价格, 那么那个人在出售物品这件事上无法达到符合理性的最大收益.

这样的系统机制与我原先以为的机制是不一样的, 于是就有了我文章开头所说的那句话, 我对Steam市场其实并不了解. 随后我去查阅了Steam关于市场交易的FAQ, 以防我有其他对Steam市场机制想当然的错误理解.

实际上相关页面里与卖单价格低于最高买单价格, 同时存在与卖单价格相同的买单时会如何成交的有关的说明只有这么一句:

当购买的常用商品时, 您将标明愿意支付的价格. 当出现以该价格出售的物品时, 交易即完成.

这句话以卖方视角来说就是: 当出售的常用商品时(这句翻译明显是有问题的), 您将标明愿意出售的价格. 当存在以该价格购买的订单时, 交易即完成.

除此之外还有一些别的收获, 比如市场如何处理不同币种之间的交易:

卖方始终使用其Steam钱包的本地币种定价, 买家看到的价格也始终为买家自己的Steam钱包的本地币种. 对于售价不同于买家Steam钱包币种的物品, 我们会基于当日汇率进行兑换.

比如订购单会如何选择购买哪件物品:

在您下单购买时, 市场会先查找所有能满足您订单最低价格的物品. 然后选择架上列出时间最久的物品(等待最久的卖方)购买. 若物品以多个币种列出, 则在选择销售金额前, 系统会先转换为您的货币(即标为0.03卢布的上架物品并不会优先于0.03美元的上架物品)

比如如果对一个新的市场上架物品有多个满足条件的订购单, 哪个订购单会优先被处理:

我们在2017年3月和7月分别对此做出了一些调整, 以便更公平地处理用户的所有币种.

最早的符合条件的订购单将被选中. 一般来说, 在货币换算后的最高金额的订购单将先被选中, 但对于某些币种的用户来说, 这是不公平的, 因为币种不同, 最大金额也不相同. 所以, 若存在符合新上架物品条件的多笔订购单, 将优先选中最早的订购单.

虽然FAQ里有"标为0.03卢布的上架物品并不会优先于0.03美元的上架物品", 以及"我们在2017年3月和7月分别对此做出了一些调整, 以便更公平地处理用户的所有币种"这样的说明存在, 但是Valve似乎并没有真正地实现公平处理不同币种的订单, 因为订单价格的小数点后只支持到2位.

拿Steam用户数量最多的北美和西欧举个例子, 他们使用的货币: 像是美元、欧元、英镑——它们单位货币的价值要高于人民币. 在市场提交订单时, 美元的最小单位是0.01美元, 而我们可以精确到0.01人民币, 我们提交的订单价格在最小单位上可以做到比这些高价值货币更精确: 比如宝石素材在中国页面下显示的最高买入订单为0.15元, 在这之下还有0.14元, 0.13元, 0.12元……一直显示到0.03元的订单. 如果你访问美国页面, 则只会显示0.03刀这一种买入订单, 而且似乎低于0.08元的订购单直接就被忽略了.

如果我是美区用户, 这种显示上的差距肯定会让我感到不公平. 此外由于"在您下单购买时, 市场会先查找所有能满足您订单最低价格的物品", 于是中国玩家在Steam市场交易上似乎也存在某种币种带来的特殊优势. 如果这种猜想是正确的话, 俄罗斯的卢布比人民币还要有优势, 因为卢布的单位价值更低, 对于相关的机制到底是如何运行的, 以及如何利用这种差异获得最大效用还有待研究. 不过考虑到Steam中国会在今年落户, 测试这些机制在将来也许是毫无意义的.

新鲜物品交易的圣杯

在今年的冬季特卖活动里, "Steam超舒适惊喜小屋"每天都会推出三件可交易的物品, 其中两件是有价值的, 总共价值200宝石. 用户只要连续领取过几天就会发现, 每天推出的物品都是全新的, 这就是这些物品的有趣之处. 一个全新出现的物品的价格是如何稳定到和同类物品一样的呢? 基于先前得到的"成交机制"和"(似乎存在的)交易优势"这两项知识, 我想到了一种可能性.

半夜两点是"Steam超舒适惊喜小屋"更新物品的时间, 在12月30日的01:55, 我守在"Steam超舒适惊喜小屋"的页面, 等待着新物品的到来. 刷新页面, 领取物品, 查看库存, 进入物品对应的市场页面, 操作一气呵成. 然而, 由于Steam市场背后的程序在这种关键时刻普遍负载不行, 有时候会遇到错误页面, 多刷新几次即可. 值得一提的是, 新上架的物品并不会同步在Steam市场的搜索结果里出现, 所以需要从自己已有的库存里找到这个物品再进入相关页面.

刚刚上架的物品的交易页面和平时见到的物品交易页面稍有不同, 没有价格历史记录, 没有成交动态, 卖单列表是不显示的, 买单列表需要点按显示.

只有一件事是可以确定的, 就是选择在物品刚出炉时就提交订购单的人是广泛存在的, 订购单会以肉眼可见的速度迅速增长. 也许有些人还掌握了可以提前进入这个页面下单的我不知道的特殊技巧, 因为往往在我进入这个页面时就已经有几千几万个订单存在了(图中的几万"人"实际上指的是相关订单涉及的物品总量, 这是又一个翻译问题).

既然熬夜进到了这个页面, 那当然就要下单了. 我不清楚多少价格的买单会成交, 只好以0.01元这个最小单位一个个试过来, 之后的几天里我以从高到低的顺序先后提交过0.13至0.08元的订购单. 基于同价位先到先交易的市场机制, 虽然最终会以哪两种货币成交是无法预测的, 但赶在前面总是没错的. 最后的结果是, 0.10元以下的订单基本上没有成交, 稳定的最低成交价是0.10元, 而且似乎0.10元总会比0.11元和0.12元有更多成交, 在0.10元这个价格上, 一天买到1000个物品不成问题. 至于为什么是一天1000个, 是因为要做这样的交易每个订单一次性包含的物品数量自然是越多越好, 于是我把每订单200个物品改成了每订单1000个物品.

为什么这种明显低于同类物品市场价的买入订单依然能够成交呢? 如果一个市场是完全理性、没有系统延迟、买卖双方最大化参与的, 那么不可能出现卖单价格低于最高买单价格的情况, 二者至少也是持平的. 很显然Steam市场并不是一个有效的市场, 除了机器人、脚本、插件提供的错误价格计算方法和非实时的过期价格数据会致使用户以更低的价格卖出物品以外, 我认为不同币种在交易上的不公平也加剧了这一情况. 当然, 根本上的罪魁祸首还是Steam市场这种会在低价出售物品时直接卖给提交同样价格买方的交易机制.

这种捡漏交易对于只用一个账户交易的用户来说也不公平, 虽然一个账户在市场上对同一件物品允许同时存在一个买单和一个卖单, 但并不允许同时存在多个买单, 如果我要提交不同价格的买单, 则需要先撤销之前的买单. 这种限制使得我的订单无法覆盖多个价格, 这自然也让我无法在多个价位上都抢到"前排", 由于能捡到的漏在数量上是有限的, 在多个价位上同时抢到"前排"显然会比在单一价位上提交更多订单要更有优势.

在活动的最后几天, 我购入宝石素材的成本已经远低于0.15元, 这为我之后的出货带来了很大的优势, 如果我没有测试那些0.10元以下的订单, 又或是Steam市场允许单一账户提交多个价位的订购单的话, 显然还可以买入更多.

像"Steam超舒适惊喜小屋"这样的捡漏交易可能是比较少见的, 因为很少会有流动性这么大的新鲜物品出现, 不过也许Valve以后也会开展类似的活动吧. 依赖这种交易也存在着一些风险, 若是你总在半夜去跟地球另一面的人/机器人玩这种"抢前排"的游戏的话, 可以预料到的是你会比程序员们有更大的秃头可能性.

出货、回本、超额收益

由于比较保守的成本控制策略, 直到最后我的钱包都还剩下近100元的余额, 所以我实际上投入进这次实验的资金(按钱包余额来看的话)是600元左右(算上我之前的10元余额). 上一节里新鲜物品的交易方式也是我在实验中途才摸索到的, 所以实际上同样的资金理论上还可以买到更多的宝石素材, 如果我更早发现"一袋宝石"价格下跌, 我可能会更早开启实验, 这样剩下的100元应该也就能用掉了.

由于T+7交易机制的存在, 加上我之前没有库存, 出货回收成本是在实验的第八天才开始的, 不过我还是很快就回本了.

这篇文章其实是三天前开始写的, 那时候绝大多数卡牌就已卖出去了, 需要说明的是, 由于没有严格控制变量, 现在余额里有几十块钱应是来自实验中途顺便挂出的一百多张卡的收入. 在我写完这篇文章的时候, 我的余额是1164元.

这次实验得出的结论是, 以超越宝石市场的出货方式为基础, 运用低风险策略让自己钱包余额的收益率在这种类型的特卖活动中超过50%不但是可能的, 甚至还是比较轻松的, 只需要两次类似的活动就可以让余额翻倍, 相信在千元级别的本金和没有如此多失误和给市场"交学费"的情况下, 能达到比这高得多的收益. 对于我这种游戏玩得少, 改玩Steam市场的用户来说, 算是一个好消息吧.

在Steam市场发现的其他问题

  1. 物品近期的交易历史记录里可能存在错误的峰值数据, 一些物品会出现成交价远高于中位数的bug. 一些人利用冷门物品洗钱时也会造成同样夸张的数据, 但是我在热门物品上也见识过同样的峰值数据, 由于涉及的金钱规模很大, 所以我不认为这是洗钱造成的数据(毕竟这样洗到最后能剩下多少钱呢?).
  2. 在"新鲜物品"上可能会看到一些奇怪的成交价数据, 它们并不是实际的成交价格(我怀疑显示的是去除手续费后的价格), 这可能也是市场系统的bug.
  3. 物品页面的实时订单数据可能更新出错, 在出错时订单的数量可能会出现较大的波动, 建议多刷新页面查看正确的最新数据.

扫描下方二维码, 订阅游戏裁判所微信公众号, 可以收到该系列文章的推送.