之前一直做合约、期货、永续比较多,现在来谈谈现货方面的做市。
现货跟期货的区别在于,现货一般没有杠杆,不是保证金交易,而期货是保证金交易。
比如我们做20个品种的期货,可能对应的都是美元,或者USDT,那么我们账户上只需要USDT,保证金也是这个,这样其实很方便的,因为不同的品种资金可以混用,而且多空是一样的。
但现货不同,比如XXX/USDT这样的品种,买入的意思是USDT减少XXX增加,卖出的意思是XXX减少USDT增加,总之账户里面一定要有XXX和USDT。如果是XXX1,XXX2,XXX3......XXX20这20个品种,那么账户里面就要有这20个品种。
如果涉及到对冲,那么会更加复杂一些。如果是期货,比如永续合约,自己是小店,要去大店对冲,那么需要在大店那里也有资金。期货还好,都是USDT,两边都存就行,方向相反,至于数量是否相同,那其实也是有讲究的。
有一些人对风险过于敏感,老觉得要逐笔对冲。但说实话,比如你在自己的店里买了,然后立马在大店卖。你买的时候已经是被人逆向选择了,你是maker,别人是taker,你开店的,赚别人手续费。但你去大饼店对冲,你就是taker,你要给别人手续费。这需要你的maker费用收的钱高于大饼店你支付的taker费用。
比如你的maker收对方万3,然后你去对冲给万2、万1.5,这样自然可以覆盖成本。当然,还有一个逆向选择的问题。因为你是小店,别人一般看到大店跌了才在你这里卖,然后卖完的时候一般大店跌得更多了,这时候你是在自己店买了,然后去大店卖,这时候的价格对你来说可能是亏钱的。
如果是现货的话,可能还涉及转账的问题。比如在自己的店里有20种,在更大的对冲店也有20种,如果自己买了,在对面就卖了,那如果卖完了呢?这可能就需要从自己店转过去;反之亦然。这个操作可能每天都需要进行,这就还涉及转账的费用。
因此,哪怕对冲的目的是降低风险,那也要衡量一下交易成本。每次对冲都会有损耗,哪怕做市有盈利,也可能被对冲的成本吞噬掉。
而且,转账有延迟,自己这里转出了,但对面还没到账,这时候记录盈亏就会有问题。也可以用每一笔交易的结果来统计盈亏,但这需要保存好每一笔交易的记录,哪怕漏了一笔,结果都是不准确的。如果成交太频繁,交易所记录导不出这么多;如果实时记录,websocket会漏,rest会增加账户调用频率,各有利弊。如果仅仅是两天账户余额相减,加减转入转出,扣除成本,排除转账延迟,反而比较省事,也比较准确,因为转账记录的数目远比成交记录少。
比如有的要区分持仓波动盈亏和交易盈亏。逐笔交易统计可以计算出交易盈亏,但之前说过,如果漏了一笔就不准了;持仓盈亏方面,仓位变化可能来源于交易,也可能来源于转账,这个要考虑清楚。理论上,如果完全对冲,持饼数量应该不变。完全对冲不等于逐笔对冲,比如买入10个,卖出5个,定时完全对冲直、只需要对冲5个,但逐笔对冲可能要15个,因为买入和卖出不是同时发生,每发生一笔就对冲一次损耗会很大。
比如今天10个饼,价格2万;第二天11个,这时要区分是转账来的还是交易产生的。比如可以认为其中10个的价格波动产生的盈亏是持仓盈亏,另外一个产生的是交易盈亏;如果今天10个,第二天4个,那么只保留了4个,这4个产生的盈亏可以算持仓盈亏;如果今天10个,第二天0个,那么全部都是交易赢亏了。总之可以取两天的最小值来算。
当然,从对账的角度,交易记录和仓位记录要能对应最好,但由于各种各样的问题,体制问题,管理问题,文化问题,等等,交易记录那边可能比较难弄。
比如一些公司,交易记录保存进公司数据库,码农负责。但统计交易盈亏是量化交易员负责。如果没有接口批量导出,数据库又有每次导出的限制,比如每次1000条,但1个品种1小时就不止1000条,那么20个品种24小时得手动导出多少次呢?
如果是量化交易员自己记录,由于程序频繁调试,中断后可能导致记录结果缺失等等,而很多大饼店提供的查询历史成交信息只能查1000个,可能就会不够用。
部分第三方流动性提供商,本质上是卖软件的,稳定性的要求远高于性能的要求。他们可能每秒都要调用历史成交接口,因为他们知道只能查历史1000条,默认1秒只能不会有1000条,这样保证他们不会漏。至于占用网络带宽影响性能,管他鬼事。一开始初创饼店请外部做市软件,自己体量小流量低,也不容易察觉这个问题;等到后期发现了,人家也会说”我卖了100家都没问题,是你们自己的系统性能问题”。合作越久,越难更换。这类软件提供商不会轻易修改软件,因为稳定性是第一位的,改了可能引起新的bug,一系列不可预知的反应是无法估量的。
最理想的状态,是全市场就自己一个做市商。我们可以进行理想情况的分析。
最好的情况,自然是客户都是小散,对方向没啥判断,做多做空50%:50%,有的买一点有的卖一点,不会单边太多头寸。这样,自己不断赚取手续费和买卖价差,这是最好的情况。
另外不利的情况在于,一些短线炒手特别厉害。几分钟甚至几秒钟平仓,整体上稳定盈利,这就说明你作为对手方稳定亏损。但他平均利润不高,如果你去对冲,可能手续费超过了利润,也就是对冲端也亏钱,自己交易端也亏钱。两边亏钱,不如不对冲。
还有一种,比如是单边长线的。如果行情大涨,他做多了,说明他大赚,你大亏,这时候一定要对冲的。但其实对冲前怎么知道他是长线?另外一种优质客户是逆势死扛,他大亏,你大赚,但同理事前你是不知道的。这两类客户,如果不对冲,自己承担的风险会很大,因此最好放弃这部分收益,选择对冲。
如果可以识别客户,那情况会不大一样。比如成交之后可以知道出对方的id,那根据历史数据统计,这个客户之前是什么类型,短线、长线、盈利、亏损,然后可以有针对性地选择是否对冲。由于平台自身账户基本上是唯一做市商,也是唯一对手方,因此客户之间成交的情况非常少。客户每次成交都看到同一个对手方id,这个信息对客户是没什么用的。因此,哪怕这个是公开信息,也只对大饼店自己有用。
如果挂单id公开,那其实没啥用。因为99%的挂单可能都是大饼店自己,这样做只是暴露了自己,但没有暴露客户。除非是引入了外部厉害的做市商,每次看到对面的id是牛逼的做市商,就不去吃他了,这样或许可以减少损失。但这种情况,内部做市商也就失去了优势。那是另外一种商业模式。
现在其实做现货吃力不讨好,大店现货很多免费了,挤压了小店的生存空间。而且小店要频繁转账,又不赚钱又这么繁琐。其实这更多是给客户一个换饼的渠道而已,真正交易赚手续费还是靠合约。
如果是项目方的饼,逻辑又不大一样。一开始只有项目方及其朋友手上有饼,所以只有他们是卖方,客户是买方那个。长期来说,项目方也是卖出为主,因为他们的目的就是卖出套现。散户的目的是博他涨几倍赚取暴利。绝大多数小饼最终都会暴跌,本质上就看能否在暴跌前卖出,因为刚上一般都会涨。
刚上的时候,只有项目方有饼,他不卖,价格涨几倍都可以,因为价格他定的。至于散户买不买账,就看项目方自己的宣传能力了。
有话要说...