考虑在一定时期内,大概率实现预期盈利的买卖股票问题。建立一种基于移动平均线和大数据运算寻找买入点的算法,并通过实验检验其效率。所做工作可促进我国股市运作,股市研究和量化技术的发展。 Considering that in a certain period of time, how to solve the problem of buying and selling stocks to achieve expected profits in a large probability. An algorithm based on moving average and big data operation to find the stock buying point is established, and its efficiency is tested by experiment. The work we have done can promote the development of stock market operation, stock market research and quantitative technology in China.
徐崤笑,王立柱,程丛电
沈阳师范大学数学与系统科学学院,辽宁 沈阳
收稿日期:2019年12月9日;录用日期:2019年12月26日;发布日期:2020年1月2日
考虑在一定时期内,大概率实现预期盈利的买卖股票问题。建立一种基于移动平均线和大数据运算寻找买入点的算法,并通过实验检验其效率。所做工作可促进我国股市运作,股市研究和量化技术的发展。
关键词 :均线,股价,数据,算法,实验
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
中国股票市场自其产生以来,经过三十年来的发展目前在我国经济发展中有着举足轻重的地位,股票市场有拓宽企业融资渠道、解决企业生存发展问题,为企业融资开辟平台的作用,同时炒股也可为广大投资者分享企业利润提供一个平台,也可培养个人艰苦奋斗的精神。总之,股市投资是国家经济发展的重要途径之一,也是国民致富的重要途径之一。因此,股市受到了广泛的关注与研究。例如潘水洋等 [
移动平均线具有简单、有效、稳定等特点是当今预测股价走势等最重要的技术方法,如何确定买卖点是股市投资者最关心的问题。如果想要在股市中大概率的赚取利润,就不能不研究这一问题。现已有不少学者从移动平均线的角度出发研究股市与确定炒股买卖点问题。例如,萌生 [
鉴于上述背景,本文试基于移动平均线,给出一种通过大数据分析寻找大概率盈利的炒股方法。
本节进行符号说明与做必要的定义。
给定一支股票S,我们分别以 P i o , P i c , P i l , P i h 表示交易日i的开盘价,收盘价,最低价和最高价。令 P ¯ i = 1 4 ( P i o + P i c + P i l + P i h ) ,称其为i交易日的四点平均价,或F平均价,简称i交易日的均价。称
P ¯ ( t , l ) = 1 l ∑ i = 1 l P ¯ t + i 。
为t交易日的后l日F平均价,其中 t + i 表示交易日t之前的第i个交易日。
在t交易日,购买一股股票,用 O ( t , f ) 表示预期往后f日的盈利值,叫做未来f日的盈利目标。称考虑如何大概率实现盈利 O ( t , f ) 的问题为S-RFPP (f),简称RFPP。
下面,我们以算法的形式给出一种大概率实现未来f日的盈利目标的买股方法。
注1:由于我们主要是考虑买入后的成功率问题,简明起见,所有提及买入均按买入一股理解,对于多量买入的情况,可通过乘以买入量系数的方法进行调整处理。
本节建立RFPO算法,通过该算法给出一种争取在未来f日内实现预期盈利目标的买股方法。
股民买股票时都希望在一定时期内大概率盈利。当价格在一定程度低于某种平均值(或说处于某种均线下方)时买入是寻求大概率盈利的一种主要方法,低少了不利于盈利,低多了又不容易买到,究竟以低多少为确定买入点的标准呢?为了提高收益率,我们不仅应当考虑买到的成功率,还应当考虑买到的可能性,这既是一个具有实际意义,很值得研究的问题,又是一个相当复杂,很不容易研究的问题。为了降低难度,并利于实施量化技术(通过数量化方式及计算机程序化发出买卖指令,以获取稳定收益为目的的交易方式),我们在一定条件下进行研究。限定问题RFPP,并假设期望买到后以概率r盈利,且只在 P ¯ ( t , l ) 值之下买入。我们试探索能够使得买到后至少盈利 O ( t , f ) 的概率大于r,且买到的可能性较大的方法。设 O ( t , f ) = v , P i o , P i c , P i l , P i h , i = 1 , 2 , ⋯ , L + f + l ,为最近的 ( L + f + l ) 个历史数据,并确定在当前价低于 ( P ¯ ( t , l ) − δ ) , δ > 0 时可以买入,对 t = f + 1 , f + 2 , ⋯ , f + L 这L个交易日进行复盘,以 P t l 代替当前价,试看有多少个交易日可以买到,对于买到的交易日又能够有多少个交易日可以成功盈利v。设有I
个交易日可以买到,有N个交易日可以成功,且过程具有充分的平稳性,则当 N I > r 时,可以认为在当
前按 ( P ¯ ( t , l ) − δ ) 价格买入股票可获得盈利v的概率大于r。如何找到满足条件的 δ 呢?我们以一个适当的 ε 做为间隔尺度,依次按 δ 为 ε , 2 ε , ⋯ ,通过实际运算进行寻找,且为了防止由于 δ 过大而导致买入的
可能性太小,我们以首先满足 N I > r 的 δ 作为寻找对象。这就是本文寻找买入点的主导思想。
显然 L , l 过小,数据量过小,不能充分体现过程的内涵;另外,运算速度太慢不能及时给出答案也不行,所以 L , l 要充分大,运算速度要充分地快,也就是说我们必须从大数据的视域出发,做到快速摄取大量数据,快速处理大量数据。为此我们根据上述主导思想,设计了如下的算法RFPO,以其给出我们的方法。
RFPO算法
问题:S-RFPP (f)。
输入: f , l , r , L , v , ε , P i o , P i c , P i l , P i h , i = 1 , 2 , ⋯ , L + f + l ; p 。
(其中 f , l , r , L , v , ε > 0 ;f为正整数,表示未来日数;l为正整数,表示 P ¯ ( t , l ) 中的交易日数;r是一个表示成功率的参变量; v = O ( t , f ) ; ε 是一个表示运行尺度的参变量; P i o , P i c , P i l , P i h 分别表示交易日i的开盘价、收盘价、最低价和最高价; L + f + l 为运用历史数据的个数;p为当前股价;1表示当前交易日,2表示1的前一个交易日,…, L + f + l 表示 L + f + l − 1 的前一个交易日)。
输出:Y或N (其中,Y表示可以按当前股价p购买股票;N表示不可以购买股票)。
过程:
1. 命 δ : = 0 。
2. 置 δ : = δ + ε ; I : = 0 ; N : = 0 。
3. 关于 t = f + 1 , f + 2 , ⋯ , f + L ,进行下面各步。
(1) 计算 P ¯ ( t , l ) 。
(2) 如 P t l < P ¯ ( t , l ) − δ ,置 I : = I + 1 ;然后考虑
max { P i h : i = t − 1 , t − 2 , ⋯ , t − f } > P ¯ ( t , l ) − δ + v ,
不等式成立,置 N : = N + 1 。
4. (1) I = 0 。转步5。
(2) (i) N I ≤ r 。返回第二步。
(ii) N I > r 。转步6。
5. 输出N。
6. (1) 计算 P ¯ ( 0 , l ) ,(0表示当前交易日)。
(2) (i) p > P ¯ ( 0 , l ) − δ 。输出N。
(ii) p ≤ P ¯ ( 0 , l ) − δ 。输出Y。
针对沪市股票中船科技(600072),选取2015年12月24日至2016年11月25日这期间的220个交易日(去掉周六周日和法定节假日)每日的开盘价、收盘价、最高价、最低价为实验数据,取 l = 40 , L = 90 , f = 30 , r = 0.6 , v = 1.4 , ε = 0.1 ,依次以2016年8月25日至2016年10月14日这期间的30个交易日为当前时刻,进行实验。在实验中以当前日的最低价为当前价。
1. 以2016年8月25日为当前交易日0时, i = 1 (2016年8月24日),2 (2016年8月23日),…, ( L + f + l ) (2015年12月24日),将数据和参量代入算法中,得到结果:可以买入,不成功;
2. 以2016年8月26日为当前交易日0时, i = 1 (2016年8月25日),2 (2016年8月24日),…, ( L + f + l ) (2015年12月25日),将数据和参量代入算法中,得到结果:可以买入,不成功;
……
30. 以2016年10月14日为当前交易日0时, i = 1 (2016年10月13日),2 (2016年10月12日),… ( L + f + l ) (2016年2月4日),将数据和参量代入算法中,得到结果:不可买入。
详细结果见表1。
由表1可见,在30个实验交易日中,有20个交易日可以买入,在可以买入的交易日中有18个成功,成功率达60%以上,可见算法有效。
注2:1) 我们的实验是通过运用MATLAB语言编出RFPO算法的计算机运行程序,然后在一台型号为Inspiron1427FT02、CPU为Intel(R) Core(TM)2 Duo CPU T6500 @2.10GHz 2.10GHz的计算机上运行所编出的程序进行大数据运算而完成的。2) 算法RFPO不仅参变量较多,而且可以从炒股软件中快速提取大量数据,快速进行运算,及时回答我们是否可以按当前价买入股票的问题,充分地体现了大数据的特点。3) 由于时间和篇幅等原因,在此我们暂未讨论怎样选择合适的参量r,实验是在 r = 0.6 的条件下进行的,如何优化地确定r是一个很值得继续研究的问题。4) 为了降低难度和便于使用量化技术,算法RFPO的主要意图限于发展一种买入股票后可大概率盈利,且买入可能性较大的方法,没有考虑不成功时的盈亏问题;如何在不成功时控制盈亏,使得尽量少亏损多盈利,并进而考虑如何使用资金,争取较大收益率等,也是很值得继续研究的问题。
本文尝试地建立了一种基于大数据与平均线的选股方法,并通过实验说明了它的效率,运用沪市股票中船科技(600072) 2015年至2016年的220个交易日的数据,进行实验,结果表明算法有效。由于水平有限,不足之处很多,敬望各位专家批评指正。如何优化的确定r,如何优化的运用资金,以及收益率如何等是很值得进一步研究的问题。希望该项工作能够激发大家关于这方面的研究兴趣,希望能够有更多的学者和我们一起从事这方面的研究,共同促进我国量化技术发展。
当前日期 | 可否买入 | 是否成功 | 当前日期 | 可否买入 | 是否成功 |
---|---|---|---|---|---|
2016.8.25 | 可以买入 | 不成功 | 2016.9.19 | 可以买入 | 成功 |
2016.8.26 | 可以买入 | 不成功 | 2016.9.20 | 可以买入 | 成功 |
2016.8.29 | 可以买入 | 成功 | 2016.9.21 | 不可买入 | —— |
2016.8.30 | 可以买入 | 成功 | 2016.9.22 | 不可买入 | —— |
2016.8.31 | 可以买入 | 成功 | 2016.9.23 | 可以买入 | 成功 |
2016.9.1 | 可以买入 | 成功 | 2016.9.26 | 可以买入 | 成功 |
2016.9.2 | 可以买入 | 成功 | 2016.9.27 | 可以买入 | 成功 |
2016.9.5 | 可以买入 | 成功 | 2016.9.28 | 可以买入 | 成功 |
2016.9.6 | 可以买入 | 成功 | 2016.9.29 | 可以买入 | 成功 |
2016.9.7 | 可以买入 | 成功 | 2016.9.30 | 不可买入 | —— |
2016.9.8 | 不可买入 | —— | 2016.10.10 | 不可买入 | —— |
2016.9.9 | 不可买入 | —— | 2016.10.11 | 不可买入 | —— |
2016.9.12 | 可以买入 | 成功 | 2016.10.12 | 不可买入 | —— |
2016.9.13 | 可以买入 | 成功 | 2016.10.13 | 不可买入 | —— |
2016.9.14 | 可以买入 | 成功 | 2016.10.14 | 不可买入 | —— |
表1. 实验结果汇集表
辽宁省自然科学基金资助项目(20170540821)。
论文最后感谢辽宁省自然科学基金的资助,感谢程丛电导师、王立柱老师的指导和审稿人提出的建议。
徐崤笑,王立柱,程丛电. 一种基于移动平均价和大数据分析的寻找股票买入点的方法A Method of Finding Stock Buying Point Based on Moving Average Price and Big Data Analysis[J]. 统计学与应用, 2020, 09(01): 1-6. https://doi.org/10.12677/SA.2020.91001