山东半岛预报系统中后处理部分的NCL串行效率很低,大概要二十分钟到半个小时才能完成绘图。既然任务之间都是独立的,很自然的想法就是能否在shell的环境下实现进程级别的并行化。 差了下其实很简单,只需要在语句后面加入 & 符号放到后台执行即可实现异步,但是后台执行无法捕捉结束位置,wait语句可以解决这个问题,其作用就是等待该语句之前的所有后台任务结束之后,再执行此语句后的任务。例子如下:
ncl -nQ 180205-plot-precip.ncl &
ncl -nQ 180207-plot-T2m.ncl &
ncl -nQ 180207-plot-RH2m.ncl &
ncl -nQ 180207-plot-UV10m.ncl &
wait
echo("Hello world!")
前面四个NCL语句会并行执行(&符号将该命令放入后台执行后立刻执行下一个语句),之后碰到wait,会等待前面四个后台任务中最慢的那个结束,再输出Hello world!
原始脚本处理后,大概只需要三四分钟(不算坑爹慢的git push过程)即可完成所有的绘图操作。惊不惊喜?
Updated 2018-02-17
拖了几次Yahoo的美股daily数据,发现有很多Symbol对应的标的没有数据,对应的文件大小为3Byte。打算做一下清理,查了下删除语句:
find . -size -4 -exec rm {} \;
减号代表小于,不带单位默认为byte。exec是find的参数,具体描述
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } \;,注意{ }和\;之间的空格。
至于为啥后面要有个大括号 空格 反斜线 然后再分号?如此冗余设计实在让人不爽。查了一下这个帖子刨根问底了一番。具体来说,大括号代表占位符,表示对find出的列表元素,每次展开遍历其中一个,反斜线代表参数范围结束符,分号后面是其他参数了。
Updated 2018-02-14
因为不是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,或许后面会有一波风格转换。
接下来怎么做?做一下假设验证: