您的位置:首页 > 编程语言

量化投资(一):十行代码实现一个量化交易入门程序

2017-10-09 13:27 591 查看

1 在浏览器中打开 www.joinquant.com

2 编写策略代码

点击顶部的“我的策略”,选择子菜单“我的策略”,在左侧输入python代码

def initialize(context):                #初始化
g.security = '600050.XSHG'      # 股票名:中国联通
def handle_data(context, data):     # 每日循环
last_price = data[g.security].close # 取得最近日收盘价
# 取得过去二十天的平均价格
average_price = data[g.security].mavg(20, 'close')
cash = context.portfolio.cash       # 取得当前的现金
# 如果昨日收盘价高出二十日平均价, 则买入,否则卖出。
if last_price > average_price:
order_value(g.security, cash)   # 用当前所有资金买入股票
elif last_price < average_price:
order_target(g.security, 0) # 将股票仓位调整到0,即全卖出




这里600050,是中国联通的股票代号,XSHG代表沪市。

若是想要对“科大讯飞”进行量化,只需要设置

g.security = ‘002230.XSHE’,这里XSHE代表深市。

3 编译运行

点击编译运行,右侧的上半部分显示回测结果,下半部分显示日志和错误。



这里默认的统计时间为2016-6-1到2016-12-31,若想改成自定义的时间需要注册并登录。

4 名词解释

(1)基准收益就是大盘的收益。

(2)策略收益就是你的策略所能产生的收益。“好”策略的收益至少要超过基准收益。

(3)阿尔法:投资中面临着系统性风险(即Beta)和非系统性风险(即Alpha),Alpha是投资者获得与市场波动无关的回报,一般用来度量投资者的投资技艺。比如投资者获得了12%的回报,其基准获得了10%的回报,那么Alpha或者价值增值的部分就是2%

• α>0,策略相对于风险,获得了超额收益

• α=0,策略相对于风险,获得了适当收益

• α<0,策略相对于风险,获得了较少收益

(4)贝塔:表示投资的系统性风险,反映了策略对大盘变化的敏感性。例如一个策略的Beta为1.3,则大盘涨1%的时候,策略可能涨1.3%,反之亦然;如果一个策略的Beta为-1.3,说明大盘涨1%的时候,策略可能跌1.3%,反之亦然

(5)夏普比率:表示每承受一单位总风险,会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑。

(6)最大回撤是一个风险指标,衡量极端风险,表示在测试区间内最大的可能浮亏。注意这里是浮亏,不是亏损。

例如:初始净值为1元,后来增长到最高点1.6元,近期跌到最低点1.6元。则最大回撤为

(1.6 - 0.6) / 1.6 = 62.5%。

5 分析

图2中的基准收益为4.43%,策略收益为66.69%,远高于基准收益。这说明这个策略在2016-06-01至2016-12-31这段时间内,若用于中国联通股票,会产生很可观的收益。

6 换一支股票试试

将g.security = ‘600050.XSHG’改为g.security = ‘002230.XSHE’,这里002230是“科大讯飞”的股票代号。

编译运行后,发现策略收益为-2.90%。这说明,在2016-06-01至2016-12-31,对于科大讯飞股票,若使用了程序中的策略,会产生很差的收益。



7 总结

从上面针对两支股票运行同一策略所产生的不同效果来看,同一策略对不同的股票所起的作用是不一样的。好的策略应该选取多种不同的指标进行策略组合,以提高策略收益和策略的稳定性。本文所演示的策略仅仅是为了让初学者了解策略的大体过程。

更多内容请关注微信公众号

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐