文章目录
【量化投资】Python 入门
一、为什么使用 python
说起Web领域 你立马会想到 Java 和 JavaScript语言,它们在Web领域不可撼动;Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现。
在量化投资(证券和比特币)开源项目里,全球star数排名前10位里面,有7个是用Python实现的。从数据获取到策略回测再到交易,覆盖了整个业务链,还是很厉害的!
因此,堪称入门免费、简单、可移植性、解释性、 丰富的库、 面向对象的Python语言,便就是它了!
其实,我认为,不管做不做量化分析,或者你是不是程序员,都应该学习 python ,数学专业可以用它建模,白领可以用它批量处理 excel,初高中生可以通过 python 入门编程,总之,这真的是一门简单强大的语言
- 我找了半天找不到那个 xx编程的洗脑广告,不过我估计有不少人看过
- 其实有很多人不知道 dokidoki 就是用 python 写的:
- 之前那个火爆全网的武汉加油,也是 python 写的:
- 之前很火的词云,也是 python 写的
- 当然,python 最火的还是爬虫:
总之,就算你对量化投资不感兴趣,我也建议你学学 python ,毕竟艺多不压身嘛,同时也可以把春节假期长肉的时间利用起来
二、我们需要学些什么
除了语言基础之外,对于量化投资,我们还要学什么额外的 python 知识?
1、图形库
人脑对图形是最敏感的,除了机器分析数据外,我们还要将数据绘制成图形,方便我们去分析,所以一个简洁方便的图形库是必不可少的
2、爬虫
量化分析中有个概念是回测,其作用是将我们设计好的程序,用以前的数据跑一下,观察其盈利情况如何,只有在程序可靠的情况下,我们才真的会让其上线进行交易
而回测使用的数据,就需要我们从金融网站中爬取使用了
3、数据存储与处理
在爬到数据之后,我们还要对数据做基本的清洗与处理,以方便程序使用
4、自动交易
作为业余理财人,我们还要腾出时间,做自己本职的工作,不可能天天盯着股票看,所以,程序自动买卖交易是不可少的,这个也需要我们去考虑
python 可做的还有很多很多,但是对于量化投资,我们还是着重考虑上面几个点。
三、Python 基础
1、输入输出
我们有时需要通过输出判断模型数据的
python 输入输出代码如下:
print("hello world") # hello world 输出
input("please input:") # 执行后。会输出 please input 然后阻塞等待输入
2、数据转换
python 没有显示的数据类型, 其数据类型的定义在赋值时就确定了
3、导包
python 原sdk中可能没有我们要用的函数,所以需要导入其他的包使用
python 导包和 java 一样,使用 import 语句
除了基础的导包方式外,我们还可以为导入的包起别名,或者直接导入方法
- 为导入的包起别名:
import math as m # 为 math 包起别名为 m
print(m.pi)
- 只导入方法:
这里的 import * 表示导入 math 类中的所有方法,这样,我们在使用 math 的方法的时候就不用带上 math 了
from math import *
ceil(3.14) # 4.0
4、数据类型
1)数字
数字包含 int,float,boolean
和 complex(复数)
这里要注意,python 中没有显示的数据类型定义,数据类型是在初始化的时候就决定好的:
int,float
可以通过 float(),int()
相互转换:
True
和 False
其实对应的是数字 1 和 2(这点其实有够奇葩的):
复数用 a+bj
的形式表示,a代表实部,b代表虚部,同时,也可以用 complex(a,b)
的形式声明复数:
2)字符串
字符串用 ‘’ 或者 “” 声明
3)列表
列表是 java 中数组,ArrayList 甚至 Stack Queue 的集合体
用中括号[]
声明,可以使用下标访问
- 列表切片:
切片的访问方式如下 [start:end:step]
其中的 -1,表示访问倒数第一个元素,要注意,切片的访问是左闭右开的,即上面的例子范围为 [0,6)
步长为2
start end 不写,默认从头到尾:
也可以用切片的方式,对列表进行倒序访问([::-1]):