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

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,即全卖出
量化投资(一):十行代码实现一个量化交易入门程序_第1张图片
1.png

这里600050,是中国联通的股票代号,XSHG代表沪市。
若是想要对“科大讯飞”进行量化,只需要设置
g.security = '002230.XSHE',这里XSHE代表深市。

3 编译运行

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

量化投资(一):十行代码实现一个量化交易入门程序_第2张图片
2.png

这里默认的统计时间为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,对于科大讯飞股票,若使用了程序中的策略,会产生很差的收益。

量化投资(一):十行代码实现一个量化交易入门程序_第3张图片
3.png

7 总结

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




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


wechat.jpg

你可能感兴趣的:(量化投资(一):十行代码实现一个量化交易入门程序)