围炉网

一行代码,一篇日志,一个梦想,一个世界

量化交易的知识体系

  • python基础

    • 不同的数据类型

      • 时间序列数据:比如北京一年来每天的平均温度。(以时间戳为索引的pandas.Series

      • 截面数据:北京,上海,深圳,广州某一天的平均温度。

      • 面板数据:北京,上海,深圳,广州这一年来每天的平均温度。(major, minor, items)

      • pandas.Multiindex

  • 量化理论基础

    • 资产定价模型CAPM  收益只跟市场相关(单因子模型)  Ra = Rf + Beta * (Rf-Ra)

    • 套利定价理论 APT模型 证券收益率与一组未知因子(特征)线性相关,而不只是一个

    • FF三因子模型  市场风险溢价因子、规模因子、价值因子

    • FF五因子模型  还有盈利因子、成长因子——五因子是大家公认的这些类别因子是肯定能获得比市场基础回报更多的收益(风险因子收益)

    • 广义alpha收益 = 公认的风险因子收益 + alpha 收益

  • 交易分类

    • 趋势性交易

      • 金融专业出生,对财务、金融市场非常了解,(交易员、基金经理)

    • 市场中性

      • 计算机专业出生,擅长编程、机器学习技术、数据挖掘技术(量化分析),量化交易交易人员

      • 发现市场中的alpha因子赚取额外收益,例如股票与股指期货的对冲策略

      • 股票:市场中性策略占大多数、涉及少量的趋势性交易

      • 期货:趋势性交易策略占大多数

    • 高频交易

      • 非常擅长算法编程,c/C++,做交易 (算法高手)

  • 选股

    • 财务数据主要用来选股,免费的虽然有400多种数据指标,但数据质量不高

    • 不会每天去选股,一般一个星期或者每月去更新

  • 收益衡量指标

    • 回测收益率

    • 年化收益率

    • 夏普比例 = [投资组合预期报酬率 – 无风险利率]/投资组合标准差,达到1.5以上已经很好了,通常在0.7-1.5

  • AI策略

    • 分类问题:预测股票的涨跌状态

      • 根据预测的上涨概率是否大于0.5作为策略买卖触发信号

    • 回归问题:预测股票的价格/涨幅

      • 根据预测的价格/涨幅是否大于阈值作为策略买卖触发信号

    • 排序问题:预测股票的排序先后

      • 根据预测的股票排名先后作为策略买卖触发信号

  • 术语

    • 动量:mom[t] = price[t]/price[t-n])-1

    • 移动平均 SMA Simple Moving Average

      • 在金融应用中,一个简单移动平均(SMA)是以前 n 个数据的未加权平均数

      • 移动平均的本质是一种低通滤波。它的目的是过滤掉时间序列中的高频扰动,保留有用的低频趋势。

      • 分析时间序列的常用工具,常被应用于股票价格序列。移动平均可过滤高频噪声,反映出中长期低频趋势,辅助投资者做出投资判断。

      • 任何移动平均算法都会呈现一定的滞后性。它以滞后性的代价换来了平滑性,移动平均必须在平滑性和滞后性之间取舍。

    • BB (bollinger bands) BOLL指标

      • 布林极限(%BB)由布林线衍生而来的,辅助布林线研判买卖信号的可靠性。

      • BOLL指标的计算公式

        • 中轨线=N日的移动平均线

        • 上轨线=中轨线+两倍的标准差

        • 下轨线=中轨线-两倍的标准差

    • 维度灾难

      • 维度太大的时候,比如>10,高维空间中的一个点的近邻把整个数据库的点都包括进去了

      • 高维空间不建议用近邻算法

    • bias-variance trade-off

      • 靶心就是我们要预测的真实值。命中的点离靶心越远,我们的预测结果越糟糕

      • 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了学习问题本省的难度。偏差-方差分解说明,泛化能力是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的,给定学习任务,为了取得好的泛化性能,需使偏差较小,即能够充分拟合数据,并使方差较小,使数据扰动产生的影响最小。

      • Bias与Variance往往是不能兼得的。如果要降低模型的Bias,就一定程度上会提高模型的Variance,反之亦然。

      • 造成这种现象的根本原因是,我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性,而忽视对模型的先验知识,就会尽量保证模型在训练样本上的准确度,这样可以减少模型的Bias。但是,这样学习到的模型,很可能会失去一定的泛化能力,从而造成过拟合,降低模型在真实数据上的表现,增加模型的不确定性。相反,如果更加相信我们对于模型的先验知识,在学习模型的过程中对模型增加更多的限制,就可以降低模型的variance,提高模型的稳定性,但也会使模型的Bias增大。Bias与Variance两者之间的trade-off是机器学习的基本主题之一,机会可以在各种机器模型中发现它的影子。

    • K-fold Cross Validation (K折交叉验证)

      • 获得模型关于泛化误差(generalization error)的可信的估计,所谓的泛化误差也即模型在新数据集上的表现。在训练数据上面,我们可以进行交叉验证(Cross-Validation)。

      • K折交叉验证,初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,、我们便可获得 k 个模型及其性能评价。平均K次的结果或者使用其它结合方式,最终得到一个单一估测。

      • 当K值大的时候, 我们会有更少的Bias(偏差), 更多的Variance。

      • 当K值小的时候, 我们会有更多的Bias(偏差), 更少的Variance。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2