分类
如何在外汇市场上交易

Olymp Trade 2因子验证指南

量化交易回测系列二:多因子Alpha策略回测

本文的重点是实现多因子Alpha策略的回测框架。因子不是重点,这部分通常由金融工程师或策略分析师来完成。为了方便大家理解,文章以动量因子、beta因子、规模因子和波动率因子4个常用的风险因子为例,介绍如何在 DolphinDB database 中实现多因子回测。

输入数据表inData包含6个字段:sym (股票代码), date(日期), close (收盘价), RET(日回报), MV(市值), VOL(交易量)

DolphinDB函数说明:

prev:把向量中的所有元素向右移动一个位置。

cumprod:计算累计乘积。

mstd(X, k):计算移动标准差。

wavg(X, k):计算加权平均数。

move(X, k):如果k为正数,则把向量的所有元素向右移动k个位置,如果k为负数,则把向量的所有元素向左移动k个位置。

mbeta(X, Y, Olymp Trade 2因子验证指南 k):计算普通最小二乘回归的系数估计。

genSignals 函数说明:

  • 规模因子(signal_size):MV的平方根的相反数
  • 波动率因子(signal_vol):过去一个月的股价波动率的相反数
  • 动量因子(signal_mom):过去12个月(去除最近一个月)的动量因子
  • beta因子(signal_beta):利用过去三个月的数据计算个股跟市场的beta

2. 回测框架

2.Olymp Trade 2因子验证指南 1 计算历史周期的投资仓位

2.1.1 计算一天的股票投资组合

  • signals 是由genSignals函数生成的数据表,包含8个字段:股票代码、日期、收盘价格、回报率和4个因子。
  • signalNames 是所有因子的名称,用向量表示。
  • stockPercentile 用于控制股票的数量。

函数的输出是一个数据表,存储一天的股票投资组合,包括4个字段:tranche, sym, signalIdx, exposure。

DolphinDB函数说明:

size:返回向量中元素的个数

first:返回第一个元素

matrix:构建矩阵

transpose:矩阵转置

iif(condition, trueResult, falseResult):如果满足条件condition,则返回trueResult,否则返回falseResult。它相当于对每个元素分别运行if. else语句。

loop(func,args):高价模板函数,把函数func应用到参数args的每一个元素上,并将结果汇总到一个元组中。如果args包含三个k个参数,每个参数的长度是n,那么loop将运行n次。

unionAll:合并多个表

2.1.2 计算过去每天的股票投资组合

回测时使用 的数据量非常庞大,因此我们把数据放到内存的分区数据库中,然后使用并行计算。如果想要了解更多关于分区数据库的内容,可以参考DolphinDB分区数据库教程。我们把genSignals函数生成的数据保存到分区表partSignals中,一个分区表示一天。接着,创建一个分区表ports,用于保存计算出来的股票投资组合,一个分区表示一年。然后,使用 map-reduce函数,把formPeriodPort函数应用到每一天,把每个结果合并到分区表ports中。

DolphinDB函数说明:

sort:把向量中的元素排序

database(directory, [partitionType], [partitionScheme], [locations]):创建数据库。如果directory为空,则创建内存数据库。

createPartitionedTable(dbHandle, table, [tableName], partitionColumns):在数据库中创建分区表。

datatimeParse(X, format):把字符串转换成DolphinDB中时间类型数据。

unionAll:合并表

type:返回数据类型的ID。

mr(ds, mapFunc, Olymp Trade 2因子验证指南 [reduceFunc], [finalFunc], [parallel=true]):map-reduce函数。

  • ports: 每一天的投资组合表,包括4个字段 tranche, sym, Olymp Trade 2因子验证指南 signalIdx, exposure
  • dailyRtn:股票每天的回报表,包括3个字段 date, sym, ret
  • holdingDays: 股票持有的天数

函数的输出是股票的盈亏明细表,包括字段8个字段 date, sym, signalIdx, tranche, age, ret, exposure, pnl

DolphinDB函数说明:

dict(key, Olymp Trade 2因子验证指南 value):创建字典。

cj(leftTable, rightTable) :交叉连接两个表。

isValid:检查元素是否为NULL。如果不是NULL,则返回1,如果是NULL,则返回0。

ej(leftTable, rightTable, matchingCols, Olymp Trade 2因子验证指南 [rightMatchingCols]) :等值连接两个表。

我们以美国股市为例,运行多因子Alpha策略回测。输入的股票日数据表USPrices包含6个字段:sym (股票代码), date(日期), close (收盘价), RET(日回报), MV(市值)和VOL(交易量)。

多因子选股分层回测

yezi113yezi 于 2018-07-18 10:49:14 发布 7432 收藏 12

进行显著性和有效性的分析以后,可以初步判断因子对股票的收益是否有显著的影响;但是不能判断单调性,例如,某因子值排名在中间 1/3的个股表现比前 1/3 和后 1/3 的个股表现要好;但是分层回测法是可以确定因子单调性的。分层回测法逻辑简单,结果清晰,操作方便,并且具有能区分因子单调性的独特优势,是接受度非常高的一种单因子测试手段。

测试模型构建方法如下:
1. 股票池、回溯区间都与回归法相同。
2. 换仓期:在每个自然月最后一个交易日核算因子值,在下个自然月首个交易日按当日收盘价换仓。
3. 分层方法:在每个一级行业内部对所有个股按因子大小进行排序,每个行业内均分成 N个分层组合。如图 4 所示,黄色方块代表各行业内个股初始权重,可以相等也可以不等(我们直接取相等权重进行测试),分层具体操作方法为 N 等分行业内个股权重累加值,例如图示行业 1 中,5 只个股初始权重相等(不妨设每只个股权重为 0.2),假设我们欲分成 3 层,则分层组合 1 在权重累加值 1/3 处截断,即分层组合 1 包含个股 1 和个股 2,它们的权重配比为 0.2:(1/3-0.2)=3:2,同样推理,分层组合 2 包含个股 2、3、4,配比为(0.4-1/3):0.2:(2/3-0.6)=1:3:1,分层组合 4 包含个股 4、5,配比为 2:3。

Rentabilidad en Aumento

La plataforma de trading que apoya sus objetivos financieros.

Comience a Operar – Es Gratis

¡Entre al Campo de Juego del Trading con Ronaldinho!

Nos complace anunciar que Ronaldinho Olymp Trade 2因子验证指南 se une a Olymp Trade y se convierte en nuestro aliado de trading en línea oficial. ¡Obtenga un impulso de energía para hacer operaciones exitosas con el maestro de los ataques rápidos!

image

Lo Último de Olymp Trade

Nuevas funciones, los últimos webinarios y más.

new-feature-1

30 nuevos activos

new-feature-3

Puntos de experiencia (XP)

Nuestro Olymp Trade 2因子验证指南 Olymp Trade 2因子验证指南 nuevo sistema de recompensas ofrece a los inversores activos Olymp Trade 2因子验证指南 Olymp Trade 2因子验证指南 aún más ventajas y privilegios

new-feature-4

Línea de rentabilidad

Una herramienta que le ayudará a identificar el punto de equilibrio de una operación

new-feature-2

Asesor

Analiza varios indicadores de acuerdo a las estrategias de trading

new-feature-4

Descubra Nuestro Blog

Aumente su experiencia de trading con nuevos conocimientos y análisis de mercado.

Excelente Experiencia en Cualquier Dispositivo

Si lo prefiere opere en su escritorio o en movimiento – Olymp Olymp Trade 2因子验证指南 Trade lo tiene cubierto.

La plataforma personalizada ha sido adaptada para cualquier dispositivo que usted pueda elegir y cambiar es 100% posible.

Escritorio

Una Plataforma que Trabaja para Usted

Estas funciones le ayudarán a alcanzar sus objetivos.

Operaciones sin riesgo

Explore la plataforma y pruebe estrategias gratuitamente

Cuenta Demo

10.000 en fondos virtuales para practicar y el aprender.

Mercado

Personalice la plataforma con complementos únicos para elevar sus operaciones

Gerente Personal

Obtenga orientación exclusiva personalizada con un experto en trading

Sin límites. Sin comisiones. Sin demoras.

Depósitos y retiros rápidos y fáciles

7 Años de Excelencia

Un pionero de la industria desde 2014, Olymp Trade 2因子验证指南 Olymp Trade 2因子验证指南 Olymp Trade tiene muchos logros de los que Olymp Trade 2因子验证指南 enorgullecerse.

award

Asociaciones

En 2019, uno de las mejores jugadores de rugby del mundo, Eben Etzebeth (Sudáfrica), fue socio de Olymp Trade.

award

Olymp Trade se enorgullece de Olymp Trade 2因子验证指南 Olymp Trade 2因子验证指南 apoyar al equipo LCR Honda en MotoGP™ 2019-2021.Olymp Trade 2因子验证指南

Las Transacciones que ofrece este Website pueden ser ejecutadas por adultos plenamente competentes. Las Transacciones con los Olymp Trade 2因子验证指南 Olymp Trade 2因子验证指南 instrumentos financieros que se ofrecen en el Website entrañan un riesgo considerable y el trading puede ser muy arriesgado. Si realiza Transacciones con los instrumentos financieros ofrecidos en este Website, podría incurrir en pérdidas sustanciales o incluso perder todo lo que hay en su Account. Antes de que decida iniciar las Transacciones con los instrumentos financieros ofrecidos en el Website, debe revisar el Acuerdo de Servicio y la Información de Divulgación de Riesgos.

Приумножайте прибыль

Торговая платформа, реализующая ваши финансовые цели.

Попробуйте торговать — это бесплатно

Играйте на торговом поле вместе с Роналдиньо!

У нас потрясающие новости: Роналдиньо — официальный партнёр трейдинговой платформы Olymp Trade! Энергия для ваших успешных сделок от мастера стремительных атак!

image

Что нового в Olymp Trade

Инструменты, вебинары и не только

new-feature-1

30 новых активов

new-feature-3

Очки опыта (XP)

Наша новая система поощрений предлагает активным трейдерам ещё больше возможностей и привилегий.

new-feature-4

Линия прибыли

Инструмент, который поможет вам определить Olymp Trade 2因子验证指南 точку безубыточности сделки.

new-feature-2

Советник

Анализирует несколько индикаторов в соответствии с торговыми стратегиями.

new-feature-4

Откройте для себя блог Olymp Trade

Актуальные инсайты и аналитика рынка для успешной торговли.

Удобно Olymp Trade 2因子验证指南 пользоваться на любом устройстве.

С Olymp Trade вы можете торговать как за компьютером, так и на ходу.Olymp Trade 2因子验证指南

Платформа адаптирована под любые устройства, переключайтесь между ними и пользуйтесь всеми функциями.

Для компьютера

Платформа, которая создана для вас

Инструменты для достижения целей

Безрисковые сделки

Тестируйте инструменты для торговли без убытка.

Демосчёт

Используйте пополняемые 10 000 для практики.Olymp Trade 2因子验证指南

Маркет

Настраивайте уникальные дополнения на платформе.

Персональный аналитик

Создайте индивидуальный стиль торговли.

Без лимитов. Без комиссий. Без задержек

Вносите и выводите средства просто и быстро

7 лет прогрессивного опыта

За это время Olymp Trade достиг целей, которыми можно гордиться.Olymp Trade 2因子验证指南

award

Партнёрство

В 2019 году нашим партнёром стал Эбен Этзебет (Южная Африка), один из лучших игроков в регби.

award

Olymp Trade поддержал команду LCR Honda на MotoGP™ 2019-2021.

Операции, предлагаемые данным Сайтом, могут осуществляться только совершеннолетними и полностью дееспособными лицами. Операции с финансовыми инструментами, предлагаемыми данным Сайтом, могут считаться операциями с высоким уровнем риска, а их совершение может быть очень рискованным. В случае совершения Операций с предлагаемыми Сайтом финансовыми инструментами вы можете понести существенные потери вложенных средств или даже полностью потерять средства на своем Счете. Перед принятием решения о начале совершения Операций с финансовыми инструментами на данном Сайте вы обязаны ознакомиться с Соглашением об оказании услуг, а также с Предупреждением о рисках.