前言
技术已成为金融行业中的战略资产。传统的金融机构正在转型成为科技公司,而不仅仅是专注于该领域的金融方面。数学算法带来了创新和速度,它们可以帮助我们在市场上获得竞争优势。金融交易的速度和频率以及庞大的数据量,已引起所有大型金融机构对技术的广泛关注。算法交易或定量交易是基于数学和统计分析设计和开发交易策略的过程。
本教程是使用 Python 进行定量交易的初学者指南,如果读者是以下行业人士,将会发现这篇文章非常有帮助:
- 旨在成为基金或银行量化分析师
- 计划开始自己的自营量化交易的人
我们将在这篇文章中介绍以下主题:
- 股票和交易基础
- 从 Quandl API 提取数据
- 股票价格数据的探索性数据分析
- 移动平均线
- 用 Python 制定交易策略
- 可视化策略的表现
股票交易及交易策略
买卖现有和先前发行的股票的过程称为股票交易。有一个可以买卖股票的价格,并且这个价格根据股票市场的需求和供应不断波动。这将视公司的业绩和行为而定,股价可能会上下波动,但股价的波动不仅限于公司的业绩。交易者支付钱来换取公司的所有权,希望进行一些有利可图的交易并以更高的价格出售股票。
交易者遵循的另一项重要技术是卖空股票。这涉及'借入股票并立即出售它们,以期以后以较低的价格购买它们,将其退还给贷方,并赚取相关的市场保证金'。因此,大多数交易者遵循特定的量化策略和模型进行交易。而这被称为交易策略。
对冲基金和投资银行的量化交易者设计并开发了这些交易策略和框架来进行测试。它需要深厚的编程专业知识,并且需要了解构建自己的策略所需的语言。
在 C++、Java、R 和 MATLAB 等语言中,Python 是最流行的编程语言之一。由于其易于使用的语法,庞大的社区和第三方支持,它已在所有领域广泛采用,尤其是在数据科学领域。为了充分利用本教程,我们需要熟悉 Python 和统计信息。
从 Quandl API 提取数据
为了提取股票价格数据,我们将使用 Quandl API。但在此之前,让我们设置工作环境:
- 在终端中,为项目创建一个新目录(根据需要命名):
mkdir <目录名称> - 确保在计算机上安装了 Python 3 和 virtualenv。
- 使用
virtualenv <env_name>创建一个新的 Python3 virtualenv,并使用source <env_name>/bin/activate激活它。 - 现在,使用 pip 安装 jupyter-notebook,然后在终端中输入
pip install jupyter-notebook。 - 同样,安装 pandas、quandl 和 numpy 软件包。
- 从终端运行您的 jupyter-notebook。
现在,笔记本应该可以在本地主机上运行。您可以通过单击右侧的'新建'下拉列表来创建您的第一个笔记本。确保您已在 Quandl 上创建了一个帐户。请按照步骤创建您的 API 密钥。一切准备就绪后,让我们直接进入代码部分。
# 导入所需的软件包
import pandas as pd
import quandl as q
# Pandas 将成为本教程中使用最严格的软件包,因为我们将进行大量的数据处理和绘图。
# 导入软件包后,我们将使用 Quandl 软件包向 Quandl API 发出请求
# 设置 API 密钥
q.ApiConfig.api_key = "<API_KEY>"
# 发送获取请求以查询 Microsoft 从 2010 年 1 月 1 日至 2019 年 1 月 1 日的当日股票价格
msft_data = q.get("EOD/MSFT", start_date="2010-01-01", end_date="2019-01-01")
(msft_data.head())


