量化第一节学习
一、股指期货(沪深300股指期货)和交易所的一些知识:
- 股指期货没有夜盘
- 高频分析数据量大,可以并行的,尽量并行,所以程序核数尽量大
- 期货合约会到期,股票不会
- 量化交易更关注变化量,但是交易所只发布累积量
- turnover :成交额
- 冲击成本:就是交易的资金量较市场总量较大而造成不能按照预期价格全部成交而多支付的成本。比如我是一个机构,看中某一只股票,其日均成交量为2亿,现在我想建仓买入1亿元,假如现价20元,涨幅0.00%,如果这1亿我一次性买入的话这股肯定一下就被推到涨停了,本来我预想是以20元价格买入5000000股,现在由于交易金额较大造成该股涨停,假设能全部成交那我花费的成本就比20元要更高。同理,钱太多的情况下,就会造成一卖就跌停,一买就涨停。
- 期货对手价就是对手方的报价。即:如果是买方,对手价就是以卖方委托价买入,如果是卖方,对手价就是以买方委托的价格卖出,根据价格优先的原则及时成交。
- 量化的本质是用过去预测未来:数据集用三天的,第一天用于计算因子预测,第二天用于回测,第三天用于计算因变量(如:未来的收益率)
- 期货交易所只公布总交易量,不知道主动买、主动买的量各是多少,主动买或者主动卖会亏一个买卖价差。
- 做市商:你急需现金,于是想要卖掉车来筹集资金。你在网站上发了广告,但是一直没有买家出现。于是你只剩两种选择:要么降价、要么继续等待。做市商的角色,就好比随时准备买车的人或者机构。只是,他们愿意支付的价格低于你期望的价格,但是好处是他们能随时让你拿到现金。上面这个例子,完全能够展示一个做市商的优势和劣势。优势是能随时予你便利,劣势是你不得不在价格上作出让步。很多人陷入两难,是继续观望等待满意的买家呢,还是愿意牺牲一些利益换取立马拿到现金呢?在金融市场,做市商的角色也是一样的。它们为市场提供足够的流动性,让订单能够快速成交。如果一家公司冠上了做市商的名字,其实代表你在这个市场上有一定的资质和信誉,这是一家优质的公司;能成为一家做市商,说明是一家大公司,实力雄厚的公司,而且是受到严格监管,它有足够的资源去提供流动性,有足够的技术去提供透明的报价,而且能够给客户提供最公平的服务,这才是一个做市商。做市商的重要性显而易见,他们维持了交易的结构,保证了买卖双方的交易顺畅。做市商带来了非常重要的流动性,因此有助于市场的稳定。作者:黑牛市值管理链接:https://www.zhihu.com/question/324163093/answer/681673716来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 一定算法估计主动卖卖:买卖价默认是在一档价成交
- 股指期货的存续期只有3个月
- 主力合约:主力合约的概念并非来自交易所,所以它没有出现在交易规则中。没有一个公允的概念来定义什么是主力合约。通常意义上看,交易层面的主力合约主要指持仓集中,流动性好的合约。https://zhuanlan.zhihu.com/p/117351147
- 股指比较活跃,一般交割换约也可以,或者前一天、前2天都差不多
- 交易所手续费0.23%%,期货公司在这个基础上加1%-5%,回测用0.25%%
- 股指是波动最大的品种。指的是相对交易成本而言。
- 股指交易成本估算:3%%*2(包括滑点),假设100万合约价值,大约600元,10跳;股指建议一次最多下1手
- 商品合约价值低,螺纹钢4万,万6就是24元,相当于2.4跳,而且挂单厚,冲击成本小;螺纹1手、100手差别不会太大
- 之前那种高频(每天几百次、几千次)现在不大行,波动不行,手续费太高
- 现在更多是日内波段类型的策略
- 好处:对硬件要求不会太高,适合自己做;日内交易收益还是比较稳定的;
- 坏处:分笔数据计算量比较大;程序最好C++写,python不行
二、数理统计分析时间序列平稳性:
- 平稳性检验顾名思义是验证序列平稳的一种方法,具体讨论如下:https://www.jianshu.com/p/533c2649cad9(这篇比较好)
- 加权平均价计算方式:(bid * ask.qty + ask * bid.qty) / (ask.qty + ask * bid.qty),如买量多,卖量少,正常情况下偏涨,所以价格更偏向于卖价,所以买的权重应该乘以卖价。涨停ask.qty = 0, 跌停bid.qty = 0.
- 建回归模型的目的是希望因变量(如:未来的收益率)平稳
- 平稳时间序列分为严平稳和宽平稳。
- 严平稳:序列的所有统计性质不会随着时间的推移而发生变化,该序列平稳。
- 宽平稳:认为序列的统计性质由它的低阶决定,只要保证低阶矩平稳(二阶),就能保证序列的主要性质近似稳定。
- 弱平稳:均值为0,方差有限,最好没有逆方差,不会越来越大
- 针对下面两种平稳性检验方法的结论是(具体的学习参照《应用时间序列分析(王燕).pdf》):
- ADF:p值越小越平稳
- KPSS:p值越小越平稳
- p是一个计算出来的值,p值的界点一般是0.05,0.01
ps:以二进制格式读取会快点,使用:pkl(python),多核并行会快一点
三、回测方法(这两种的代码还没有学习,先把这个结论放在这里):
1. 适合低频交易
- 策略思想:
- Return预测值
- If Return > Threshold, pos=1
- If Return< -Threshold, pos=-1
- Otherwise, pos=0
- 或者还可以根据return具体值决定仓位大小
- 适用场景:对于低频日线可能是可以的
- 特点:
- 比较低频,滑点、手续费影响不大;持仓时间本来就可以比较长比如日线级别的策略
- 考虑涨跌停板不能买卖的情况
- 手续费有些按比例,有些固定
- Threshold调整频率,threshold越小频率越高
- 优点:速度可以很快,因为只涉及向量计算,没有循环,不存在路径依赖
- 缺点:频率可能过高,哪怕有未来数据也稳定亏钱,平均利润是买卖价差的倍数。最终结果稳定亏钱
- 原因:预测值稍有变化仓位就要改变,导致频率过高,持仓时间过短,无法覆盖成本
2. 适合高频交易
- 特点:路径依赖,无法向量化计算
- 策略思想:
If eturn>threshold, signal=1
If return< -threshold, signal= -1
Otherwise, signal=0
If signal==1, position=1
If signal==-1, position =-1
Otherwise, position不变,维持原来仓位
- 结果:
- 用了未来数据测试,回测很好,只是说明框架比上一个好
- 可以加噪音测试,效果没那么好,可以加阈值,过滤噪音
- 如果用过去收益,效果会很差,因为过去收益跟未来基本独立
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
