楼主: dana.quant
21621 7

[交易策略] 【量化投资】不懂量化策略就不要炒股了!看了量化这个你就懂了! [推广有奖]

  • 0关注
  • 7粉丝

硕士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
1030 个
通用积分
0
学术水平
8 点
热心指数
14 点
信用等级
8 点
经验
3609 点
帖子
103
精华
1
在线时间
55 小时
注册时间
2015-8-30
最后登录
2016-5-17

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

心血来潮也想尝试在我们自己的平台上动手写写中国股市的动量择时的量化策略,因为实际上有不少时候价值投资者是用基础数据先选出心仪的股票,然后再用量化策略的思路确定入场和离场的时机。

动量择时和择股的基本思路很接近,股票在表现强劲的时候有很大可能会持续上涨,表现差劲的接下来有很大可能继续低迷。


比@Liu Cao同学幸运的是所有从2005年开始所有A股日数据都已经在平台上了,并且经过了Split Adjusted清洗处理,并且会考虑进去仓位情况是否可以拿到对应的时间段的分红。(具体可以访问:

RiceQuant - Beta)只需要一行简单java程序搞定。


我先挑了一只平安证券,先写一个最简单的双均线量化策略:如果短期均线从下方突破长期均线,近期走强,为买入信号,全仓买入,短期均线从上方跌破长期均线则为卖出信号,空仓。


选择的长期均线 = 26天,短期均线 = 12天,基准为沪深300

回测开始日期20120512

回测结束日期20150112


程序无敌简单,只需要调用Talib中的SMA功能计算两段两条均线值。10(ru)分(guo)钟(ni)搞(shu)定(xi API):



经过了5秒的运算等待...



那么结果出来了,在趋势明显的情况下简单动量类量化策略的收益还是不错的。橙色是我们的量化策略,蓝色是基准(沪深300)。0.99的Sharpe也还是不错的,22%的max drawdown稍微有点高...

PS: 关于风险计算的说明可以访问: RiceQuant - Beta





除了收益以外,用自定义时间序列画图功能画出了长短均线和每日收盘价格:



以上的图形只用了类似的几行代码 (RiceQuant - Beta):

informer.plot("MACD",MACDOut[MACDLength.value-1]);


从图上可以清晰地看到由两条均线组成的金叉(golden cross)和死叉(death cross),对应的可以在下单历史里查看下单情况(交叉点的日期)





双均线(simple moving average)量化策略虽然简单易懂,但是最大的问题是均线本身计算方法所带来的信号滞后性。等到出现金叉买入点的时候价格已经上涨很多。碰到震荡市就会赔的很惨。比如我们在plot中放大一段双均线的信号图




--------------更好的量化策略的分割线-----------------

有没有什么优化的方法呢?我尝试了下把SMA(simple moving average)换成EMA(exponential moving average)。


那么EMA的双均线表现如何呢?


在同样的设定中进行回测,因为EMA中更多的权重给了最近的数值,所以捕捉动量要比SMA更加灵敏。在股价上涨的时候会更早出现买入信号:





EMA双均线其实有个我们更熟悉的名字叫MACD,只是MACD增加多了一条signal line。


MACD line = 12 天 EMA - 26 天 EMA

MACD signal = 9 天 MACD的EMA


这样就又形成了两条线和新的金叉量化策略,当MACD从底部突破signal时候的走强,为买入信号,反之则是卖出信号。


直接在IDE里调用Talib的MACD功能计算MACD和MACDsignal,可见在趋势性为主,震荡较少的情况下表现不如SMA和EMA双均线。




plot MACD和MACD的signal两条自自定义线




另外一种比较简单的使用MACD的方法,就是不用MACD Signal,直接把MACD和Zero零线做比较。



从回测结果来看,在震荡较少,趋势比较明显的情况下,MACD的零线量化策略要比金叉量化策略更好:

现在我们取得了1.024的Sharpe(vs 0.99)




如果继续往下做,我会考虑在程序中对MACD进行一些优化,比如不是等待金叉出现,而是根据趋势来预测金叉的出现,在出现前就下单,等等。


个人感觉量化策略作为一个price based strategy还是有一定的辅助作用,也有可以挖掘的地方。可以结合市场的波动率(risk on risk off)和趋势可以选择在一定时间内对技术指标采取动量或者反转的量化策略来捕捉交易信号。


最后我比较好奇07-08股灾的时候这个小量化策略是否能扛得住呢,选择的仍旧是平安银行。我从07年1月运行到了15年1月,略微调整了一点参数,结果如下:



hmm... Not bad. 橙色是我们的量化策略,蓝色是基准(沪深300)。基本上避开了那次谷底的大跌,最后的收益是700%多,但是max drawdown嘛。。。50%有点惨烈,比股灾是好一些还需要继续优化参数等。


MACD的量化策略代码可以在这里找到:RiceQuant - Beta, 复制黏贴进去你的代码编辑器即可运行。(注册一下很快的嘛...)


---------------------Slippage 和 Commission ------------------------

交易费已经考虑进去,其中包含落单对市场的冲击 - Slippage,券商收取的commission,ZF收取的印花税三部分。


Slippage -

  • 关于整个回测中的落单对市场的冲击模拟,我们使用了上海交易所的paper 中的effective bid ask spread : 0.246% - http://www.sse.com.cn/researchpublications/workstation/c/station20040901.pdf
  • 我们的具体计算方法 - RiceQuant - Beta试试自己的量化策略,他是完全免费的,也在朝实盘交易努力中:
    Software is like sex; it's better when it's free. - Linus


最后的最后~~~喜欢量化策略的可以加我的群跟大家多分享一下喔qq群:429907369
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:量化策略 量化投资 Publications Publication Exponential 量化策略 Java python 量化投资 对冲基金、量化投资。

沙发
lwell20 发表于 2015-9-18 10:46:59 |只看作者 |坛友微信交流群
中国梦

使用道具

藤椅
jjxm20060807 发表于 2015-9-19 23:13:25 |只看作者 |坛友微信交流群
谢谢分享

使用道具

板凳
rommel1992 学生认证  发表于 2015-9-24 17:25:03 来自手机 |只看作者 |坛友微信交流群
Thank u for writing down the process of building your own strategy.

使用道具

报纸
lwell20 发表于 2015-10-14 07:45:35 |只看作者 |坛友微信交流群
[em47]

使用道具

地板
dana.quant 企业认证  发表于 2015-10-15 18:14:04 |只看作者 |坛友微信交流群
QQ截图20151015150346.png

使用道具

7
littleDreamXX 发表于 2017-3-24 16:44:14 |只看作者 |坛友微信交流群
支持楼主,其实量化交易  并不是那么难学,虽然需要有一些 数学、统计学、计算机编程、 金融 等方面的知识。但是这些对于 自学来说 是可以学会的,我就是一个菜鸟程序员 自己 学了有几个月 就可以在 BotVS 上写一些 代码 跑CTP协议 的上期技术 simnow 模拟账户了 。关键在于自己 有没有 耐性。

使用道具

8
慢游潜行 发表于 2017-3-24 18:19:39 |只看作者 |坛友微信交流群
万里长城第一步。。继续努力。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 16:37