Quantopian 入门系列二 - 流水线 (上)

本文含 8045 字,18 图表截屏

建议阅读 42 分钟

在公众号对话框回复 QTP2 下载 notebook

0

引言

在上贴〖Quantopian 系列一〗我们初探了的流水线(pipeline),本帖我们就把它揉碎了讲。

很多交易算法都需要重复的做以下几个步骤

  1. 对于已知集合中的每个资产,计算它们在不同移动窗口下的 N 个统计量

  2. 根据『1』中计算的值选择可交易的子资产集(subset)

  3. 根据『2』中选择的资产集上计算所需的投资组合权重

  4. 根据『3』中计算的权重下订单

能高效地执行上述操作存在几个技术难点,包括:

  • 要高效的查询大量资产

  • 要在大量资产上进行计算

  • 要能处理调整(拆分和股息)和资产退市

流水线就是来解决这些难点的。

在上贴中,我们了解到 Quantopian 有研究环境(research)和回测环境(backtest),我们可以在前者中快速迭代不同的交易策略,然后再后者构建下订单对其策略进行回测。

两个环境都需要流水线,好消息是,在两个环境中,构造流水线是相同的,唯一不同的是其运行方式

  • 研究环境需要设定起始日和终止日来运行流水线

  • 回测环境不需要设定起始日和终止日来运行流水线,因此在每个回测日都要跑一次流水线

目录如下:

  1. 简介

  2. 因子

  3. 筛选器

  4. 分类器

  5. 掩盖法

  6. 数据集

  7. 自定义因子

  8. 回测

由于内容较多,本帖分上下两贴,上贴讲 1 至 4 节,下帖讲 5 至 8 节。

1

简介

在流水线中,我们可以在同时多个资产中的多维特征上定义一系列运算,而这些计算可分为三大类:

  • 因子(factor)

  • 筛选器(filter)

  • 分类器(classifer)

三者的相同点:都是从资产和时点产生值的函数

三者的不同点:产生值的类型不同

因子

因子是从「资产和时点」到数值的函数。

关于因子的两个简单示例:

  1. 资产的最新价格,给定资产和特定时点,得到的最新价格是个数值。

  2. 资产的 10 天平均交易量,给定资产和特定时点(10 个时点),得到的平均交易量是个数值。

因子最常用于以下几种方式:

  • 计算目标权重

  • 产生交易信号

  • 构造更复杂的因子

  • 构造筛选器

筛选器

筛选器是从「资产和时点」到布尔值的函数。

关于筛选器的一个示例:判断资产价格是否低于 10 美元,在给定资产和时点的情况下,此结果只能为真(True)或假(False),是个布尔值。

筛选器最常用于包括剔除的某些资产集。

分类器

分类器是从「资产和时点」到分类值的函数。

具体来讲,分类器产生的分类值可以是字符串(string)或整数(integer)。注意这里整数是指整数标签,例如行业代码(sector code)。

关于分类器的一个示例:正在交易的资产所在交易所的代号。

分类器最常用于对资产进行分组

数据集

流水线可以在多种数据上进行计算,比如 OHLC 数据、交易量数据、基本面数据和情绪数据等。我们将在后面会介绍每类数据集。


接下来第 2, 4, 6, 10 节讨论因子,第 3, 5, 7 节讨论筛选器,第 8 节讨论分类器,第 9 节讨论数据集,第 11 节结合所有内容构建一个完整的策略做回测。

2

因子

因子本质上是一个函数,将资产时点两个自变量转化成一个数值型变量(numeric variable)。抽象形式如下:

    F(asset, timestamp) -> float

其中 asset 是一列数据,timestamp 是一个窗口长度。

Quantopian 里面有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>