当前位置:   article > 正文

如何用Python做量化交易策略?_基于python的个人量化交易系统设计与实现

基于python的个人量化交易系统设计与实现

Python的最大特色之一是其极广泛的程序库,一组有效的库可以使开发人员在不重写多行代码的情况下编写复杂的任务代码。

由于开发方便,工具库丰富,尤其科学计算方面的支持很强大,所以Python目前在量化领域的使用很广泛。其主要应用领域有:

Pandas

增加了用于金融、统计学、社会科学和工程的实际数据分析的数据结构和工具。Pandas可以很好地处理不完整的、混乱的和未标记的数据,并提供用于成形、合并、改造和切片数据集的工具。

NumPy

NumPy是Python中科学计算的基础库,许多库使用NumPy数组作为它们的基本输入和输出。NumPy为多维数组和矩阵引入对象,允许开发人员在对这些数组矩阵上执行高级数学和统计功能时尽可能地减少代码的书写。

爬虫

在网络爬虫技术应用中,Python脚本语言的使用十分广泛,提高了网络爬虫技术运用的水平。用python来写爬虫,会比用其他编程语言写要简单得多。

Python的学习者中,有相当一部分是冲着爬虫去的,因为爬虫可以帮你解决很多工作和生活中的问题,节约你的时间。但是,Python还有一个神秘而有趣的应用领域,那就是——量化交易。

量化交易是利用计算机技术、金融工程建模等手段,定量分析证券投资的规律,寻找较优的投资策略,借助计算机的高速运行,对金融市场进行实时监测的基础上制定投资决策,并自动执行该决策,进行金融资产买卖的交易方式。

市面上也出现了很多支持Python语言的量化平台,你可以通过这些平台实现自己的交易策略,进行验证,甚至对接交易系统。

  • 国 内 平 台:聚宽 joinquant.com

                   米筐 ricequant.com
    
                   优矿 uqer.io
    
    • 1
    • 2
    • 3
  • 国 外 平 台:quantopian.com

以优矿为例,完成注册之后,在“开始研究”页面,创建一个Notebook,就可以开始用Python写策略了。

右上角选择“创建新策略”,就会帮你自动填写上策略回测的基本结构代码。

开始的一些变量是对回测的基本配置:Initialize 里可以做一些初始化的工作,Handle_data 则是回测代码的核心,用来实现每个交易日(或每分钟)的交易指令。

文档里有变量含义的相关说明,比如回测的时间、股票池、资金、交易频率等等。在修改各变量后点击右上角“运行”,即可在页面上看到策略的执行情况。

用Python做量化交易策略是不是很简单?其实,利用现有的数据包来跑程序并不难,难的是理解底层的逻辑——Algorithm及Data Structure。

01Array

Array(数组)是有序的元素序列,用于储存多个相同类型数据的集合。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式,这些有序排列的同类数据元素的集合称为数组。

02String

String是编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。String类对象创建后,字符串一旦初始化就不能更改,对String类的任何改变,都是返回一个新的String类对象。

03Tree & Binary Tree

Tree & Binary Tree是树形结构的重要类型,许多实际问题抽象出来的数据结构往往都是这种形式,而且其存储结构及算法都较为简单。Binary Tree的特点是每个节点最多只能有两棵子树,且有左右之分

04Hash Table & Dictionary

Hash table(散列表),是根据Key Value而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

Dictionary 类是任何可将键映射到相应值的类(如 Hash Table)的抽象父类。每个键和每个值都是一个对象。在任何一个Dictionary对象中,每个键至多与一个值相关联。给定一个Dictionary和一个键,就可以查找所关联的元素。

05Heap & Stack

Heap & Stack是一种数据项按序排列的数据结构,只能在一端对数据项进行插入和删除。在单片机应用中,Heap & Stack是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。

06DFS & BAcktrack, Recursion

DFS(深度优先搜索算法),是一种用于遍历或搜索树或图的算法。DFS是一种一种的尝试,会首先把一种可能的情况尝试到底,才会回溯去尝试下一种情况,只要找到一种情况,就可以返回了。

BAcktrack(回溯法)在解空间树中,从根出发进行搜索,每到达解空间树的一个结点,会判断以该结点为根的子树是否肯定不包含问题的解。如果不包含,则一层一层地向它的祖先回溯,直到遇上一个还有未被搜索过的结点,才转向该结点继续搜索;否则,进入该子树,继续按深优先的策略进行搜索。

Recursion(递归法)通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

07Divide and Conquer

分治法,就是把一个复杂的问题分成两个或多个相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单地直接求解,原问题的解即子问题的解的合并。

08Greedy

贪心算法是一种对某些求最优解问题的更简单、更迅速的设计技术。其特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况。虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的,所以贪心算法不要回溯。

以上这些是必须要了解的各类算法基础逻辑,如果你对这个领域充满好奇,想要了解更多深入的内容,不如现在就立刻动手,从你的第一个策略开始吧!

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/290222?site

推荐阅读
相关标签