0%

《交易与交易所》第四篇 流动性提供者

13 交易商

交易商是通过低买高卖赚取收入的一类商人。商人包括交易商和经销商,经销商一般单向买入后单向卖出,交易商是双向买入卖出。

交易商向市场客户提供流动性,他们是被动交易者,不对交易时间进行控制。他们必须必须分厂谨慎的选择交易方式及交易对手,并承担相应程度的风险。因此,他们必须设定价格,兜售服务以吸引客户,管理自身库存,并需时刻小心、避免同更知情的交易者交易。

13.1 谁是交易商?

交易商是盈利驱动的交易者,他们使得其他交易者在想要交易时即能完成交易。买卖价差是对他们提供交易即时性的补偿。除了提供流动性以外,有些交易商也从做经纪商或者进行投机交易。

13.2 交易商的报价

  • 交易商愿意据之买卖资产的价格叫做买价与卖价。卖价设得比买价高,之间的差额即是买卖价差,用宽窄来描述价差的大小。
  • 交易商能赚到的实际价差往往小于他们的报价差,因为交易商进场在交易中调整报价。
  • 交易商通过双边报价做市

13.3 同交易商交易

在交易商报虚价的询价模式中,交易者常与交易商议价,订单如能按更优价格成交,则被称作得到了价格改善。

13.4 吸引订单流

为了盈利,交易商必须吸引订单流。

13.5 交易商报价决策

  • 在哪里挂出买卖报价;
  • 价差应为多少;
  • 买卖报价量;

13.6 交易商的库存

交易商持有的其交易资产的头寸是他们的库存。目标库存水平是交易商希望持有的头寸水平,交易商的库存失衡是指其实际库存与目标库存之差。

13.6.1 交易商如何控制库存

为了保证交易可以盈利,交易商必须控制好库存。大头寸不仅融资成本昂贵,在价格不利变动时还会使交易商面临严重损失,此类风险叫做库存风险。交易商会希望买入量和卖出量相等,通过设置自己的报价来获取双边订单流,这个过程称为价格发现过程

市场情况 策略 目的
库存过低或客户是净买方 提高买价;增加买量<\br>提高卖价;降低卖量<\br>按其他交易者的卖价买入<\br>购买关联资产 鼓励客户卖出<\br>防止客户买入<\br>快速提高库存<\br>对冲库存风险
库存过高或客户是净卖方 降低卖价;增加卖量<\br>降低买价;降低买量<\br>按其他交易者的买家卖出<\br>购买关联资产 鼓励客户买入<\br>防止客户卖出<\br>快速降低库存<\br>对冲库存风险

13.7 库存风险

交易商面临两种库存风险,根据未来价格变动是否与库存失衡有关分类。

13.7.1 可分散库存风险

可分散库存风险的产生来自那些可以引起价格不可测变动的事件。

可分散库存风险的危害较小,预期外的价格变动会相互抵消。同时之所以可以被分散,是因为交易商能够通过为多种资产做市来最小化总库存风险。

13.7.2 逆向选择风险

交易商与知情交易者交易时,面临逆向选择风险。逆向选择时影响交易商盈利的最重要因素。

这种风险危害程度较大,因为知情交易者仅在他们拥有的信息认为有利的市场方向上交易,他们的交易将产生单边订单流。知情交易使交易商的库存偏离目标水平,如果交易商未能及时恢复目标库存水平,交易商会遭受损失。

唯有避免与知情交易者交易,交易商才能规避逆向选择风险。而最好的方法,是将报价设定在资产基本面价值附近,以降低知情交易者的交易意愿。

13.7.3 市场价值与基本面价值

交易商通常并不关心他们的交易对手是否是知情交易者,只要他们的库存能够快速的回到目标水平。大多数交易商因此将更多的精力投入到发现能够带来双边订单流的资产的市场价值中,而不着力发现资产的基本面价值。

13.8 交易商应对逆向选择

13.8.1 交易商与知情交易者交易时会做什么?

怀疑与知情交易者交易的交易商必须调整报价以避免更多的损失。

13.8.2 如何通过报价远离知情交易者

交易商通过将报价设定在资产基本面价值附近来避免与知情交易者交易。交易商往往不能区分对手是不是知情交易者,只能假设所有的交易者都是知情交易者。因此交易商依据所有订单信息来推断资产的基本面价值,根据对手方知情程度的推测,赋予各笔订单不同的重要程度,对报价进行调整。

13.8.3 逆向选择价差

  • 交易商对知情交易者报价的价差会更宽,如接到大额订单或大宗交易时。

  • 有的交易商向客户提供一项叫做时间分割拆分下单(Time slicing)的服务,使用该项服务的大额订单,会被拆分成小单,并按时间间隔进行交易。这项服务对那些不希望订单产生即时市场冲击的机构客户很有吸引力,对于那些希望按时间加权平均价格成交的客户也具有吸引力,但对知情交易者来说,他们需要更快的成交。

13.9 交易商的定价错误以及避免方法

交易商在调整报价时可能会犯两种错误:

  1. 与知情交易者交易时,价格调整服务可能不够。
  2. 与非知情交易者交易时,可能过度得调整价格。

13.9.1 交易商有时选择与知情交易者交易

尽管与知情交易者交易时错误的,但是与那些明确的知情交易者交易中可以获得有价值的信息,这种收益可以弥补选择错误交易方向的成本。通过交易可以了解自己报价的高低:①调整报价;② 抢先投机交易

13.10 知情与非知情交易商

非知情交易商倾向于更快速地交易,将库存控制在目标水平附近,并避免长时间持有大量头寸,这种操作使得他们能赚到的实际价差要小于知情交易商,这种交易商通常被称作日内交易者或者倒卖者

13.11 交易商与价值交易者

当非知情交易商错把非知情交易者视为知情时,会过度调整价格,使得价格偏离基本面价值。价值交易者就会入场,与交易商交易。与提供即时性的交易商不同,价值交易者主要提供市场深度(市场有深度是指交易者的大量买卖不会显著的影响价格的市场情况)。

13.12 交易商与虚张声势的交易者

当交易商对于交易对手不了解时,他们必须嘉定可能存在虚张声势的交易者。为避免亏损,无论是买入还是卖出,在同无法确认身份的交易者交易时,交易商必须随着每笔交易调整报价。

《交易与交易所》第三篇 投机者

12 虚张声势的交易与市场操纵

虚张声势者通过制造一些需求假象,引诱其他交易者进行交易来影响市场,并从中获利。一般有两种方式:造谣者会散步一些有利于其他参与者伊昭虚张声势者所希望的方式去交易的信息,可能是假的,也可能是容易误解的真信息。价格操纵者会右移在特定价格或时点买入或卖出,改变其他交易者对投资价值的看法,可能是垃圾订单,也可能是被利用的真实交易,

12.1 多头骗局

虚张声势者一般都会先悄悄买入或卖出头寸,然后制造假新闻和假交易,吸引其他交易者按自己想要的方向交易,最后了解头寸,获利。

在此过程中,价值交易者最容易发现基本面价值偏离并入场,一旦价值交易者入场,会造成虚张声势者策略失败。

虚张声势者比较关注那些规模效、定价偏低的成长型股票。多数的交易者都是非专业的,价值交易者反应有相对较慢,所以虚张声势策略一般都可以赚钱。

12.2 虚张声势交易的基础

虚张声势者想买入股票的时候希望其他交易者卖出,想卖出的时候则希望其他交易者买入。

12.2.1 虚张声势者与知情投机者

很难区分市场操纵与合法的投机交易。知情投机者与虚张声势者不同的地方在于投机者是根据基本面信息判断出来的价值进行交易的,而虚张声势者假装自己是信息灵通的投机者。知情交易者为了获得信息费尽心机,然后依靠得来的信息安排交易,但虚张声势者不同,他们自己创造消息!

12.2.2 虚张声势者与价值交易者

价值交易者会妨碍虚张声势者的交易,一旦价格偏离了基本面价值,价值交易者就会介入。虚张声势者一般会选流动性不好或价值不好估计的投资工具,如果资金实力比价值交易者充足的情况下,也可以保持对市场的控制。

12.3 虚张声势者惩罚流动性提供者

为市场提供流动性的投资者必须非常谨慎,以防被虚张声势者愚弄。(见13章)很多流动性提供者对基本面价值知之甚少,他们只关注供求关系:他们认为股价的高低完全取决于流动性需求者是净买方还是净卖方。这个规律一般来讲是合理的,但是容易被虚张声势者操纵。

流动性提供者要根据他们服务的买方和卖方的订单情况调整价格时依照一定的规则。特别的,当流动性提供者不能确定他们是否在与虚张声势者进行交易时,他们就要调整价格,是买单和卖单的价格冲击一样,当买卖订单对价格的冲击差异很小是,虚张声势者很难获利。(如果买入100股导致价格上涨冲击比卖出100股导致价格下降冲击强,那么虚张声势者就会先买后卖获取差价,反之亦然)

虚张声势者最喜欢动量交易员(追涨杀跌型)和流动性提供者。

《交易与交易所》第三篇 投机者

11 订单捕捉者

订单捕捉者是试图在其他交易者之前进行叫一并获利的投机者。当他们正确地预测了其他交易者将如何影响价格时,或者当他们可以从其他投资者向市场提供的订单中提取出期权价值时,订单捕捉者就会赚钱。

11.1 抢先交易者

抢先交易者收集关于其他交易者决定展开的交易的信息。然后他们试图在哪些交易者完成交易之前去交易。

被抢先交易者抢先的交易者可分为主动交易者和被动交易者,主动交易者需要流动性,被动交易者提供流动性。

11.1.1 在主动交易者之前交易

主动交易者通常提交市价订单。当他们买入时,需求往往将推高市场价格;他们卖出时,价格将下降。在主动交易者之前交易的抢先交易者通过他们交易的价格影响来获利。

抢先交易者获取了那些本该由大额订单交易者获得的价格歧视福利。他们通过最优价格提供者处获得流动性以掠去价格歧视的福利,然后又反过来把流动性提供给报价较差的大额交易者。一个成功的抢先交易策略的效果是破事大额交易者支付更一致的价格来完成他们的订单。

11.1.2 在被动交易者之前进行交易

被动交易者为市场提供流动性,他们通常给市场提供限价订单或者报价。在被动交易者之前进行交易的抢先交易者希望掠取被动交易者订单的期权价值。经济学家称之为报价匹配者

报价匹配策略下,报价匹配者试图在大额被动交易者之前进行交易(同方向)。如果价格向不利的方向变动,他们将通过和被动交易者交易来控制损失;如果价格向有利的方向变动,则享受价格变动的全部好处。报价匹配者能够获得的收益形态类似于期权,他们的收益在一个方向上是无限的,另一个方向上是有限的。

报价匹配者的获利是以被动交易者的支出为代价的。他们获取了本来属于被动交易者的流动性。如果被动交易者后来由于价格变动而无法成交,被动交易者的损失就是报价匹配者的获利。

11.1.3 抢先交易者和市场有效性

  • 当被抢先交易者是非知情交易者时,他们的交易通常降低了价格的信息含量。
  • 当被抢先交易者是知情交易者时,短期会提高价格的信息含量,但由于他们掠取了知情交易者的收益,长期会降低价格的信息含量。

11.1.4 抢先交易者和流动性

抢先交易者通常降低市场流动性。由于交易是零和博弈,他们的盈利就是其他交易者的交易成本。抢先交易者是寄生交易者,他们从其他交易者处获得利益,但是却不回馈任何东西作为对价。

11.2 情绪导向型技术交易者

情绪导向型技术交易者不同于抢先交易者,他们试图预测那些非知情交易者还没有做出的交易决策。非知情交易者会因为许多原因进行交易,情绪导向型技术交易者试图识别这些原因,并以此预测非知情交易者将于何时进行交易。这些原因可能是理性的,也可能是错误的信念。

情绪导向型技术交易可能是相当有风险的,因为者设计对于非知情交易者的抢先交易,非知情交易者带来的价格影响通常使得价格偏离基本面价值。而如果价值投资者激进的进行交易,会使价格回归到基本面价值。因此情绪导向型技术交易在那些难以估值的交易工具上最有可能获利。

最重要的三个难以衡量的基本面因素:① 预期通胀率;② 未来政治的不确定性;③ 股权风险溢价。

11.2.1 情绪导向型技术交易者、市场有效性和流动性

他们促使价格包含更少的信息,可能使得价格泡沫增加,并降低市场流动性。

11.3 逼仓者

逼仓者试图控制市场的某一个方向,由此在另一方向上希望出清头寸的任何一个交易者必须与他们协商。逼仓者是订单预测者,他们必须谨慎地设计情景。

卖空者被逼仓后的风险无限大。

逼仓者是寄生交易者,因为他们设计的交易策略只有当他们能够压榨其他交易者时才能获利。他们的操控使得价格的信息含量降低,而他们的交易则极大地提高了其他交易者的交易成本。

11.4 操纵止损单

使用止损单的交易者必须非常小心,如果暴露了止损点位,会被市场操纵者恶意激活,止损单会进一步加剧价格偏离。

1 初识函数

1.1 函数定义

# 定义函数
def my_func(a1, a2, a3):              #形参
    result = a1 + a2 + a3
    print(result)

# 使用函数
my_func(11, 1233)                    #位置传参
my_func(a2=12, a1=11, a3=33)        #关键字传参
my_func(11, a3=33, a2=22)            #混合传参,位置传参在前

1.2 默认参数

def func(a1, a2=22, a3=33):
    result = a1 + a2 + a3
    print(result)

默认参数位置放后面

2.3 动态参数

def func(*args):
    # 用户传来的参数统一打包为元组
    # args = (1,)
    # args = (11, True)
    print(args)

# 可以通过位置参数的形式传入n个参数
func(1)
func(11, True)
func("asdf", [11, 22], 999)
def func(**kwargs):
    # 自动将数据打包成字典
    # kwargs = {"a1": 1, "b1": 2, "c1": 3}
    print(kwargs)

func(a1=1, b1=2. c1=3)
# 定义函数时**要在*后面
def func(*args, **kwargs):
    # args=(11, 22, 33), kwargs={"xx": 123, "uu": 999}
    pass

func(11, 22, 33, xx=123, uu=999)

2 函数的返回值

def func(a1, a2):
    res = a1 + a2
    return res

data = func(100, 200)
# 函数遇到return,函数终止执行后续代码
# 函数没有返回值,默认返回None

3 函数的调用

4 函数参数传递的是内存地址

  • 不可变类型的参数传进函数以后,会被复制,不会被修改原值
  • 可变类型的参数传进函数后,可能被修改原值(数组、字典、集合)

5 作用域

5.1 作用域基础

  • 作用域是一块内存区域,只要在这个区域的就可以共享这个区域的数据
  • python中执行函数,就会为函数常见一个作用域
  • python只要一运行,就会有一个痊愈的作用域

5.2 关于变量

  • 全局变量
  • 局部变量,在函数重定义的

5.3 global关键字

NAME = '123'
def func():
    global NAME        #声明变量是全局变量
    NAME = "345"
    print(NAME)
print(NAME)            #123
func()                #456
print(NAME)            #123

6 函数名作为变量

def func():
    return 123

a = func
a() #执行函数

7 lambda表达式(匿名函数)

def func():
    return 123
# 等同于
func = lambda: 123

def func(a1, a2):
    return a1 + a2
# 等同于
func = lambda a1, a2: a1+a2


def func(data_string):
    return data_string.upper()
# 等同于
func = lambda data_string:data_string.upper()

8 内置函数

8.1 数值计算相关

# 绝对值
abs(-10)

# 2的5次方
pow(2,5)

# 求和
sum(num_list)

# 商和余数
v1, v2 = divmod(92, 10) # v1=9, v2=2

# 保留小数点后几位
round(3.14159, 2)

8.2 列表操作

# 最小值、最大值
min(num_list)
max(num_list)

# 只要有空值就返回True
v1 = all(list) 

# 只要有非空值就返回True
v2 = any(list) 

8.3 进制转换

# 转二进制
bin(100) #0b1100100

# 转八进制
oct(100) #0o144

# 转十六进制
hex(100) #0x64

8.4 文字和二进制转换

# 字符转ascii码
v1 = ord("A")

# ascii码转字符
v2 = chr(65)

8.5 类型转换

int("10")
str(10)
list({11, 22, 33})
set()
dict()
float()
bool()
bytes()

8.6 其他

# 求长度
len(list)
print()
input()
open()
range()
hash()

# 查看数据类型
if type(a) == list/str/set/dict/int...:

# 是否可执行(函数指针)
def func():
    print('123')
v1 = callable(func) #True

data_list = [11, 22, 33, func]
for item in data_list:
    if callable(item):
        item()

# 序列索引
for idx, item in enumerate(list, i):
    print("{} {}",format(item, idx))

# 对list/tuple排序,原数据不变
new_list = sorted(datalist)

9 推导式

9.1 列表推导式

# data_list = [0, 1, 2, ..99]
data_list = [i for i in range(100)]

# data_list = [100, 100, 100, .. 100]
data_list = [100 for i in range(100)]

# 带筛选
data_list = [i for i in range(100) if i%2==1]

9.2 字典推导式

data = {i: 123 for i in range(10)}

10 pip

> pip install ...
> pip uninstall ...
> pip freeze > requirements.txt
> pip install -r requirements.txt

# 换源(一次性)
> pip install flask -i https://pypi.douban.com/simple/
# 换源(默认永久)
> pip config set global.index-url https://pypi.douban.com/simple/

11 源码安装

# 下载源码
> wget url

# 解压

# 进入目录编译&安装
> python setup.py build
> python setup.py install

《交易与交易所》第三篇 投机者

10 知情交易者与市场效率

知情交易者是获取有关基本面价值的信息,并根据信息采取行动的投机者。当市场价格与他们估计的基本面价值不一致是,他们进行相应的买卖操作。

知情交易者包括:

  1. 价值交易者
  2. 信息导向性技术交易者
  3. 套利者

10.1 基本面价值

  • 基本面价值(或内在价值):

    • 是投资工具的“真实价值”。

    • 是持有投资工具期间,所有现期和未来的期望收益及成本的折现。

    • 不是对价值的完美估计,仅取决于目前交易者们可以获得的信息。

  • 当价格等于基本面价值时,价格具有充分信息,市场是有效市场。

  • 基本面价值的变化是完全不可预测的,如果可以预测说明当前的基本面价值不能充分反映出那些用于作出预测的信息。

10.2 知情交易者

知情交易者估计基本面价值,建立于他们独有的私人信息或者其他交易者也能获得的公共信息上。

10.3 知情交易者使价格充分反映信息

  • 交易者买入将推高价格,卖出将打压价格,最终使价格充分反映市场信息。
  • 所有的交易者们对于价值有不同的估计,相互交易将抵消不同的影响,最后的净影响反映了不同价值估计的平均值,更准确。
  • 交易者希望在价格与基本面价值有显著差异、流动性好的市场上进行交易(有足够的获利空间)。

10.4 知情交易策略

知情交易者必须最小化其交易对价格的影响,以最大化他们的收益。

  • 如果交易者认为他们的私人信息很快会成为公众信息,或者其他的知情交易者会同时采取行动时,他们会选择激进的交易。否则,他们会缓慢交易,让其他交易者很难察觉他们拥有的信息,在没人发现的情况下完成交易(隐藏性交易 stealth trading)。

10.5 知情交易的类型

10.5.1 价值交易者

他们收集尽可能多的关于基本面价值的信息,然后运营经济学方法组织信息并估计投资工具的价值。他们收集关于销售、成本、经济活动、利率、质量管理、潜在竞争、发展选择、劳资关系、新科技前景等所有相关信息来预测并折现未来现金流,雇佣大量的专家,建立大型数据库,采用多层管理的金字塔架构。

由于价值交易者对价值有非常准确的把握,他们通常向大型交易者提供流动性,在许多方面他们是最后的流动性提供者。(见16章)

10.5.2 新闻信息知情交易者

新闻信息知情交易者收集有关投资工具价值的信息,并据此采取行动,试图预测投资工具价值在新信息下将如何发生变化。

成功的新闻信息知情交易者雇佣:

  1. 能迅速从公开数据渠道中过滤出有价值信息的信息收集专家;
  2. 有很强调查能力并产生有用的新信息的研究员;
  3. 能够给快速准确分析新信息对产品价值影响的交易者。

新闻信息知情交易者的2个风险:① 过时信息;② 估计不准。

10.5.3 信息导向型技术交易者

技术交易者试图通过识别价格模式的重现来预测未来的价格路径。当知情交易者出现系统性错误非知情交易者对于价格有可预测的影响时,会出现这种价格模式。

信息导向型技术交易者从描述了含有信息的价格的抽象统计特征中识别异动,通过计算机来识别数据中的模式。技术型交易的定义特点就是对于模式识别的关注。

10.5.4 套利者

套利者同时买入和卖出相似的产品,他们试图识别出那些彼此之间并没有被一致性估价的投资工具。

成功的套利者必须准确估计价值间的相对差异,但是不需要判断任一投资工具是否被正确估价。

套利者通过交易获利,但他们交易的结果进一步加强了一价定律。一价定律指的是相同的投资工具应该有相同的价格。对于那些相似但不完全相同的投资工具,一价定律使他们的价格相对于共同的因素应该是具有一致性的。

10.5.5 知情者交易小结

交易者类型 最善于估计 专攻的信息 通常的交易速度
价值交易者 全部价值 所有可得的信息
新闻信息知情交易者 价值变化 新闻 对于公共信息交易快,对于私人信息交易慢
信息导向型技术交易者 系统性估值错误 统计异常
套利者 相对价值 相对价值因素

10.6 竞争、交易盈利以及包含信息的价格

10.6.1 包含信息的价格

  1. 当基本面价值被广泛了解,价格反映了这些价值,没有交易者会按其他价格交易。
  2. 当价值不被广泛了解是,知情交易者使价格变得充满信息。

10.6.2 知情交易的盈利

知情交易者的获利取决于他们预测未来价格的能力(准确性、正交性)以及他们的交易对价格的影响(流动性)。他们交易的获利必须能覆盖其获取及处理信息的成本、佣金成本、时间价值以及其他经营中的正常成本。

10.6.3 非知情者的角色

只有当知情交易者与飞知情交易者交易时,知情交易才是可获利的。进过平均上看非知情交易者会亏钱给知情交易者,他们却能够忍受这些损失,因为他们从市场上获得其他有价值的服务(功利交易者)。

10.6.4 市场悖论

价格的信息含量高 -> 知情交易者不盈利 -> 知情交易者不交易 -> 价格不具有信息。

噪音不显著!!!

10.6.5 知情交易者之间的竞争

知情交易者相互之间竞争以获取信息并据此采取行动。只有那些能够以低成本手机盒分析信息,并有效地交易的人才能获利。

10.6.6 市场有效性

  1. 弱式有效市场(weak-form efficient):指市场的价格反映了所有过去的信息,没有人可以仅仅通过过去的价格来预测未来的价格变化。
  2. 半强式有效市场(semistrong-form efficient):指市场的价格反映了所有可以公开获得的信息,因此没有人可以仅仅通过公开信息来预测未来的价格变化。
  3. 强式有效市场(strong-form efficient):指市场的价格即时反映了全部可得的公开及私人信息

10.6.7 流动性和包含信息的价格间的权衡取舍

  • 包含信息的价格能够通过更有效的安排生产和分配决策来助益经济;
  • 但让价格包含信息的许多成本是由那些亏钱的非知情交易者支付的,这些成本降低了他们实现功利目的的净收益;
  • 如果这些成本过高,会阻碍功利活动,降低市场的流动性;
  • 因此流动性和包含信息的价格间需要权衡取舍,比如通过停牌措施保护非知情交易者

10.6.8 公共信息的好处

一些政策能同时提高市场流动性和价格有效性,比如那些能够推动重要的基本面信息公开的政策,上市公司披露义务