Kaggle Jane Street


相关资料汇总

背景知识

1.交易日

每年交易日并不是 365 或者 366,而是 253 左右。

业务中交易日常规交易时间(RTH) 是特定证券交易所开放的时间跨度,而不是电子或延长交易时间(ETH)。例如,纽约证券交易所是,截至2020年,从上午9点开美国东部时间到下午4:00东部时间。交易日通常是星期一至星期五。交易日结束时,所有股票交易结束,并冻结时间,直到下一个交易日开始。还有其他几种特殊情况会导致交易日缩短,或者根本没有交易日,例如节假日或国葬日。一的国家元首是如期举行。

纽约证券交易所和纳斯达克平均每年约253个交易日。这是从365.25(平均每年的天数) 5/7(每周的比例工作日)-6(工作日假日)-3 5/7(固定日期假日)= 252.75≈253。股票交易所的假日元旦,小马丁·路德·金纪念日华盛顿诞辰耶稣受难日阵亡将士纪念日独立日),劳动节感恩节圣诞节关闭;还有一些允许交易的假期,包括哥伦布日退伍军人节除夕[1]最多可以缩短三个交易日(独立日之前的一天,感恩节之后的一天)以及圣诞节前夕),交易所的开放时间为上午9:30 –下午1:00,具体取决于日历年的交易地点。

数据大概 500 天,也就是两年的数据信息

2.Investment Time Horizon

长线投资和短线投资的区别和特点

数学支撑

1.峰度(Kurtosis)与偏态(Skewness)

峰度(Kurtosis)与偏态(Skewness)

偏度与峰度的正态性分布判断

(1)偏度(Skewness)
偏度衡量随机变量概率分布的不对称性,是相对于平均值不对称程度的度量,通过对偏度系数的测量,我们能够判定数据分布的不对称程度以及方向。
具体来说,对于随机变量X,我们定义偏度为其的三阶标准中心距:

[公式]
对于样本的偏度,我们一般记为SK,我们可以基于矩估计,得到有:

[公式]

其中, [公式] 为样本均值, [公式] 为样本三阶中心矩, [公式] 为样本二阶中心矩

偏度的衡量是相对于正态分布来说,正态分布的偏度为0,即若数据分布是对称的,偏度为0。若偏度大于0,则分布右偏,即分布有一条长尾在右;若偏度小于0,则分布为左偏,即分布有一条长尾在左(如下图);同时偏度的绝对值越大,说明分布的偏移程度越严重。

img

【注意】数据分布的左偏或右偏,指的是数值拖尾的方向,而不是峰的位置。

(2)峰度(Kurtosis)
峰度,是研究数据分布陡峭或者平滑的统计量,通过对峰度系数的测量,我们能够判定数据相对于正态分布而言是更陡峭还是更平缓。比如正态分布的峰度为0,均匀分布的峰度为-1.2(平缓),指数分布的峰度6(陡峭)。
峰度,定义为四阶中心距 [公式] 除以方差 [公式] 的平方减3。
[公式]

若峰度 [公式] 0 , 分布的峰态服从正态分布;
若峰度>0,分布的峰态陡峭(高尖);
若峰度<0,分布的峰态平缓(矮胖);

img

2.核密度估计(kernel density estimation)

pandas.DataFrame.plot.kde
DataFrame.plot.kde(bw_method=None, ind=None, **kwargs)[source]
Generate Kernel Density Estimate plot using Gaussian kernels.

In statistics, kernel density estimation (KDE) is a non-parametric way to estimate the probability density function (PDF) of a random variable. This function uses Gaussian kernels and includes automatic bandwidth determination.
核密度估计(kernel density estimation)

Table of Contents

有一些数据,想“看看”它长什么样,我们一般会画直方图(Histogram)。现在你也可以用核密度估计。

什么是“核”

如果不了解背景,看到“核密度估计”这个概念基本上就是一脸懵逼。我们先说说这个核 (kernel)) 是什么。

首先,“核”在不同的语境下的含义是不同的,例如在模式识别里,它的含义就和这里不同。在“非参数估计”的语境下,“核”是一个函数,用来提供权重。例如高斯函数 (Gaussian) 就是一个常用的核函数。

让我们举个例子,假设我们现在想买房,钱不够要找亲戚朋友借,我们用一个数组来表示 5 个亲戚的财产状况: [8, 2, 5, 6, 4]。我们是中间这个数 5。“核”可以类比 成朋友圈,但不同的亲戚朋友亲疏有别,在借钱的时候,关系好的朋友出力多,关系不好的朋友出力少,于是我们可以用权重来表示。总共能借到的钱是: 8*0.1 + 2*0.4 + 5 + 6*0.3 + 4*0.2 = 9.2

那么“核”的作用就是用来决定权重,例如高斯函数(即正态分布):

Kernel Exponential

如果还套用上面的例子的话,可以认为在 3 代血亲之外的亲戚就基本不会借钱给你了。

博客

Kaggle Jane Street 市场预测数据竞赛1月回顾

特征(feature)和标签(tag)的含义:
由于我们得到的数据都是经过处理的而不是原始数据,这让特征之间的关系模糊甚至消失。以下内容大部分是相对可靠的,而含有(*)的相关内容,是相对不确定,仅供参考。

    • feature 0: 卖/买
      二元取值,1和-1(而不是1和0)各佔大约一半。
    • tag 22: 交易日时间(可能经过处理)
      feature_64只有一个tag,就是tag_22.
  • tag 14: 特定股票数据(沽空成本,股息率,隐含波动率?)
    tag 14的特征(feature 41-43)都是成组出现的。(下图date 12的数据)

可能有用的trick

  • 去除前85天的数据
  • 去除weight为0的数据
  • 用所有resp来训练模型
  • 给训练集设置权重

量化投资学习笔记93——Kaggle量化交易竞赛Jane Street 笔记2

Kaggle Notebook

Blending tensorflow and pytorch🔥🔥🔥

目前开源最高分数,使用的 tensorflow 和 pytorch

训练 link Pytorch Resnet Starter[Training]

Jane Street: Neural Network Starter

Idea

数据划分

  • 5个resp (resp,resp_1,resp_2,resp_3,resp_4)

这四个 resp (resp_1,resp_2,resp_3,resp_4),推测是由一些特征组合算出来的,应当利用 feature 和 tag,将特征划分成4或5份。其中5份并不是很推荐,因为我偏向于resp 是基于resp_1~resp_2组合加权得到的。

  • feature_{0…129}

可以做的分析,一定要做特征提取

  1. PCA 降维
  2. 去除或者不去相关性很高的 feature
  • tag_{0_28}
  1. 辅助 feature 进行特征提取,核心分块 分4或5

文章作者: Terence Cai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Terence Cai !
  目录