量化交易 Alpha Algo 1. 简单的双均线策略

来源:互联网 发布:德军步兵班 知乎 编辑:程序博客网 时间:2024/06/05 20:20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def init(context):
    context.stock = "000001.SZ"
    context.buy = True
    logger.info("init universe for %s" % context.stock)
    # 加入池
    set_universe([context.stock])
    context.set_benchmark = '000001.SZ'
 
# 日或分钟或实时数据更新,将会调用这个方法
def handle_data(context, data_dict):
    price30 = get_history(30'1d''close')[context.stock]
    price5 = get_history(5'1d''close')[context.stock]
    ma5 = price.mean()
    ma30 = price30.mean()
    if ma5 < ma30:
        order_target_percent(context.stock, 0)
    else:
        order_target_percent(context.stock, 1)

移动平均(英语:Moving Average,MA),是技术分析中一种分析时间序列数据的工具。移动平均类似于滤波技术,可抚平短期随机波动,反映出长期趋势或周期,也称均线。它是将某一段时间的收盘价之和除以该周期。 比如日线MA5指5天内的收盘价除以5。 移动平均线常用线有5天、10天、30天、60天、120天和240天的指标。其中,5天和10天的短期移动平均线。是短线操作的参照指标,称做日均线指标;30天和60天的是中期均线指标,称做季均线指标;120天、240天的是长期均线指标,称做年均线指标。

使用移动平均线策略,首先要进行市场分析,即判断当前市场特性,最简单的市场特性有均值回复(Mean Reversion)与动量(Momentum)两种.其中赫赫有名的配对交易策略核心即均值回复.

均值回复(Mean Reversion):(Reference from MBA lib)均值回归是指股价无论高于或低于价值中枢(或均值)都会以很高的概率向价值中枢回归的趋势。根据这个理论,股票价格总是围绕其平均值上下波动的。一种上涨或者下跌的趋势不管其延续的时间多长都不能永远持续下去,最终均值回归的规律一定会出现:涨得太多了,就会向平均值移动下跌;跌得太多了,就会向平均值移动上升。

动量交易策略则侧重于短期趋势.若短期移动平均线从下至上穿过长期移动平均线,则认为短期内股票上涨趋势较强,适合买入,反之亦然.

总体来说,均值回复偏向长期策略,而动量指标偏向短期策略.但长期,短期的分界并不确定,需根据当前市场环境与所选股票池等综合因素所决定.

下图是我用Python在本地分析了平安银行2014至2016的股价.其中从上至下为股价曲线(单日,MA5,MA30, MA100), 双均线差值曲线(MA5-MA30),单日对数收益率(log(close_today/close_yesterday)),以及每日成交量.下图中同时体现出了长期的均值回复与短期的动量因素.短期中,当MA5从下至上穿过MA30曲线后,股票有很大概率呈现强势上涨,反之亦然,体现了动量因素.而在长期过程中,MA5曲线在MA30曲线周围波动,而MA30在MA100周围波动.根据短期均值线在长期中趋于回复至长期均值线,我们又可设计出均值回复策略.将在后续文章中为大家讲解.


0 0
原创粉丝点击