Python金融量化

量化策略

1.量化策略

通过一套固定的逻辑来分析,判断和决策,自动化地进行股票交易。

2.核心内容

  • 选股
  • 择时
  • 仓位管理
  • 止盈止损

3.策略的周期

  • 产生想法/学习知识
  • 实现策略:Python
  • 检验策略:回测/模拟交易
  • 实盘交易
  • 优化策略
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
graph TB
行情数据-->选股
止盈止损-->买入信号
subgraph 输出
买入信号---卖出信号
卖出信号---交易费用
交易费用---收益
end
subgraph 策略
选股-->择时
择时-->仓位管理
仓位管理-->止盈止损
end
subgraph 输入
行情数据---财务数据
财务数据---自定义数据
自定义数据---投资经验
end

量化投资与Python

  1. 常用分析工具

    Excel,SAS/SPSS,R语言

  2. 量化投资第三方模块

    • NumPy:数值计算
    • Pandas:数据分析
    • Matplotlib:图表绘制
  3. 使用Python进行量化投资

    • 自己编写
    • 在线平台:聚宽,优矿,米筐,Quantopian
    • 开源框架:RQAlpha,QUANTAXIS

NumPy

NumPy是Python中科学计算的基础软件包。
它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API,
它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。

NumPy包的核心是ndarray对象。

NumPy数组 和 标准Python Array(数组) 之间有几个重要的区别:

  • NumPy数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。 更改ndarray的大小将创建一个新数组并删除原来的数组。
  • NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。 例外情况:Python的原生数组里包含了NumPy的对象的时候,这种情况下就允许不同大小元素的数组。
  • NumPy数组有助于对大量数据进行高级数学和其他类型的操作。 通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。
  • 越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。 换句话说,为了高效地使用当今科学/数学基于Python的工具(大部分的科学计算工具),你只知道如何使用Python的原生数组类型是不够的 - 还需要知道如何使用NumPy数组。

NumPy 中的数组

NumPy提供的最重要的数据结构是一个称为NumPy数组的强大对象。

1
2
3
4
5
6
import numpy as np
import sys
my_array = np.array(range(100))
my_list = list(range(100))
print (sys.getsizeof(my_array))
print (sys.getsizeof(my_list))

切片操作

1
2
3
4
my_array = np.array([[4, 5], [6, 1]])
print my_array[0][1]
my_array_column_2 = my_array[:, 1] #取第二列
print my_array_column_2
0%