快速入门python量化交易的一些干货

最近有朋友咨询我一些关于量化交易的问题,想让我给予一些指导。我之前没接触过该领域,因此我也去网上查了查资料,也算入入门。作为一个新手,我对于量化交易的理解大概就像机器学习一样,通过计算机读取股票等证券交易数据,然后经过历史数据的训练来找到好的交易策略或选股规则,最后放在股市或其他证券市场上进行自动交易。但是在网络搜集资料的时候,由于量化交易的相关资料太多,一时有眼花缭乱之感,反倒不容易找到合适的入门材料,有些入门材料要么就直接把量化交易的代码贴上,也不仔细讲;有些要么直接讲起量化交易的专门知识,比如策略编写、回测等等,搞得人一头雾水。

实际上,量化交易与机器学习有很类似地方,但是由于量化交易属于金融领域的技术应用,并且训练的都是动态数据与高频数据,且专注于未来收益,因此有其自身的操作模式,以及专业术语。本人经过一天多的了解,对此有了初步了解,且也知道了如何做出一个简单的交易策略,在此与大家分享一下,以帮助大家更好地入门,避免走弯路。由于了解的不多,可能有一定的认知偏误,还请大家多多谅解。

  1. 什么是量化交易

量化交易的概念很多地方都有讲到,这个大家也很容易理解,说白了就是用计算机技术将人的交易方式定量化,一方面可以通过计算机技术的训练与模拟,从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,并通过回测与评估来找到固定的交易模式与规则,另一方面计算机还可以严格执行已固化的策略来指导投资,避免人的非理性行为所带来的交易冲动。

由于量化交易是计算机技术与金融的结合,因此它会有很多专业的概念,比如交易策略、回测、编译运行、运行回测、评估等等,有些很高深的交易方式还是以金融理论为基础的,比如双均线、beta策略、配对交易、多因子选股等等。。

但是对于初学者来说,这些深奥的内容不需要一开始就知道,我们可以从一个简单的初级策略入手,这样就可以对量化交易有一个直接认识,在此基础上慢慢了解即可。

  1. 量化交易的基本流程

量化交易的基本流程大致如下:
image.png

在这里量化交易也遵循着一般的数据分析流程,包括输入数据、通过一系列分析构建相应模型,然后对模型进行验证和评估(即策略回测、策略分析、模拟交易),最后用于实际的预测和应用(实盘交易)。所以,在这里的策略回测就是通过真实的历史数据对策略有效性的验证,避免为错误的策略付出昂贵的代价。由于量化交易关系的经济损失,且金融市场的波动性太大,所以其数据分析过程要比一般的项目复杂,需要反复验证与评估,以保证结果的稳定。
另外,对于有些量化交易,不一定需要数据挖掘过程,可以结合自己已有的交易策略来直接构建策略,比如简单的MACD均线交叉策略,或者某几个交易日的交易量与涨跌幅的波动关系,直接构建策略,这就是简单的量化交易策略。

  1. 一个简单的量化交易入门示范
    这里讲一讲如何入门一个简单的量化交易。
    首先,要说的是对于量化交易,数据很重要,一方面需要获取数据来进行分析、回测,同时也需要将训练后的数据用于模拟交易、真实交易,这样才能保证量化交易的有效性。而对于证券交易来说,数据样本量较大且波动较大,只有在很长的时间段进行回测与评估,才能更好地得到分析结果,因此,对于量化交易来说,第一个问题就是重要的问题就是获取数据的问题。要对数据进行收集、存储、清洗、更新,以及数据取用时的便捷、速度、稳定。
    第二,量化交易的目的是用于证券交易,当一个验证过的量化交易策略形成后,就要被投入真实的股票等市场中,用于获取收益,这是一个动态的实时变化的数据池,且交易(买入/卖出)时机稍纵即逝,需要不断监控数据变化,并及时作出有效的交易指令。还要有一套量化交易的系统,要有能编写策略、执行策略、评测策略的系统。
    从这两个角度来说,量化交易不能像普通的数据分析或机器学习项目,我可以搜集以往数据并存入到表格(CSV格式等)或数据库(SQL),通过训练好的模型再对需要预测的数据集进行预测。标准的量化交易一定要与一个有很多历史数据以及不断动态变化的实时证券数据相连接,这样才能读取数据并将交易策略返回到证券市场进行验证。
    因此,从目前来说,实现一个量化交易都需要依附在相应的平台上,要么是量化交易软件(文华财经等)、互联网在线量化投资平台(聚宽、优矿、米筐等)、数据提供商(万得、Tushare等)。即便你使用爬虫等爬取或下载了一些离线数据来自己做策略,那么后期的回测与模拟交易都是个问题。所以,成熟的量化交易都需要一个平台来支撑。

    目前很多量化交易平台的语言都支持Python,下面我就以米筐(RiceQuant)为例,带你生成一个简单的量化交易策略。下图就是米筐的首页,点击右上角的登录,可以通过手机验证码的方式进行快速,也可以通过下边的微信登录。
    image.png
    登录后就会出现米筐提供的一些简单的交易策略,如下:
    image.png
    在这里我们选择股指期货MACD日回测(之所以选择该策略,是因为该策略的代码解释比较详细,大家可以明白每一步代码的含义,不了解MACD的可以参考相关资料),点击右边的code,就会进入一个交易策略编辑界面:
    image.png
    左边就是编制好的股指期货MACD日回测代码,我们可以看到两个def函数组成的,其中def init(context)是定义一些初始内容,它通过传入参数context,并对其进行设定来完成的,如context.s1 = 'IF1606',就是设定本次交易对象为股指期货合约IF1606,接下来就是一些均线设置;def handle_bar(context, bar_dict):则是一些交易指令(买入/卖出)的触发逻辑。
    右边则是选择你这个策略的回测时间、交易金额,然后点击运行回测,就会出现一个比较简单的量化交易策略实现界面:
    image.png
    红线就是你的交易策略的收益情况,由于这里设置的比较简单,没有基准收益对比,也没有均线变化趋势,以及买点与卖点标注,所以这个是比较简单的量化交易策略回测图形。

    在此基础上,大家可以修改相应代码或创建自己的交易策略,应用更好的平台数据,来进行更复杂的量化交易。

你可能感兴趣的:(快速入门python量化交易的一些干货)