因为不是day trader,也懒得做短线投机,所以一直觉得没必要写交易日记。不过参与market就是一个假设验证的过程,正巧这几天全球股市暴跌,波动性复活,也不妨投资过程中把整理到的资料和自己的一些想法时不时记录下来,以后也是很好的参考。
之前在2018年的交易逻辑一文中已经对今年的大概逻辑体系总结为 油价 通胀预期 以及波动性回归。具体而言就是油价中枢抬升推动通胀(或预期),随后对应着全球央行的货币政策收紧(或预期),之后是普遍的利率中枢抬升,流动性收缩,权益类资产价格受到打压,久违的波动性上升。逻辑都没错,但没想到这么快。
周二一早醒来就看到ZP的消息“妈的这是股灾了”。我还在想不知道之前网格一路拉到怀疑人生的VIX解套没,打开交易软件一看连续五六格网格止盈单全部挂出去了,直愣愣涨了一倍。 portfolio daily return大概-2%,本来觉得没什么,毕竟其他标的都在跌。可是瞄了一眼总亏损居然全都是xiv这一个标的贡献的,如果没有这个标的的话,做多波动性的仓位直接在股灾时给予正盈利。 若不是long xiv也踩了黑天鹅,这波实实在在践行Taleb的杠铃策略gain from disoder。对冲踩上了,醉了醉了。
瞄了下新闻,发现long xiv的厮们全在盘后狠抛,直接砸下90%,我勒个去。搜了下发现这货如果跌80%+会直接清盘,看起来是躲不开了。此处应总结的原则还是,下手前对对标的无论如何了解都不为过。 上周四居然还有5.2亿跑步long xiv,这下估计埋惨了。
交易xiv的逻辑是,满市场都是被动指数型ETF和机器人的时候,波动性自然下降。所谓的smart beta造成了大量的etf标的集中在为数不多的stock上,反倒集中了风险。预期一致转向波动率增大就是这个结果。具体瞄瞄知乎这个帖子。 瞄了下几乎没什么交易量的边缘化个股,果然跌幅远远小于大盘。interesting,或许后面会有一波风格转换。
接下来怎么做?做一下假设验证:
Side Project中希望能够通过列表选项调整显示的2D map animation,发现JS不去响应OnChange事件,最早以为是单纯改动src不可行,需要ajax方式做请求,检查后发现调用函数时没有给参数括号,不过为啥chrome不报错,奇怪。具体代码:
function change_gif(selectObj) {
var img_obj = document.getElementById("mapimg");
var slc_obj = document.getElementById("select01");
var opt_value = selectObj.value;
switch (opt_value){
case "precip":
img_obj.innerHTML='<img src="https://raw.githubusercontent.com/Novarizark/wrf-sdpwfe/master/fig/precip.gif?'+ (new Date().getTime())+'"/>';
break;
case "snow_cover":
img_obj.innerHTML='<img src="https://raw.githubusercontent.com/Novarizark/wrf-sdpwfe/master/fig/snow-cover.gif?'+ (new Date().getTime())+'"/>';
break;
}
}
<select style="margin-bottom: 15px" id="select01" onchange="change_gif(this)">
<option value="precip">Precipitation</option>
<option value="snow_cover">Snow Cover</option>
</select>
<div id="mapimg"><img src="https://raw.githubusercontent.com/Novarizark/wrf-sdpwfe/master/fig/precip.gif" /></div>
Updated 2018-01-25
去年5月就试着用python现成包爬取Yahoo Finance的数据,但是发现坑爹的是在我打算搞这个事情前两天,雅虎改了API爬不到。这次想起来查了下发现已经有相应的fix包了,当然只是临时的。不过无所谓,数据先拉到,后面业务化运行时能用多久用多久咯。
先装包:
pip install pandas_datareader
pip install yahoo-finance
pip install fix-yahoo-finance
然后就可以快乐地爬数据了。Stock ETF代码可以在Nasdaq官网拿到,这玩意儿一共26个英文字母,我居然手动下完了所有才发现有集中到一起的表格可以下载,shit! 对代码先做了个A-Z排序,加上个随机延时,然后就可以开搞啦。源码如下:
def mainfunc():
yf.pdr_override() # fix yahoo finance api
for item in eq_market:
pd_symbol=pd.read_csv(eq_path+item+'.csv', index_col='Symbol')
pos=0
for symb in pd_symbol.index:
pos=pos+1
print('Now download %s@%s (%d/%d)' % (symb, item, pos, len(pd_symbol.index)))
try:
df = pdr.get_data_yahoo(symb, start=ini_time, end=end_time)
except:
print('i\nError while downloading %s@%s' % (symb, item))
with open(eq_path+item+'/'+symb+'.csv', 'w') as f:
df.to_csv(f)
sptime=random.randint(0,50)/10
print('\nsleep %4.2fs' % sptime)
time.sleep(sptime)
Updated 2018-02-04