基于Python 语言的量化策略设计与应用优化

2019-03-04 08:31黄万铭
现代计算机 2019年1期
关键词:天数均线股票

黄万铭

(绵阳中学实验学校,绵阳621900)

0 引言

量化交易是指投资者利用计算机技术、金融工程建模等手段,将金融操作的策略加以定义和描述,并且严格按照所设定的规则去执行交易策略(买卖、价格、数量等)的自动交易方式,以协助投资决策。量化平台基本采用“初始化函数→从平台数据库取出数据→每个周期执行调仓函数→回测完成→计算统计量→绘制曲线”的逻辑过程。

目前市面上比较流行的量化平台有优矿、聚宽和米筐等;米筐支持Python3 和Java,而优矿和聚宽使用Python2;米筐和聚宽支持股票和金融期货数据,优矿平台提供股票、基金、衍生品等数据。

本策略设计采用百度公司投资的量化平台——聚宽(JoinQuant),语言编程Python,设定一亿元交易规模,最大持仓数100 只股票,模拟周期为2005~2018 年的中国股票市场。

1 需求分析

拟以多头趋势回踩策略为主决策依据,实现一个全自动化量化交易系统,并进行关键参数优化;其思路是根据若干条均线呈现出的形态,判断一支股票是否处于多头强势状态,并抓住回调的时机低位买入;再进一步分析市场状态、均线周期、买入均线和止损触发条件等关键参数对量化策略的贡献效果。

2 概要设计

系统主要功能框架如图1 所示,主要包含策略模型、牛熊判断、参数设置、买入判断、卖出判断、计算统计、绘制曲线和平台数据库等8 个部分组成。

系统主要功能框架、流程图和参数结构如图1所示。

图1 功能框架设计

图2 系统主要流程图

图3 主要参数结构设计

3 主策略算法模型

(1)选定股票池,并选定一系列参数;

(2)一组均线天数[N1,N2,N3,…,Nk]:总数量k 限制,按照从小到大排列。当相应天数的移动均线是从大到小排列时,为多头排列格局;

(3)趋势天数T:当上面指定的移动均线在T 天内都处于多头排列时,判断价格处于多头趋势;

(4)回撤均线M:当前一天的最收盘价低于M 日均线时时判断为回撤;

(5)持有股票上限num_stocks:同时最多持仓num_stocks 支股票。

(6)止损比例D 和止盈比例U:当股票价格高出买入价的U 倍,或低于买入价的D 倍时,卖出股票。

部分程序核心代码如下:for security in in_trend_stocks:

#获取历史收盘价

past_prices=attribute_history(security,g.test_ma_length,'1d','close',skip_paused=True)

#计算均线

test_ma=sum(past_prices).iloc[0]/g.test_ma_length

#获取站住均线数据

past_prices_2=attribute_history(security,g.stand_ma_length,'1d','close',skip_paused=True)

#计算均线

stand_ma=sum(past_prices_2).iloc[0]/g.stand_ma_length

#计算bias 基准线

past_prices_3=attribute_history(security,g.bias_ma_length,'1d','close',skip_paused=True)

bias_ma=sum(past_prices_3).iloc[0]/g.bias_ma_length

#获取昨日信息

previous_history=attribute_history(security,1,'1d',['close','low'])

#昨日收盘价

current_price=previous_history['close'].iloc[0]

#昨日最低价

previous_low=previous_history['low'].iloc[0]

4 关键影响因素优化

经过不同单项的海量测试,以及分析前10 大持仓、前5 大回撤区间、行业配比、Sharpe、持仓比例分析和风险控制等,发现买入均线、止损条件和均线周期影响作用较大;最佳参数设定:回撤线20 日线;止损点设定0.5%;止盈点按回撤盈利的5%;另外,因牛熊市不同市场状态差异较大,在熊市以采用BIAS 乖离率策略辅助为佳。部分策略指标分析如图4 所示。

图4 策略表现指标-持仓结构分析

图5 策略表现指标-风险分析

经过2005 年~2018 年多轮牛熊转换交替的回撤模拟,总体收益率达到1652%,平均年化收益率25%,最大回撤仅为29%,相较指数有稳定盈利。如图6 所示。

图6 优化后的策略效果-总体概览

图7 优化后的策略效果-收益分解

5 结语

本自动交易系统基于Python 语言在聚宽量化平台上开发,经过对市场状态、均线周期、止损条件和选股买入均线等关键参数的优化,并进一步通过在牛熊市采用差异化交易策略,较单独采用多头策略模式,获得了更佳的市场收益。

猜你喜欢
天数均线股票
质量管理工具在减少CT停机天数中的应用
最多几天?最少几天?
我国雾霾天数影响因素分析
我国雾霾天数影响因素分析
生日谜题
本周创出今年以来新高的股票
本周创出今年以来新高的股票
本周连续上涨3天以上的股票
近期连续涨、跌3天以上的股票
股票懂得适时卖出方为赢家