量化交易简要入门(一)

作为一个一直号称在这个领域学习研究的业余人士,我想把自己这些年的一些实践经验分享出来,希望让各类对金融量化感兴趣的小白同学有所收获。

首先提到金融量化或者量化交易这些概念时,很多人觉得有点摸不着头脑,感觉是很专业的东西,其实很多事情都是因为起名字起得抽象了,所以才变得复杂,万物原理都相通。 当然,术业有专攻,作为非专业人士的我只能给大家探探路。 下面从几个方面来说一下我接触的这个领域的内容。

我们学习一个领域的知识需要清楚我们的目标是什么,对于量化交易来讲,肯定是要通过一定手段用计算机做数据分析来帮助我们投资金融产品,进而达到收益最大化的目的。 那么这个量化就可以理解为通过人脑是很难实现这个过程的,必须借助运算能力很强的计算机来完成。


工欲善其事必先利其器,通过计算机运算或者说特定程序的计算来实现这个目标需要几个步骤。 并且每一个步骤都要涉及很多工具或者技术。 

大概列举一下,比如大家经常说的通过 Python语言来做量化交易分析,R语言, Matlab 等等。 这类的工具和技术有很多很多,甚至很多别人不常用的,你如果很熟悉也可以拿过来用,工具不重要,重要的是你如何得到预期的效果。 

我们先用 Python 来举例, 那说了这么多,想必各位看官也清楚了, 做这个领域吧,你多少得懂一些编程语言, 另外就是数学,统计学,金融学这些, 其实数据和统计理论也不需要太多, 如果仅仅作为实用角度来看,只要懂编程,懂一些金融产品的逻辑,你就可以大胆的开始了。

对于通过 Python 语言来做量化分析, Python本身这块就不多说了, Python 最大的优势在于有很多现成的类库可以用于做大数据分析和计算,甚至在人工智能领域都有很多成熟的类库。 先天具备数据分析的优势,这是很多编程语言不能比拟的,这也就是为什么一提量化交易,大家都用 Python 的主要原因。  我们拿投资股票来举例,对于股票来讲,国内的股市一般的逻辑是做多,也就是买入后,等待股价上涨,然后获利卖出。 当然也有做空的逻辑,我们就不细说,我们就先分析一下做多的逻辑。 可以简单的认为一个完整的交易分成选股,买入,持股,卖出这几个步骤。 那么我们用 Python 能干什么事呢?  

首先我们不管是做什么样的数据分析,一定要有数据源,不管是大数据分析,还是金融量化交易分析,如果我们拿股票来举例,我们就要有股票的行情数据源,K线数据,这个很好理解吧(K线怎么看下一次再讲),而且这个数据源也是相当重要的,数据准确性决定了分析的结果。 目前市场上有很多免费的股票行情数据源可以用,当然,这里说的股票行情只是历史行情,并不是实时行情,实时行情是另一回事。 免费的数据源比如 Tushare, Baostock 都可以用。 

那么有了数据源,我们就要开始把刚才说的四个步骤去想办法模拟出来。

一般通过 Python 的 API 接口拉取下来的数据可以保存成 csv 格式的文件。 方便后续使用,甚至用于其它编程语言的调用。

量化交易简要入门(一)_第1张图片

(这个图是K线的数据文件,可以看到里面有开盘价,收盘价,交易量和交易日期等数据)

对于模拟交易过程的每一个步骤,比如先说选股, 假设我们的选股逻辑比较简单,只选择某一天涨停的股票,然后我们买入的逻辑也很简单,前一天涨停,我们第二天开盘就介入,那么就进入了持仓阶段,卖出可以暂定一个这样的逻辑,就是盈利10个点止盈,亏损5个点止损。  这样我们就假想了一个完整的交易过程, 涨停的逻辑很好判断, 只要遍历所有的K线数据,某一天如果涨停的状态,就进入我们交易的逻辑中, 对于这个涨停状态判断,有一些数据源中会又标识,也有没有的,这个可以通过开盘价和收盘价来计算出来,

股票涨停价的算法:涨停价=上个交易日收盘价+上个交易日收盘价*10%

当然,现在的创业板和科创板都是20%的涨停限制了,这个我们还是按照沪深主板的规则来算。  如果对程序不熟悉的小伙伴其实对理解这个逻辑还是有点困难, 但是如果你了解编程,大概就会有个思路, 比如先加载 每只股票的 csv 文件,然后把需要判断的时间区间设定好, 在这个时间区间内去按照涨停逻辑 把这些股票筛选出来,就完成了第一步的选股, 那么买入逻辑很简单,只是按照第二天开盘价买入, 所以你需要创建一个交易类, 每一次选出来的股票后,创建一个交易类的对象,把买入时间,买入价格保存在这个交易对象中,然后就是再次遍历后续的 K线行情, 如果某一天的收盘价大于买入价的比如 10个点, 那么就触发了卖出逻辑, 就可以按照下一个交易日的开盘价或者收盘价卖出。 小于5个点也是卖出,止损卖出。

量化交易简要入门(一)_第2张图片


量化交易简要入门(一)_第3张图片

 (以上是写了一段伪代码,并不是完整且可运行的代码)

针对一只股票,它可能在不同的时段都有涨停发生,整个过程就会变成在一定时间段内,可能发生多次交易。 比如2019年12月到2020年6月,某一只股票出现过3次涨停,相应的我们的代码就会循环创建三个交易对象来模拟这三次交易过程,进而计算交易结果。

好了,非常简单的过程就这么描述完了, 试想一下,这个逻辑不旦针对同一只股票可以按照时间段来分析,针对不同的股票也一样的道理, 这样就相当于我们可以同时验证几千只股票这个交易逻辑的结果,来验证我们的交易思路是否有效。  这里就引出了另一个概念,叫做量化回测。 回测的意思就是我们通过历史数据来模拟交易逻辑,去验证这个交易思路是否有效。

作为第一篇文章,我们暂时告一段落,我仅仅是描述了一下量化交易中,针对股票类产品如何通过 Python 去做一个简单的尝试,至于 Python 的类库比如 Numpy, Pandas 这些都是很基础的用于数据处理的类库,这些基础知识都要具备的,另外就是股票的交易逻辑,什么是 T+1 规则(为什么我刚才描述的都是下一个交易日去处理),什么叫基本面分析,什么叫技术面分析 等等,在金融量化交易这个领域有太多太多的知识,如果你感兴趣,可以持续关注我的内容,并欢迎留言指正。 下一次我会讲一下股票技术面分析都包含什么。 
 

你可能感兴趣的:(量化交易,数据分析,人工智能,big,data,金融,编程)