首页 / 芷瀚动态 / 芷瀚观点

芷瀚动态

News

XGBoost算法在金融量化领域的应用

2023-12-21

一、综述 XGBoost(eXtreme Gradient Boosting)是一种基于树集成的机器学习算法,是梯度提升树(Gradient Boosting Tree)家族的一员。该算法在金融量化领域得到了广泛应用,主要通过迭代地训练弱学习器(通常是决策树)来逐步改进模型性能。本文将从XGBoost算法的特点,XGBoost在金融领域的具体应用以及XGBoost算法的具体实现流程三个方面介绍XGBoost在金融量化领域的应用。 二、XGBoost算法的特点 2.1采用梯度提升 XGBoost采用梯度提升框架,通过迭代地训练弱学习器,每一轮学习器都试图纠正前一轮模型的残差。具体来说,XGBoost使用梯度下降优化算法来最小化损失函数,同时考虑到正则化项,从而得到更强大且泛化能力更好的模型。 2.2 L1和L2正则化 正则化是通过向损失函数添加正则化项来控制模型的复杂性。L1正则化(Lasso)倾向于产生稀疏权重,使得模型更具有特征选择的能力;L2正则化(Ridge)通过惩罚过大的权重,防止模型过度拟合。XGBoost允许用户在训练时调整正则化项的权重,以平衡模型的拟合和泛化。 2.3自动处理缺失值 XGBoost能够自动处理缺失值,使其在训练中参与模型的构建。在树的分裂过程中,XGBoost会考虑缺失值的方向,从而将缺失值也纳入学习过程中。这减少了数据预处理的复杂性,并提高了模型的鲁棒性。 2.4特征重要性评估 XGBoost通过计算特征的增益(gain)来评估其重要性。增益反映了在树的构建过程中每个特征的贡献程度。用户可以通过查看特征重要性图表或使用相关API来了解模型对于输入特征的关注程度,进而进行特征选择和解释。 2.5支持分类和回归任务 XGBoost的设计使其适用于分类和回归任务。在分类问题中,XGBoost采用逻辑回归损失函数,而在回归问题中,采用平方损失函数。这种灵活性使XGBoost成为解决各种金融问题的理想选择,例如股票价格预测、信用评分等。 2.6高度并行化 XGBoost的实现考虑到了并行计算的优势。在构建每棵树的过程中,XGBoost能够并行处理每个特征的分裂,以及每个样本的梯度计算。这种并行化设计显著提高了训练速度,特别是在大规模数据集和复杂模型的情况下。 图 1一颗典型的XGBoost树 2.7总结 XGBoost这些特点共同使XGBoost成为在金融量化领域广泛应用的强大工具,通过梯度提升框架和其他创新性的设计,XGBoost在性能和灵活性方面都表现出色。在金融数据的处理和预测任务中,XGBoost的特点使其能够应对复杂的市场变化和大规模数据集。 三、XGBoost在量化领域的应用 XGBoost在金融量化中有广泛的应用,涵盖了多个方面,包括股价预测、风险管理、交易策略优化、信用风险评估等。接下来本文将介绍XGBoost在相关领域的一些具体应用。 3.1股价预测 XGBoost可以用于预测股票价格的涨跌趋势。通过历史股价、交易量、技术指标等数据,XGBoost模型可以学习市场规律,从而提供对未来股价走势的预测。例如,可以使用过去若干天的股价数据和技术指标(如移动平均线、相对强度指数等),训练XGBoost模型来预测下一天股价的涨跌。 图 2 XGBoost选股 3.2风险管理 XGBoost在量化投资中也用于风险管理。通过构建风险预测模型,识别潜在风险并采取相应措施,有助于降低投资组合的风险。例如,可以利用XGBoost模型对市场波动性进行预测,从而调整投资组合的权重,以适应不同风险水平。 3.3交易策略优化 XGBoost可用于优化交易策略。模型可以学习市场动态特征,提供更智能的交易建议,以优化投资组合的收益。例如,通过训练XGBoost模型使用多个技术指标和市场因子,可以制定更具效益的交易策略,例如动量策略或趋势策略。 3.4信用风险评估 在金融机构中,XGBoost常用于评估个人或企业的信用风险。通过历史信贷数据、个人信息等,XGBoost模型可以生成信用评分,帮助金融机构更准确地估计借款人的信用风险水平。这对于决定授信额度、利率等方面具有重要意义。 3.5量化套利 XGBoost也可以用于发现潜在的量化套利机会。通过分析市场价格、交易量和其他相关因子,XGBoost模型可以识别出可能存在的价格差异,并帮助量化交易员执行套利策略。这对于迅速变化的市场环境中的快速决策尤为重要。 3.6总结 这些例子突显了XGBoost在金融量化中的多样化应用,从市场预测到风险管理再到交易决策,都展示了XGBoost在提高决策效果和洞察市场的能力。在实际应用中,XGBoost的高性能和灵活性使其成为金融领域中的重要工具之一。 四、XGBoost的算法流程 一个完整的XGBoost算法应该包含以下流程: 数据准备:整理并准备用于训练和测试的金融数据,包括价格、交易量、技术指标等。 特征工程:根据领域知识,进行特征工程以提取有意义的特征,并进行数据标准化和归一化等处理。 划分数据集:将数据集划分为训练集和测试集,以便评估模型的性能。 模型训练:使用XGBoost库训练模型,调整超参数(如学习率、树的深度等)以达到最佳性能。 模型评估:使用测试集评估模型的性能,考察精确度、召回率、F1分数等指标。 特征重要性分析:分析XGBoost模型输出的特征重要性,了解模型对于不同特征的贡献。 图 3XGBoost算法流程 接下来以经典的iris数据集为例,演示典型的XGBoost算法该如何用python实现: # 导入必要的库 import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from xgboost import XGBClassifier from sklearn.datasets import load_iris # 加载Iris数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化XGBoost分类器 model = XGBClassifier(objective='multi:softmax', num_class=3, seed=42) # 训练模型 model.fit(X_train, y_train) # 在测试集上进行预测 y_pred = model.predict(X_test) # 评估模型性能 accuracy = accuracy_score(y_test, y_pred) print(f'模型准确率:{accuracy:.2f}') # 查看特征重要性 feature_importance = model.feature_importances_ feature_names = iris.feature_names # 将特征重要性与特征名对应起来 feature_importance_df = pd.DataFrame({'Feature': feature_names, 'Importance': feature_importance}) feature_importance_df = feature_importance_df.sort_values(by='Importance', ascending=False) # 打印特征重要性 print('\n特征重要性:') print(feature_importance_df) 这个简单的例子演示了使用XGBoost进行多分类任务的流程。在实际应用中,你可能需要更多的数据预处理、调参和交叉验证等步骤,以获得更好的模型性能。此外,对于不同类型的任务(回归、二分类等),XGBoost的参数设置和目标函数可能会有所不同。在实际项目中,确保根据具体任务和数据的特点进行适当的调整。 五、总结 XGBoost在金融量化领域的广泛应用标志着其在这一领域的引领地位。其卓越的预测能力使其成为股价预测、风险管理、信用评估等任务的首选算法。XGBoost不仅在高效处理大规模金融数据方面表现突出,还在各种任务中展现了灵活性和多才多艺的特性。其解释性的优势通过特征重要性评估为金融从业者提供了对模型输出的深入理解,为决策提供了更可信的基础。XGBoost的高性能和实时性能使其成为实时决策和高频交易等场景中的得力助手,应对市场的快速变化。总的来说,XGBoost在金融领域的成功应用不仅提高了决策的准确性,也为金融从业者带来了更多创新和效率的可能性。随着技术的不断发展,XGBoost在金融量化领域的前景仍然十分光明。 参考文献 【1】Chen T , He T , Benesty M .xgboost: Extreme Gradient Boosting[J]. 2016. 【2】陆健健,江开忠.基于XGBoost算法模型的金融客户信用评估研究[J].软件导刊, 2019, 18(4):4.DOI:10.11907/rjdk.182067. 张毅,田浩.XGBoost在量化选股中的应用研究[J].金融管理研究, 2020(2):11.

浅谈截面风格策略与资产配置

2023-11-21

一、截面与资产配置的含义 在金融市场中,资产配置通常指投资者通过投资不同类别的资产,以获得最佳投资组合的行为。它旨在提高投资组合的收益,同时降低风险。而截面策略,通常是指在某一时点,通过某一/某些判断标准,将资产进行强弱分类,再进行差异化配置。(例如:通过量价因子、基本面因子等,判断两组品种的相对强弱关系。投资人可选择做多一组强势的品种,同时做空另一组弱势品种,从而获取组合之下的收益之和为正。或者在仓位管理上多配前者,少配后者)。 因此,我们可以说,截面风格策略是进行资产配置的手段之一。它不再是单独地看待某一资产,而是在多个资产品种中进行选择,获取品种对冲后的收益。相比于单品种时序策略主要考虑在单一资产上的买卖交易行为,截面策略对于交易时点的选择并不那么敏感,也降低了在交易上择时的难度;但相应地,截面策略可能也舍弃了更高的交易精确度。 本文便是旨在探讨截面策略的理论基础和部分实现环节。 二、使用截面策略获利的理由与面临的风险 从获利原理上来讲,品种间相对强弱的延续性是截面策略想要获利的主要因素。 品种间强弱延续性所维持的时间周期决定了可能适于持仓的周期长短。在常用的截面策略中,交易者可能会选择固定的时间周期间隔来判断品种间的相对强弱,并进行调仓。例如量价上使用小时均价,全天均价,每周价格变动等,也包括品种基本面数据,如期货品种的基差、库存、利润等的变动,股票上常用的多因子数据等。 品种间强弱的不对称性有多大,则决定了获利的空间大小。在结构性行情持续发酵的市场中,(也即趋势明显分化,强者恒强,弱者恒弱),可能发生两组都获利的情形。而在市场受宏观性冲击影响,或走势趋于一致时,多空盈亏相抵,表现可能弱化。在无序混乱的行情中,来回调整,也可能出现两头皆负的情况。总体而言,截面策略天然会进行多品种的覆盖交易,品种的分散性持仓可以起到分散收益来源的作用,但也无法完全避免风险共现的情况。这是策略中需要额外考虑的因素。 品种间的相关性也是重要的考虑参数之一。相关性是一种数理上统计的结果,其产生的因果来源有很多,可能是基本面上产业的上下游关系,互为竞争性商品或互补商品,宏观性因素的冲击等,也可能是交易者情绪的助推,资金流动选择的结果。在使用截面策略时,可能会倾向于在强弱两组之间分别选取呈现出低相关性或负相关性的品种;而在同组之中,相关性也影响到仓位的配置,例如在期货截面多空策略中,如果同组内商品的相关性很高,品种的同向波动会加大策略收益的波动性,倘若要平滑可能发生的波动,则要减轻组内相关性高的品种的合计持仓。 图源:网络 三、市场风格变化与截面风格策略在股市、期市的差异 此外,市场风格和情绪会进行切换变化,并充满不确定性,这是交易者必然会面临的情形,那么截面风格策略如何合理应对呢?在某一个确定的时间维度上,如一周,一个月,一年,我们习惯将市场行情描述为上涨,下跌,震荡,行业内更常使用市场贝塔β的概念来形容这一整体情形。 在股市中,和截面风格类策略较类似的是市场中性策略。市场中性策略旨在通过对冲掉市场风险来实现稳定的绝对回报。 图源:网络 首先,我们需要考虑在策略设计上基于市场中性与非中性的差异。市场中性策略通常指的是在系统性风险(比如股票或期货普涨普跌、利率风险等)上无暴露或者具有较低暴露。一个简单的"市场中性"投资组合须包含两个部分,一部分为“多头”组合,另一部分为“空头”组合,且“多头”组合和“空头”组合具有一致或者相近的市值敞口或者贝塔敞口。也可细化到进一步的行业、风格因子权重上保持一致或接近。由于交易机制的限制,在国内的股票市场中性策略多采用股指期货作为空头配置。而市场非中性策略,则是对中性策略的偏离,即交易者可能会偏向于某一个方向上的交易,放大某个方向上的敞口。从这个角度上来讲,股票上的非中性策略,更多是代表了对大盘贝塔方向的押注,例如在牛市中的多头配比超过空头配比,以获取更高超额。 事实上,在股票市场中对大盘走势(贝塔)的关注度明显高于在期货市场中对商品指数的关注度。这是因为股票之间以估值为纽带,估值代表了市场的情绪、资金流动性等外部环境,并最终体现为整体价格走势。而大宗商品品种之间的基本面差异度较大,各个商品之间可能缺乏明显的关联度,且交易机制上多空都可交易,商品指数可能较难代表市场的整体行情方向。 因此,在期货市场中,基于基本面考虑的截面多空策略可能更关注板块或品种间的强弱差异,板块或品种间某个方向上的仓位超配更多是基于对板块或品种强弱程度的押注;而期货中基于量价的截面策略则客观上也会表现出这种板块间的超配差异。在实践中,期货市场中的截面策略更多是非中性的,即多空市值允许保持一定量的敞口交易。 总体而言,截面策略同样依赖于某种趋势的连续性,在市场强弱关系明显的时候往往表现更好,无序的市场波动状态和突然的反转也不是使用截面策略的好时期。 四、截面风格策略的延伸/普适程度 截面策略考虑的核心是配比多个资产之间的强弱关系,其广泛的延伸可以推演到全球宏观对冲,宏观上大类资产间的轮动可以提供策略资产多空配置的底层驱动力。 注:本文并未具体复现某一量化策略或指标,而是探讨一些简单的交易逻辑,厘清策略实现中需要考虑的现实因素。量化是一种手段,而底层的交易逻辑合理,则会加强我们对交易策略的信任感。

卷积神经网络与量化交易

2023-10-17

卷积神经网络与量化交易 在处理时间序列数据时,人们通常会使用LSTM模型,卷积神经网络CNN模型使用的较少,因为CNN主要被用于处理图像。但随着CNN在图像处理上被更广泛地使用和研究,或许将时间序列数据通过合理的方式以图像传入CNN来进行分析、预测也会有意想不到的效果。本文将简单介绍CNN的原理以及在量化交易中使用CNN的三个案例。 一.卷积神经网络 CNN 卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像和语音识别、自然语言处理等任务的深度学习模型。与传统的全连接神经网络相比,卷积神经网络在处理图像等二维数据时具有更好的效果。 卷积神经网络的核心思想是利用卷积运算和池化操作对图像进行特征提取。具体来说,卷积神经网络通过多个卷积层和池化层级联组成,其中卷积层用于提取图像中的局部特征,而池化层则用于减小特征空间的大小,从而降低计算复杂度。 卷积层: 卷积运算可以理解为由原图和滤镜的相组合,提取出一个包含图像局部特征的特征图。假设有如下图所示的由0和1组成的5*5矩阵(原图)和3*3矩阵(滤镜): 将两个矩阵相乘,得到下图右侧的特征图。 实际效果: 池化层: 池化操作包括最大池化(Max Pooling)、平均池化(Average Pooling)与和池化(Sum Pooling),最大池化在每个池化区域内选择最大的特征值作为其输出,忽略其他特征值,通常用于提取输入数据中的最显著特征,例如物体的边缘和角点等。 平均池化在每个池化区域内计算特征值的平均值作为其输出,通常用于平滑输入数据,减少特征图中的噪声和冗余信息。和池化在每个池化区域内计算特征值的和作为其输出,与平均池化类似,但更少使用,通常用于对输入数据的特定情况进行建模。 在卷积和池化之后,将得到矩阵摊平成矢量传入全连接层,将特征映射到预测结果上。 由卷积层、池化层、全连接层组成的卷积层神经网络结构如下: 除了以上介绍的层外,卷积神经网络还可以包括其他类型的层,如批量归一化层、Dropout层等。批量归一化层用于加速训练过程和改善模型效果,Dropout层则用于防止过拟合。总体来说,卷积神经网络通过对图像进行卷积操作和池化操作实现对图像特征的提取和压缩,有效地降低了神经网络模型的复杂度,提升了模型的性能和鲁棒性,成为了当今图像识别领域最广泛应用的深度学习模型之一。 二.CNN在量化交易中的运用 案例一 使用CNN预测股票价格 O.B. Sezer与A.M.Ozbayoglu 将15个常用的技术分析指标(RSI, Williams %R, WMA, EMA, SMA, HMA, Triple EMA, CCI, CMO, MACD, PPO, ROC, CMFI, DMI, PSI)在DOW 30中的30支股票和常见的9支ETF从2002至2017的每日收盘价上应用,并将每15天的输出(1,0,-1 分别对应买入、持有、卖出),作为一个15*15的矩阵作为input放入CNN中,进行训练。 input生成的图像如下: CNN使用的两个卷积操作的公式如下(t代表time, I代表image, K代表kernel) 最后将CNN模型预测的买入、持有、卖出操作的值代入实际价格,将回测的年化利率与Buy & Hold(BaH)策略, RSI (14天,70-30)策略,SMA(50天)策略,LSTM,MLP回归策略回测的年化利率进行比较,结果如下: ETFs DOW 30中的股票 可见CNN对该实验中的大部分标的资产的预测能力相比其他常见的策略有显著的优势。 案例二 使用CNN分析LOB,并预测短期价格 在这项研究中,Tsantekidis使用的数据是limit order book上从买10到卖10的二十档的价格和成交量,用于测试的是10天5支股票共450万个LOB数据。再将数据进行z-score标准化后,将前中间价和下一个中间价进行平滑处理。 之后对所有数据按如下方式打标签,其中α是可以保证价格被判断为上涨或下跌的最小变动数。 进行以上数据处理之后,将n个100*40的矩阵作为input输入如下图的CNN模型(100指每个价格的预测用前100组数据,40是20档乘以2(价格、成交量)),以此预测mid price。 最终输出的结果的错误率(cost)、查准率(f1)和精确度(kappa)如下: 将CNN预测的结果与SVM和MLP模型进行比较: 我们发现CNN在绝大多数情况下的预测精准度明显高于SVM和MLP,不过此研究仅测试了5支股票10天的LOB数据,使用CNN的方法有一定参考性,但实际应用还需要更多的测试和比较。 案例三 使用CNN与LSTM构建一个GAN来预测股票价格 生成对抗网络(generativeadversarialnetwork, GAN)由一个生成器(generator)和判别器(discriminator)组成,其中生成器用来生成与真实样本相似的合成数据,判别器用来评估给定数据是否是真实数据还是生成的数据。GAN的训练过程是通过Generator和Discriminator之间的博弈来实现的。Generator试图生成更逼真的合成数据以欺骗Discriminator,而Discriminator则努力区分真实数据和合成数据。这个过程是一个动态的竞争和学习过程,最终目标是找到一个平衡点,使得生成器能够生成高质量的合成数据,并且判别器无法准确区分真实数据和合成数据。Staffini的深度卷积生成对抗网络(Deep Convolutional Generative AdversarialNetwork (DCGAN))使用CNN和LSTM构建了生成器,使用两个CNN构建了判别器,并使用这套模型在意大利的FTSE MIB指数中的10支股票从2005年至2021年的收盘价、开盘价、最高最低价、和成交量和一系列技术指标的结果(和案例一相似)上进行训练,并预测的收盘价。使用DCGAN可以模拟一个交易员的成长历程,从做出不切实际的股价预测(最初的生成器),通过自我矫正以及常年累月学习正确的研究方法(判别器的判别过程),最终成为一个高胜率的交易员(最终的生成器)。 最终将模型预测的结果与差分自回归移动平均模型(ARIMAX)、随机森林、LSTM、常规GAN的预测结果进行比较,结果如下: 可见DCGAN的预测效果更好,错误率明显更低。 从以上三个使用不同方法和数据运用CNN来预测股票价格的案例中我们可以看出,CNN在量化交易的实际运用中有一定的意义和效果,不过仍需要更多的检验。案例一和三中的数据输入均使用了一系列技术指标的结果,最终的预测结果还需要和使用同样指标的多因子模型进行相关性检测;案例二使用了LOB数据作为输入,但由于LOB数据过于庞大,只能使用5支股票10天的数据进行检测,选择的样本可能不具有普适性;案例三虽然选择的时间长度很长,但标的资产都是意大利的股票,该模型对国际主流的标的资产的预测能力还需要进行进一步的测试。 参考文献: Sezer O.B., Ozbayoglu A.M., 2018, Algorithmic financial trading with deep convolutional neuralnetworks: Time series to image conversion approach Tsantekidis, A., Passalis, N., Tefas, A., Kanniainen, J., Gabbouj, M., and Iosifidis, A.,2017, “Forecasting stock prices from the limit order book using convolutionalneural networks,” in 19th IEEE Conference on Business Informatics, Vol. 1 (Thessaloniki), 7–12. Staffini Alessio, 2022, Stock Price Forecasting by a Deep Convolutional Generative Adversarial Network, Front. Artif. Intell. Prabhu, 2018, ‘Understanding of Convolutional Neural Network (CNN) — Deep Learning,’ https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-deep-learning-99760835f148

马尔科夫决策过程与做市策略

2023-09-19

低延迟均线LLT模型与交易择时

2023-08-21

投资如果能够准确把握市场的走势,那将是最为简单有效的。但是我们常常会面临:平滑性越好,也就是局部的波动性影响会变小,但是同时会产生很高的延迟。而LLT模型则很好的平衡了这个问题,在能够很好的把握市场整体变化的同时,并且能够凸显出转折点,降低延迟性。 一、传统均线 1. MA均线(传统移动平均线) (1)计算公式 (2)特点:MA均线采用前面n日价格的算数平均值,其中很好的刻画的价格趋势,但是n值越大,延迟性越高。 (3)近一年上证指数的变化以及MA均线示意图 2. EMA均线 (1)EMA均线是在MA均线的基础上面改进而来,通过对靠近计算日的价格赋予更高的权重,利用了趋势的连续性。 (2)计算公式 其中EMA(T)和EMA(T-1)分别代表EMA均线T和T-1日的价格。@表示0-1的参数 二、LLT模型简介 1. 模型理解: (1)EMA均线指标的计算,正是信号处理当中的一阶线性滤波处理器。而LLT模型是二阶低通滤波器。其延迟反应相比于EMA均线的有了很大的改进。 (2)数学原理:LLT模型采用Z变换。本质是离散时间的laplace变换。 其中z表示复频域,f(k)表示时域信号。 定义传输函数 传输函数定义为:输出信号z变换和输入信号z变换的比值。看作输出和输入强度的比值。得到EMA均线的传输函数: 传输函数是是指零初始条件下线性系统响应(即输出)量的拉普拉斯变换(或z变换)与激励(即输入)量的拉普拉斯变换之比。传输函数代表了输入和输出之间的联系,不受输入输出值的影响,可以用它来分析系统的动态特性等相关性质。 2. LLT模型的设计: LLT是一个二阶的滤波器,广发证券此研报作者做了四步转化将EMA一阶滤波器转化为LLT二阶滤波器: (1)为了使构造的高通滤波器,即不存在高频分量输出的1−H(z),首先修改EMA公式为: 将公式转换至频域以便于进行滤波,那么修改后的EMA滤波器变为 (2)构建一阶高通滤波器,其结构为 (3)完成二阶滤波函数的构建 2阶高通滤波器为: (4)得到了二阶高通滤波函数: (5)最后再经过Laplace逆变换得到LLT的公式为 (6)模型解释: 应该在LLT值大于LLT的上一值时大趋势来临,买入股票:当LLT值小于LLT前值时大趋势变为下降,卖出股票。 三、模型回测以及总结 在2005年-2023年对此策略进行回测,年化收益能够做到10%以上。发现部分细节上和大盘波动趋势相近。在控制回撤这方面能够前期做到相对比较好,尤其是在风险来临的时候。但是在2020年之后,模型收益较差。所以综上认为LLT模型可以作为风控模型,来控制回撤,辅助于其他模型。 资料来源: 1.广发证券:罗军、俞文冰、叶涛、安宁宁《低延迟趋势线与交易性择时——短线择时策略研究之三》 2. https://zhuanlan.zhihu.com/p/34097449

当前是:2/10 共47条信息 首页 上一页 下一页 尾页 跳转到:第
021-5068 6619 hr@cosmostar.cn
© 2017 RUNNING RECORDS LLC. ALL RIGHTS RESERVED. 沪ICP备18015628号-1