【《基于python的股票量化研究》16000字(论文)】_第1页
【《基于python的股票量化研究》16000字(论文)】_第2页
【《基于python的股票量化研究》16000字(论文)】_第3页
【《基于python的股票量化研究》16000字(论文)】_第4页
【《基于python的股票量化研究》16000字(论文)】_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于python的股票量化研究297420250摘要 217909746031引言 317793562691.1课题背景及意义 319310286081.1.1课题背景 320249411921.1.2研究意义 420132599352研究内容与方法 411073854132.1Python语言 417333513892.2价值投资与量化投资理论 518211233682.3趋势追踪策略 616835089322.3.1均线交叉交易策略 616375708992.3.2布林带策略 85036795412.4衡量策略的风险指标 921089927602.4.1阿尔法系数与贝塔系数 916237235852.4.2夏普比率 918475906662.4.3最大回撤 919902714893基于python的量化投资方案 1012876299513.1量化基本构建思想 1010038756383.2数据获取 1015063170343.3量化策略和效果分析 1121331596023.3.1无止盈止损的均线策略 1119214277963.3.2附带止盈止损的均线策略 1417253674333.3.3无止盈止损的布林带策略 187787609903.3.4附带止盈止损的布林带策略 191870614112结论 201636109914参考文献 24摘要在股市,有许多指标和数据可以预示着大盘走向,随着股票市场的快速发展和壮大,股票数据急剧膨胀。如何统计分析这些海量股票信息,并通过一系列的方法挖掘其内在的信息和价值,是投资者和监管层比较关心的问题。上市公司财务数据的分类评价和股票价格预测的研究工作,不仅可以把握股票市场未来动态变化,而且可以引导股票投资者合理投资,提高收益。在将来的股票市场中,对股票成交量的预测会变得至关重要。本文通过python软件实现研究股票的收益率的数字特征,本文以沪深300所含成分股作为股票池,为了使得该模型更具有时效性,选取样本期间为2020年1月1日至2022年2月1日的日度数据,通过趋势策略理论,利用双均线和布林带理论对比分析决策收益率。关键词:Python;趋势策略;量化投资策略;回测1引言1.1课题背景及意义1.1.1课题背景股票市场平稳健康发展对于国家的经济稳定和金融安全具有重大意义。股票市场波动是股票市场众多投资者交易的合力结果,投资者的交易决策又受到货币政策不确定性和投资者情绪等因素的影响。2020年在经历疫情期间,多国股市出现前所未有的密集熔断现象。其中,美股触发4次熔断,跌幅一度超过30%,而我国较快的控制住了疫情,减少了市场波动。在2021年,虽然小范围疫情反反复复,但投资市场情绪在渐渐得回暖,整体行情A股和美股都有了争气的表现,各主要指数突破了新高。其中上证指数、深证成指、创业板指全年分别上涨4.8%、2.67%、12.02%,均连涨三年。中国两大证券交易所,上海证券交易所和深圳证券交易所在1990年成立,之后的29年中,中国股市快速发展。2021年也是见证历史的一年。这一年,北京证券交易所设立,京沪深三市开始同步运行。A股跨过90万亿市值门槛,上市公司数量逼近4700家,年度总成交额、北向资金流入规模同步刷新历史新高。2021年,A股全年成交额达到257.2万亿元,一举打破2015年的纪录,站上A股全年成交额的历史巅峰。随着中国新冠疫苗接种的普及以及疫情快速防控应对措施的实施,对外开放不断扩大,经济恢复进一步取得明显成效,彰显了我国经济发展的强大韧性和旺盛活力。金融行业作为国民经济当中不可或缺的组成部分,与人们的生活日常关系非常密切,不断影响着各个行业的发展。金融数据的来源多,时间跨度大,内容繁杂,各式各样的指数、模型多,即使是一直从事金融行业的工作者,量化这项工作也是个不小的难度挑战。在国外,量化投资已有四十多年的发展历史。国外量化投资经济的发展历程可以总结为四个阶段:一是对冲阶段。这一时期对相关的理论知识与技术进行研究,主要是为量化投资的实践打下基础。二是杠杆阶段。由于原有的投资思路创收比较低,就要通过放杠杆来提高收益,增加量化投资的实践应用。三是多策略阶段。虽然提高了收益,但收益并一定稳定,所以运用多种策略,以提高收益的稳定性。四是量化投资阶段。量化投资飞速发展,策略更具模型化和精确化,尤为重视风险的管理。关于量化投资策略,ZarembaAdam和ShemerJacob在书中介绍了如何在国际市场上成功运用量化投资策略来管理资金,并且在20年间70多个国家进行测试,结合实际描述了他们的理论基础以及实施细节,提供了很好的量化实践应用案例[1]。对比国内,量化投资的发展可以总结为三个阶段:一是起步阶段。我国金融储备设备不够完善,刚开始量化投资的发展速度缓慢。二是成长阶段。对量化投资方式的应用有了进一步发展。三是迅速发展阶段。量化投资的发展迅速,运用量化投资的方式更加广泛[2]。在国内,李成林对于关于国内量化投资及其策略,研究了移动平均线交易策略的有效性及其影响因素。通过有效策略应用进行投资研究,发现过去8年测试时间里,部分策略可以获得超额收益,因此建议投资者在实际应用中可以运用时间长度较长的移动平均线策略增加收益率,降低风险[3]。对于国内量化投资的发展是一个很好的开始。1.1.2研究意义随着信息技术和金融行业的发展,金融数据越来越多且纷繁复杂,每天都有大批数据需要处理。因此从庞大复杂的数据中提取出可以利用的有效信息并非易事。因金融数据的复杂和随机性,并且数据背后隐藏的规律很难被发现也为决策分析加大了处理难度。本文运用基于Python平台构建的金融数据分析系统进行量化分析。Python作为一种计算机编程语言,由于更高的可读性、更全面的集成方法、更易于使用和理解等优点,被广泛用在金融领域的数据分析。从广义上来说,数据分析就是从数据中收集海量的数据,例如读取、计算、存储、可视化、分析和其他技术,发现背后隐藏的信息,为决策提供参考。数据分析是计算机科学的一个多学科分支,也是挖掘数据价值的重要手段和技术。与传统的数据处理方法相比,在数据分析的过程中,Python在进行数据分析和收集方面的优势更加明显,针对传统数据中的不足之处进行补充弥补,更好地提高数据信息的挖掘效果。当对于学习难度小,但是拥有多种语言建构的情况时,可以为工作人员提供方便,减轻了工作人员的工作压力,提高了工作效率。随着Python编程语言越来越被广泛使用,凭借其自身强大的数据挖掘功能,发展的空间也越来越大。在完成所需要的数据收集和分析后,确保数据信息的真实性、可靠性是Python语言的关键,充分发挥出了大数据时效性和价值性的功能。在金融分析中,判断市场的主要趋势来制定交易策略主要是通过研究市场的行为,分析趋势的变化程度、成交价、交易量等指标来进行量化处理。分析方法有指标法、波浪法、形态法等。其中指标法是通过随机指标、平滑异同移动平均线、移动平均线等量化指标根据趋势来分析价格走势。在了解金融数据的过程中,涉及的知识面广,数据多,大大增加了从业者对所需数据的处理难度。当今社会,受国家和经济发展的影响,人们是越来越富有,手上的余钱越来越多,投资理财的观念也逐渐增强。对于普通投资者来说,买卖的随意性极大,容易受短期市场波动而影响交易活动。为降低投资理财的风险,避免情绪化带来的损失,以及加强对经济发展趋势的了解,对金融数据进行分析显得尤为重要[4]。2研究内容与方法2.1Python语言作为一种支持面向对象特性且具有高度封装特点的程序设计语言和高级程序编写语言,Python简单且易操作。在编写Python代码时,完全不需要考虑所写的应用语言程序如何使用。因为具有可移植性的特点,让Python语言可以轻轻松松得被“移植”到很多平台上。还有其开源的本质,根据理论,Python语言可以适用于各种平台上。在编写过程中,可以直接从源代码运行Python编写的语言,并且不需要生成可执行文件。随着数据收集和分析的不断发展,Python编程语言成为了数据分析的首选语言,在数据分析领域中具有编写简单,易入门的优势。有着与C语言等其他编程语言无法比拟的优势,在计算机中得到了广泛的应用。除此之外,Python编程语言的功能之所以如此强大,很大程度是借助了第三方库的帮助。这些第三方库功能齐全,统一接口,为数据的分析提供了便利。拥有了丰富的第三方资源库的支持,还有结合性的强大,让Python语言拥有多种方式和接口,可以更方便快捷的与其他编程语言结合。如C++、C#、Java等程序设计语言都可以作为Python的开发语言来进行金融数据的采集。Python作为一种开源语言,具有丰富的采集工具,可以使用C语言进行扩充模块的编写,也可以使用第三方库,灵活性好,因此使用Python进行金融数据采集,可以获取更加准确的数据内容。减轻了使用人员的工作压力,提高了工作效率。此外,在完成相应的数据收集和分析之后,确保数据信息的真实可靠是Python语言的关键,充分发挥出了大数据时效性的功能。此外,还有丰富的工具集让Python不仅可以进行简单脚本的程序编写,而且可以适用于大型软件的开发。Python中常用的第三方库有ipython、numpy、pandas等等,Numpy是Python的基础工具包,具有存储效率高和矢量运算能力高的特点,可以对某一块的数据进行快速运算,对磁盘和内存中的文件进行操作,集成了C语言的功能模块。Numpy还为Python提供了一个而简单易操作的CAPI,外部库也可以通过Numpy可以轻松将数据传递回Python。Pandas是Python编程语言进行数据分析中最重要等第三方库。在Pandas库中有各式各样的数据结构,让数据分析的工作变得更加简单高效。并且Pandas以Numpy为基础,在进行操作过程中以Numpy为中心,因此可以让数据分析变得更加简单清楚,节约了成本,提高了开发效率[5]。2.2价值投资与量化投资理论1934年在《证券分析》一书中,最先由本杰明·格林厄姆中提出“价值投资”这个理念,后来经过沃伦·巴菲特和彼得·林奇等大投资家补充扩展而发展为今天的理论。其理论的核心观点有两个:一是市场并非是完全有效的,甚至认为市场是无效的。正是因为市场并非有效,才让价值投资者有机会在股价低于其本身价值时买入、在高于其价值时卖出,以此来获利;二是下跌的股价不仅不是风险,甚至可以说是一个获利的机会,可以以一个更“便宜”的价格买入有价值股票。投资的本质是对未来的预测,只要是预测就有可能出错。因此我们在做预测的时,就要留出足够的容错空间,这个空间又叫安全边际。投资者在买入股票时,其股价一定要大大低于公司的内在价值,只有这样才能大大减少预测失误而造成的损失。在入股时,选择那些低市盈率的公司的股票,这些是反映在公司的财务指标上的,就是相对于公司的盈利能力或账面价值,市场给出的价格明显偏低的股票。价值投资更多时候体现的是一种主观的定性分析,是一个决策的过程。近几十年来,随着计算机技术的快速发展,数据量增大,兴起了一种与定性分析相对的高效的定量分析技术———量化投资。量化投资在国外已经有了四十年的发展历史,但在国内还是近十年出现的新鲜物。相比较于其他投资策略,量化投资在国外的运用已取得了更佳的成绩。所谓量化投资,是把计算机技术与数学、统计学等学科结合起来,运用计算机强大的数据挖掘与处理能力,从大量的历史数据中提炼出有价值的信息,通过计算机编程技术实现程序化交易的一种投资方法[6]。在投资决策方面,它通过计算机分析和事先设定好的信号而自动做出决策,既能避免主观情绪的影响又能高效率的做出决策。量化投资的内容主要包括量化选股、高频交易、量化择时、商品期货套利、股指期货套利、统计套利等等。本文通过python语言实现量化策略,有传统的投资决策所无法比拟的效率和便利。2.3趋势追踪策略当今普遍接受的证券投资分析方法为以下6种:量化分析法,技术分析法、基本分析法、演化分析法、投资组合分析法和行为金融分析法。道氏理论就是其中通过分析当前价格来推断未来价格走向的一种技术理论方法。从道氏理论的观点出发,因股票会随着市场的趋势同向变化来反映市场趋势和状况,故其认为股票指数与任何市场都有三种趋势。其分别为:主要趋势,持续一年或以上,大部分股票将随大市上升或下跌,幅度一般超过20%;中期趋势,与基本趋势完全相反的方向,持续期超过三星期,幅度为基本趋势的三分之一至三分之二;短期趋势,只反映股票价格的短期变化,持续时间不超过六天。任何市场中,这三种趋势必然同时存在。除此之外,确认指数是道氏理论中最重要的原则之一,上证指数和深成指在我国是两种重要的指数。只有两种指数相互确认,也就是呈现出相同或相近的波动时,趋势才能被确认。只有一个指数变化时并不能成为趋势反转的有效信号。相互印证才能指向事物的本质。用道氏理论观察市场趋势,进行分析时我们发现,一条平均指数的“线”,在足够长的时间内,在正常的交易量下,连续的收盘价在一个狭窄的范围内波动,暗示着股民囤积行为或抛售行为。而且一旦平均指数的运动超出这条线(上升或下降),可以认为是市场运动的方向将出现变化[7]。趋势择时的基本思想来自于技术分析,技术分析认为趋势存在延续性,因此只要找到趋势方向,跟随操作即可。而趋势策略相对其他量化策略具有理论简单、方便操作、稳定性高等特点,被广泛应用于各类资产的投资市场,而数字货币价格的剧烈波动性和其24小时不间断交易规则为量化策略提供了很好的交易环境。技术指标是技术分析中使用最多的一种方法,通过考虑市场行为的多个方面建立一个数学模型,并给出完整的数学计算公式,从而得到一个体现证券市场的某个方面内在实质的数字,即所谓的技术指标值。指标值的具体数值和相互间关系直接反映证券市场所处的状态,为操作行为提供指导作用。目前证券市场上的技术指标可分为“趋势型指标”、“反趋势型指标”、“能量指标”、“大盘指标”、“压力支撑指标”等类别。移动平均线(MA)是一种常用的趋势型指标,由JosephE.Granville于20世纪中期提出来。它是当今运用最普遍的技术指标之一,帮助交易者确认现有趋势、判断将出现的趋势、发现过度延伸而即将发转的趋势。后来又逐渐衍生出其他类型的均线,如平滑异同移动平均线、三重指数平滑平均线等。这些均线理论常用两根线的交叉作为交易信号,并以此作为买卖时点的判断。均线理论提供了一种简单有效的使价格序列平滑并且使趋势更易于辨认的方法[8]。2.3.1均线交叉交易策略从股市的价格波动我们可以看出价格的波动均是在一定的区间内围绕着中心点在运动,将平均成本发散为移动平均线再经过不断的推敲和观点的提炼形成了如今呈现在大家面前的统计学理论基础。把过去一段时间内的价格以连线的形成表现出来则可以观察出期间内的价格变动,进而对未来的价格走动趋势进行短期或长期的预测。移动平均法是用一组最近的实际数据值来预测未来一期或几期内公司产品的需求量、公司产能等的一种常用方法。若设某证券的收盘价为Pt,该证券k个时间单位的移动平均为Mt(k),则究最传统的均线交叉策略有公式为:M经久不衰的均线技术指标,移动平均线(MA)是技术分析中的常用工具。移动平均线作为一类非常简单的数学模型,被广泛用于股票、期货、外汇等金融市场的分析中,可谓简单、有效、应用广。另一方面,许多其他的技术指标,也建立在移动平均线的基础之上,比如著名的MACD和EMA等。因此,移动平均线在技术分析领域占有重要地位。移动平均法适用于即期预测。当产品需求既不快速增长也不快速下降,且不存在季节性因素时,移动平均法能有效地消除预测中的随机波动,是非常有用的。移动平均法根据预测时使用的各元素的权重不同,可以分为:简单移动平均和加权移动平均[9]。提起对移动平均线理论的应用则不能忽略“葛兰维八大法则”,因其易学易懂易用的特点被无数投资者学习并广发应用在量化投资领域,得到了非常高的评价。葛兰维均线法则的应用主要体现在两个方面,一是股价与某单条均线之间的位置关系,二是通过两条均线交叉组合后观察得出的关系。通过对股价和单条均线的对比分析以及两条甚至多条长短均线间不同排列及交叉行为做出的研究分析来归纳股价变动趋势和规律,进而判断买卖时机。移动均线按单位可分为日均线、月均线和年均线等;按周期时长可分为3日均线、5日均线和10日均线等。本文研究对象为周期不同的日均线,一般情况下,均线周期会以5,10,20,30,60,120,250作为主要参数。这些参数在不同的期间内计算而得的移动均线又代表着不同的趋势波动表明了不同的时间特征。周期选择的不同使移动平均线分为短期均线和长期均线,股票软件中常用的日线级别,5日就是指5日移动平均线,10日就是指10日移动平均线,更多长短期均线依次多头排列。其使用的基本思想是当短期均线向上穿过长期均线时,表明短期内价格已为上涨趋势,此时视为买进节点;当短期均线向下穿过长期均线时,表明短期内价格己为下跌趋势,此时视为卖出节点[10]。但在实际投资活动中,这些理论的支持是远远不够的。除了应用均线理论进行投资决策的判定和趋势发展识别,均线理论在其他领域也有其独到的用处,比如用来进行资金的配置和管理,比如只有20日均线上涨趋势的时候,资金使用率为不超过总资产的30%;当20、60日均线都保持上涨趋势的时候,资金使用率可以最多放大不超过总资产的50%;以此类推,来进行资金的管理安排,可以有效控制市场因为波动所带来的风险度。移动平均线因为其简单有效,被许多投资者使用,是较为普及的技术分析方法,但也有较为明显的缺憾。首先反应在趋势方向上的判断,具有较显著的滞后性,这反映在股票价格己经上涨了,但相对应的移动平均线走势依然持续降低;反之,则是反应在股票的价格早己经是下跌了,但其对应的移动平均线可能还在维系着上涨态势。如果仅仅是依靠某条移动平均线的涨跌趋势来进行买卖操作,就会因为过迟的反应,要么会错过较好的卖出机会,要么就是没能在较好的位置买进。其次则是反映在价格与均价线的位移上,以及多条均价线的交叉过程中,所表现出来的虚假信号。价格和均价线之间,可能不是真实的“突破”,这容易诱骗投资者判断错误,进而错误地买进或者卖出。还有一些情况是,看起来满足“黄金交叉”的条件,但股价却依然下跌,而看起来犹如“死亡交叉”,但股价还是在继续上涨。这些情况在实际走势中常常出现,会给实际操作带来不少困扰。也有一些研究者进一步提出新的方案,比如改变参数,通过统计模型来拟合最佳效果[11]。2.3.2布林带策略布林带线是证券市场技术分析中的一种非常经典的分析指标,它是由美国股市分析家约翰·布林根据统计学中的标准差原理设计出来的一种非常简单实用的技术分析指标。理论中,价格围绕着价值波动;现实中,一段时间内价格也是在一定范围内浮动,这个范围包括上限和下限,而布林线就是通过数学的方式来表述它。布林通道分为中轨线、上轨线和下轨线。中轨线是证券价格n日平均线,上轨线是中轨线加上m倍过去n日价格的标准差,下轨线是中轨线减去m倍过去n日价格的标准差。一般来说,上下轨两条线分别可以看成是价格的压力线和支撑线,价格在通道内上下波动。当价格波动很小时,通道较窄,即处于盘整状态,此时代表市场交易情绪较为稳定;当证券价格向上突破上轨时,预示着证券价格会有一个向上的波动趋势;当证券价格向下突破下轨时,预示着证券价格会有一个向下的波动趋势,此时代表市场波动较大[12]。当布林线开口向上,价格向上突破布林通道上轨时,说明市场处于上升状态,投资者可以依据布林指标做多;当布林线开口向下,价格向下突破布林通道下轨时,说明市场处于下降状态,投资者可以依据布林指标做空。布林线的中轨线参数可以根据不同的实际情况进行设置。根据布林线理论介绍,通常采用的长度有10、20、50等日均线。布林带一般由上轨道、中轨道移动价格平均线Mid和下轨道三条线共同组成一个通道类的指标。其中Midn的是由Pt+1-n、Pt+2-n、Pt+3-n、……,Pt-1、Pt第t期的前n个交易日的股价,根据n的不同,布林带分为日布林带、周布林带、月布林带、年布林带。布林带是JohnBollinger根综据统计学和的规律设计出来的非常实用的技术指标,全世界的投资者在股票、期货、债券等市场应用广泛。它是一种综非堆成状分析方法,由上轨、中轨和下轨线组成[12]。表示价格压力和支撑的上下轨道线和中间的移动平均线,一般情况下,价格在上下轨道之间的袋装区域内运行,而且轨道会随着价格的变化而变化,用来识别价格运行其实的中重要两个指标是带宽和相对位置指标b%。在传统的布林带策略操作中,选择两倍的标准差作为基准,选取每隔5分钟的收盘价计算得到的平均价作为中轨,根据中轨平均价得到移动平均线,然后将中轨线加减两倍的标准差(sigma)得到上轨线和下轨线。上下轨线的计算公式分别如下:Upper(t)=ma(t)+2*sigmaLower(t)=ma(t)−2*sigma2.4衡量策略的风险指标量化交易的最终目的就是为了在数字货币市场中实现长期稳定的收益并且实现最大化。衡量交易策略的好坏,不仅需要对比交易策略与基准策略的收益率,还需要对比策略资产与基准资产的风险指标,以风险指标判断是否交易策略的超额收益。就个股而言,不同的计算参数,将导致不同的择时效果。面对各种波动幅度不同、周期性不同、价格弹性等不同的股票,如果不正确理解和运用参数可能会有失客观性。因此,在进行量化择时策略构建时,需要针对个股进行策略的参数优化,检验指标不同参数的测试效果,并最终选择一个最优的参数组合。2.4.1阿尔法系数与贝塔系数贝塔系数是用来衡量投资收益率相对于业绩比较基准收益率的拟合程度,贝塔系数越大说明投资的波动性相较于业绩比较基准大。贝塔系数大于1时,则说明投资的波动性大于业绩比较基准的波动性,反之则当贝塔系数小于1时,则说明投资的波动性小于业绩比较基准的波动性。阿尔法系数是指投资收益率的绝对数与贝塔系数的收益率的差额。换言之即实际风险回报和平均预期风险回报的差额就是阿尔法系数,其公式为:α=2.4.2夏普比率夏普比率是指投资中的每单位风险可以带来的超额收益。其公式为:SℎarpRatio=其中ERp:投资组合与其报酬率;Rf一般当投资组合中有风险资产,都会使用夏普比率来判断这个投资组合的优劣,若夏普比率为为正数,则代表投资组合的收益率大于波动风险,若夏普比率为负数,则代表投资组合操作风险大于收益率。2.4.3最大回撤最大回撤是指在选定周期内,选定点往后推算,净值低于选定点的最大波动幅度,其公式为:Drawdown=max其中D为某一天的净值,i为某一天,j为i后的某一天,Di为第净值,Dj为第j天的产品净值,Di为一般来说,最大回撤是用来判断一个净值类产品稳定性最直观的指标,特别是最大回撤小的产品,比较容易被投资者所接受。由于投资者往往会受曲线一时的波动而进行买卖的行为,当产品有大幅波动的时候容易做出错误的判断,故一个最大回撤较小的产品更能被投资经验偏少的散户投资者接受并持有[13]。3基于python的量化投资方案3.1量化基本构建思想所谓量化投资,是把计算机技术与数学、统计学等学科结合起来,运用计算机强大的数据挖掘与处理能力,从大量的历史数据中提炼出有价值的信息,通过计算机编程技术实现程序化交易的一种投资方法。在投资决策方面,一是量化投资通过计算机分析和事先设定好的信号而自动做出决策,能够避免主观情绪的影响,决策具有纪律性和客观性。二是决策效率高。量化投资方法借助计算机技术,能够在整个市场范围内寻找符合策略标准的标的,真正做到对投资机会的零遗漏,而且能够瞬间捕捉买卖信号,把握机会的能力更强。本文通过python语言实现量化策略,有传统的投资决策所无法比拟的高效率和客观性。接下来,我们量化投资方案的标准选择为沪深300指数的优质股票,先通过无止盈止损的均线策略在2020年1月1日到2022年2月1日进行回测,并进行策略分析回测指标数据,进一步改进策略。在附带止盈止损的条件后,使用不一样的日均线,对策略更好地优化。最后进行策略对比,得出结论。导图如下:构建信号处理数据获取数据数据分析挖掘构建信号处理数据获取数据数据分析挖掘构建策略策略修正对比分析回测构建策略策略修正对比分析回测3.2数据获取本文以沪深300所含成分股作为股票池,为了使得该模型更具有时效性,选取样本期间为2020年1月1日至2022年2月1日的日度数据,该段时间包含牛市、熊市和震荡市,即包含了股票市场可能出现的全部行情趋势。数据来源于优矿官网的金融数据库。在每日交易活动中,最高价、最低价、开盘价、收盘价四种因素对于股市的影响并不均等,最高和最低两种价格作为当日股价峰值,对于股市来说属于瞬息,投资者更多的看重开盘价和收盘价因素。特别是收盘价,大多数交易策略皆以收盘价作为交易策略设置中的买卖价格,经过了一天的市场博弈最终落点皆以收盘价为准;而开盘价作为股市开局价格,参考了前一天收盘价包含了开盘交易前的市场反馈信息。为了计算股票收益率情况,我们需要获取了开盘价,收盘价,最高价和最低价,对这四个量进行了分析。(1)开盘价开盘价又称开市价,是指某种证券在证券交易所每个交易日开市后的第一笔每股买卖成交价格。世界上大多数证券交易所都采用成交额最大原则来确定开盘价。如果开市后一段时间内(通常为半小时)某种证券没有买卖或没有成交,则取前一日的收盘价作为当日证券的开盘价。如果某证券连续数日未成交,则由证券交易所的场内中介经纪人根据客户对该证券买卖委托的价格走势提出指导价,促使成交后作为该证券的开盘价。在无形化交易市场中,如果某种证券连续数日未成交,以前一日的收盘价作为它的开盘价。(2)收盘价收盘价指沪市收盘价为当日该证券最后一笔交易前一分钟所有交易的成交量加权平均价(含最后一笔交易)。当日无成交的,以前收盘价为当日收盘价。深市的收盘价通过集合竞价的方式产生。收盘集合竞价不能产生收盘价的,以当日该证券最后一笔交易前一分钟所有交易的成交量加权平均价(含最后一笔交易)为收盘价。当日无成交的,以前一日收盘价为当日收盘价。(3)最高价/最低价最高价是指当天股票成交的各种不同价格是最高的成交价格。最低价是指当天成交的不同价格中最低成交价格。为了限制股票价格大幅度的涨跌,交易所限制股票价格变动每日只能在-10%到10%之间。涨停就是当日最高涨价,跌停就是当日股票最低降价[14]。3.3量化策略和效果分析可以粗略将某策略的收益拆解为两部分,如下面的公式:R其中R为策略收益,rwl为盈亏比,rwr为胜率,k为正则系数。胜率是指交易中盈利次数的占比。盈亏比是指一个交易段中盈利额和亏损额的比值对于不同类型的策略但表现相当,其可能会有很大差别的收益来源。比如:有的策略倾向于高盈亏比,较高的盈亏意味着趋势策略赚市场大涨大跌的钱,追求较高的盈亏比来达到盈利的目的。趋势形成时通过持仓或加仓来扩大收益,趋势结束时或方向判断错误时及时止损,可获得较高的盈亏比[15]。在其交易中可能有的交易是亏钱的,虽然亏小赚大,但总体期望是赚钱的,通常趋势策略运用的是这一种;有的策略倾向于高胜率,在交易信号频繁的情况下,总体趋势是能赚钱的,反转策略有不少属于这一类。胜率在40%以上的趋势策略,只要在盈亏比高的情况下,长期趋势下也是赚钱的。基于趋势的判断分析,接下来本文将从双均线策略和布林带策略出发,基于不同日均线的情况下对比量化策略的收益情况。3.3.1无止盈止损的均线策略接下来本文先通过技术分析中无止盈止损信号的双均线理论作为程序化交易的基础,均线金叉作为模型的买入信号,均线死叉作为模型的卖出信号。策略如下:利用短期均线MAS和长期均线MAL生成开平仓信号,MAS上穿MAL,形成做多信号,买入开仓;MAS上穿MAL,形成做空信号,卖出开仓。其中,短线为10日均线,长线为60日均线。在优矿平台(基于python语言)输入策略代码后,对2020年1月1日到2022年2月1日进行回测,得到的回测数据如下图:图1策略一回测图表1回测量化指标表年化收益率-33.4%阿尔法-0.37贝塔0.06夏普比率-0.65波动率56.8%最大回撤88.7%由回测量化指标详情表1显示,我们可以看到回测效果并不是很好,波动率和回撤率较大,干扰因素较多。从收益与风险分别来看,在2年的回测期内,收益曲线波动非常大,最大回撤率高达60.4%,年化收益率为-11.7%,收益性较差。并且夏普比率为负数,则代表投资组合操作风险大于收益率。不过,当前设置的60日均线对于大盘的反应比较滞后,有可能存在大盘在已经下跌了15%甚至更多的时候,60日均线才掉头向下。因此再次对条件进行优化,引入30日均线,及时地追踪市场的波动。由以上分析对策略进行进一步优化,将策略条件设置为短线为10日均线,长线为30日均线,对2020年1月1日到2022年2月1日再次进行回测,得到的回测数据如下图:图2策略二回测图表2回测量化指标表年化收益率-11.7%阿尔法-0.12贝塔-0.50夏普比率-0.29波动率53.2%最大回撤60.4%由回测量化指标详情表2显示,我们可以看到回测效果依然不是很好。虽然收益率有提升,但仍为负数。波动率和回撤率较大,干扰因素较多。从收益与风险分别来看,在2年的回测期内,收益曲线波动非常大,最大回撤率高达60.4%年化收益率为-11.7%,收益性较差。并且夏普比率为负数,则代表投资组合操作风险大于收益率。交易次数为110次,交易费用等交易成本较大。相对短期的10日均线,20日均线可以弥补短线交易的频繁和错误,降低交易成本,同时又比60日均线等长期均线系统要更快速反应股价的变化。可以使用这一条均线作为参考标准,因为这与20日均线的本身均线特点有关系。1个月交易日通常为20天左右,对于指数还是个股都是一个比较好的观察周期,对于大盘来说可以用来即使得调整仓位,对于个股可以进行决策买与卖。因此,接下来更改短线,设置短线为20日均线,长线为60日均线,再一次进行策略对比。对2020年1月1日到2022年2月1日再次进行回测,得到的回测数据如下图:图3策略三回测图表3回测量化指标表年化收益率18.3%阿尔法0.13贝塔0.71夏普比率0.27波动率54.8%最大回撤60.6%由回测量化指标详情表3显示,我们可以看到回测效果有很大改善。收益率有提升,为18.3%。并且夏普比率变为正数,则代表投资组合操作风险小于收益率。但波动率和回撤率较大,干扰因素较多。从收益与风险分别来看,在2年的回测期内,收益曲线波动仍非常大,最大回撤率高达60.6%。交易次数为91次,交易费用等交易成本仍较大。当前设置是对每次完整交易中扣除1%手续费和滑点等交易成本,由于没有设置止盈止损的条件,买卖的交易信号过于频繁。因此,频繁交易的手续费和滑点等交易成本成为决定最终收益率的最主要影响因素。那么接下来将增加止盈止损条件来对策略进行进一步调整优化。3.3.2附带止盈止损的均线策略考虑到市场动荡情况以及大多数投资者的心理承受能力,设置亏损5%便止损,超过10%便止盈的条件进行优化。附带止盈止损条件的策略如下:利用短期均线MAS和长期均线MAL生成开平仓信号,MAS上穿MAL,形成做多信号,买入开仓;MAS上穿MAL,形成做空信号,卖出开仓。止盈:浮动盈利/保证金>10%,计算:浮动盈利×保证金比例/保证金;止损:浮动亏损/保证金<5%,计算:浮动亏损×保证金比例/保证金。其中,短线为10天均线,长线为60天均线。再次对2020年1月1日到2022年2月1日进行回测,得到的回测数据如下图:图4策略四回测图表4回测量化指标表年化收益率37.9%阿尔法0.35贝塔-0.29夏普比率1.06波动率32.6%最大回撤23.3%由回测量化指标详情表4显示,我们可以看到波动率为32.6%,回撤率为23.3%,回测效果比无止盈止损的策略有明显改善。从收益与风险分别来看,在2年的回测期内,收益曲线波动变小,年化收益率为37.9%,收益性较好。并且夏普比率为正数,则代表投资组合操作风险小于收益率。在本次回测中,交易次数为49次,可以从图4中看到,由于条件限制,一段时期内可能无买卖信号,收益率持平,观望市场找准时机,以便下一次进场盈利。因此较无止盈止损的策略比,手续费和滑点等交易成本降低。接下来与上文无止盈止损的量化策略优化步骤一样,将日均条件分别改为长线30日均线和短线20日均线再次回测。由以上分析对策略进行进一步优化,将策略条件设置为短线为10日均线,长线为30日均线,对2020年1月1日到2022年2月1日再次进行回测,得到的回测数据如下图:图5策略五回测图表5回测量化指标表年化收益率58.7%阿尔法0.56贝塔-0.27夏普比率1.58波动率35%最大回撤23.3%由回测量化指标详情表5显示,在2年的回测期内,年化收益率为58.7%,有明显的提升,收益性非常可观。夏普比率和阿尔法值较60日均线小幅度提升,策略的代表投资组合操作风险依然小于收益率。在本次回测中,交易次数为69次,较60日均线有小幅度上升。虽然手续费和滑点等交易成本小幅度上升,但30日均线比60日均线对于市场的波动,更加及时地表现出来,因此能及时止损,带来更大的收益。由以上分析对策略进行进一步优化,将策略条件设置为短线为20日均线,长线为60日均线,对2020年1月1日到2022年2月1日再次进行回测,得到的回测数据如下图:图6策略六回测图表6回测量化指标表年化收益率47.1%阿尔法0.44贝塔-0.01夏普比率1.56波动率27.9%最大回撤16%由回测量化指标详情表6显示,在2年的回测期内,整体上差别不大。年化收益率为47.1%,与10-30的均线策略比较,略微下降。波动率为27.9%,最大回撤率为16%,交易次数为45次,比较之下,有明显的下降。从上述三个附带止盈止损条件的量化策略来看,整体回测量化指标优于无止盈止损的均线策略。收益率明显比同样条件下,无止盈止损的均线策略有较大改善,能得到可观的收益率。由于设置的止盈止损条件,买卖的交易次数下降,降低了交易的手续费和滑点等交易成本,减少了波动率和最大回撤率。为了更好的对趋势策略进行研究,接下来将同样对对趋势策略里的布林带策略进行回测,为了更好的做回测量化指标对比,同样选择20日均线为基准进行策略比较。3.3.3无止盈止损的布林带策略布林带由上轨道、中轨道移动价格平均线和下轨道三条线共同组成一个,同样涉及到移动平均线,和上文双均线策略相比,考虑和计算的角度不同。以布林中轨为代表的20日均线可对强势股、热门股在2-4周以内的波段趋势及买卖点提供更强的实战指导。因此,策略选择中轨20日均线和2倍标准差为策略的参数。如果价格跌破20日均线(即布林带中轨线),那么市场处于下跌趋势中;如果价格上涨至20日均线上方,那么市场处于上涨趋势中;价格必须达到并触及布林带中轨线(20日均线)才能开始交易。同样先进行无止盈止损条件的策略,对2020年1月1日到2022年2月1日再次进行回测,得到的回测数据如下图:图7策略七回测图表7回测量化指标表年化收益率41.5%阿尔法0.37贝塔0.52夏普比率0.63波动率60.4%最大回撤44.7%由回测量化指标详情表7显示,在2年的回测期内,年化收益率为41.5%,收益性较好。并且夏普比率为正数,则代表投资组合操作风险小于收益率。从收益与风险分别来看,我们可以看到波动率为60.4%,回撤率为44.7%,交易次数为78次,交易较频繁,手续费和滑点等交易成本较大。与无止盈止损的双均线策略相比,其优势是可以很精确,可以获取确定的单根K线进行入场,随后展开短期单边走势,并且跟踪趋势,在回调到布林下轨处加仓,若继续跌破下轨则把加仓部位平掉,否则继续持仓继续加仓。盈亏比高,收益率自然就更高。3.3.4附带止盈止损的布林带策略接下来与上文均线策略优化步骤一样,将加入止盈止损条件,进行策略量化指标的对比。考虑到市场动荡情况以及大多数投资者的心理承受能力,同样设置上下轨线亏损5%便止损,超过10%便止盈的条件进行优化。再次对2020年1月1日到2022年2月1日进行回测,得到的回测数据如下图:图8策略八回测图表8回测量化指标表年化收益率62.3%阿尔法0.58贝塔0.67夏普比率1.14波动率51.7%最大回撤52.6%由回测量化指标详情表8显示,在2年的回测期内,年化收益率为62.3%,收益性较好。从收益与风险分别来看,夏普比率增大,夏普比率正数则代表投资组合操作风险小于收益率。贝塔系数小于1,说明投资者面临的风险较小。但同时我们可以看到波动率为51.7%,回撤率为52.6%,交易次数为60次。与上文附带止盈止损条件的均线量化策略相比,收益波动率较大,交易次数增加,交易成本上升。结论近年来,随着量化交易逐渐取代传统的交易方式,金融数据分析作为其中一个主要过程,对其的分析有助于提取出海量信息背后无法直观表现的规律,不论个人、企业、国家都至关重要。在此背景下,本文基于Python平台设计量化策略,以沪深300所含成分股作为股票池,选取样本期间为2020年1月1日至2022年2月1日的日度数据。该段时间包含牛市、熊市和震荡市,即包含了股票市场可能出现的全部行情趋势。数据来源于优矿官网的金融数据库。运用均线理论对量化投资策进行参数优化、增加止盈止损条件、策略改进,回测结果对比如表9:表9均线策略回测量化指标对比表策略数据年化收益率阿尔法贝塔夏普率波动率最大回撤率无止盈止损10-60均线-33.4%-0.370.06-0.6556.8%88.7%无止盈止损10-30均线-11.7%-0.12-0.50-0.2953.2%60.4%无止盈止损20-60均线18.3%0.130.710.2754.8%60.6%有止盈止损10-60均线37.9%0.35-0.291.0632.6%23.3%有止盈止损10-30均线58.7%0.56-0.271.5835%23.3%有止盈止损20-60均线47.1%0.44-0.011.5627.9%16%回测结果表明:原始无止盈止损对均线量化投资策略并不能获得较好的收益,无论是收益率、夏普比率还是投资组合最大回撤都表现很差。参数优化、增加止盈止损条件后的均线量化投资策略比原始均线量化投资策略收益率提高了三倍以上。并且新策略的夏普比率也有所提高,说明新量化策略的操作风险小于收益率,可给予的超额报酬增加。并且新策略投资组合胜率提高,最大回撤降低,这表明策略的稳定性提高。从盈利方面看,在上述所列组合当中,附带止盈止损条件的10-30均线量化策略收益率最高,年化收益率达58.7%。10日均线和30日均线的结合,能很好的跟踪半个月的股票趋势走向,及时调整买卖交易。从投资风险看,在上述所列组合当中,附带止盈止损条件的20-60均线量化策略收益率最低,波动率为27.9%,最大回撤率为16%。20日和60日均线正好是一个月和三个月的交易时长,适合中长期投资,交易次数少,看重长期趋势。从实证结果看均线策略可以在长期内抓住大的波段行情,获得超额收益,具有较好的择时效果。单纯的均线策略已经不能很好地适应市场了,在此基础上创新性的运用通过设置买入和卖出信号条件构建二者的最优组合指标模型,增强了择时的稳定性,减少了交易次数,很好的控制交易成本,有效降低风险的同时提高了收益率。除此之外,基于趋势策略和趋势指标,本文还对趋势策略里的均线理论和布林带理论分别进行参数优化、增加止盈止损条件、策略改进、策略对比,回测结果对比如表10:表10趋势策略回测量化指标对比表策略数据年化收益率阿尔法贝塔夏普率波动率最大回撤率无止盈止损20-60均线18.3%0.130.710.2754.8%60.6%有止盈止损20-60均线47.1%0.44-0.011.5627.9%16%无止盈止损20布林带41.5%0.370.520.6360.4%44.7%有止盈止损20布林带62.3%0.580.671.1451.7%52.6%基于2020年1月1日至2022年2月1日的股票市场,对布林带量化投资策略和上述均线量化策略一样进行参数优化、增加止盈止损条件、策略改进。同样在20日均线一样的条件下,均

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论