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

芷瀚动态

News

强化学习在金融量化领域的运用

2024-02-06

随着科技的迅速发展和金融市场的不断演变,强化学习作为一种先进的机器学习技术,正逐渐在金融领域展现其强大的潜力。在金融量化的探索中,强化学习不仅仅是一种新兴的方法,更是一把独特的钥匙,解锁了以往难以攻克的问题。从交易策略的优化到投资组合的管理,从风险控制到市场制度的设计,强化学习正为金融业务的多个层面提供着新的思路和解决方案。本文将深入探讨强化学习在金融量化中的应用,剖析其在不同场景下的实际成果,并探讨其在面对金融市场的复杂性和不确定性时所面临的挑战。在这个崭新的交叉领域,强化学习正引领着金融技术创新的浪潮,为投资者和金融机构带来了前所未有的机遇与挑战。 一、强化学习简介 强化学习作为一种先进的机器学习方法,具有一系列优点和挑战。其主要优势之一是适应性强,能够在动态和复杂的环境中灵活调整决策策略。此外,与传统监督学习相比,强化学习无需大量标注的数据,更适用于数据稀缺的场景。强化学习能够处理包括连续和离散动作空间在内的多样化问题,并具有自主发现隐含规律的能力。 然而,强化学习也存在一些挑战。其中,样本效率较低是一个突出的问题,通常需要大量的训练样本,导致学习过程相对较慢。训练不稳定是另一个关键问题,有时算法可能会陷入局部最优解或者波动较大,增加了优化的难度。此外,强化学习在探索未知空间和利用已知信息之间需要取得平衡,过度依赖已知信息可能导致错过潜在更优解的机会。 在强化学习的经典算法中,Q-Learning通过值函数(Q值)学习最优策略,而Deep Q Network(DQN)则将深度学习引入Q-learning以处理更复杂的问题。Policy Gradient Methods通过直接学习策略来解决问题,而Actor-Critic算法结合了策略梯度和值函数方法。Proximal Policy Optimization(PPO)是一种基于策略梯度的算法,通过在训练过程中对策略进行约束以提高算法的稳定性。这些经典算法代表了强化学习领域的不同思路和方法,各自在应对问题和挑战时展现出独特的优势。 二、Q-leraning在金融量化领域的典型运用 在金融量化领域,Q-learning是一种广泛应用于交易策略优化的强化学习算法。其核心流程包括首先定义状态空间,选择适当的市场特征,如市场指标、技术指标和波动率,作为状态。接着,定义动作空间,明确可执行的交易动作,如买入、卖出或持有。为了存储学到的策略,初始化Q-table,其中记录了每个状态-动作对应的Q值,初始值为零。为了使算法能够学到合适的策略,需要设计奖励函数,根据交易绩效给予奖励或惩罚,这一步骤直接影响到算法的学习效果。 Q-learning的核心思想在于通过与市场环境的交互学习,根据奖励信号更新Q值。在选择动作时,算法可能会进行探索(exploration)或利用(exploitation),以在当前状态下做出最优的决策。执行动作后,观察市场反馈,获得奖励,并根据Q-learning的更新规则,更新Q值以调整策略。 整个过程是一个迭代学习的过程,通过不断尝试和调整,算法逐渐学习到在不同市场状态下的最优交易策略。最终,基于学到的Q值,算法能够在真实市场中执行最优的交易决策。通过流程图的形式,可以直观地展示Q-learning在金融量化中的典型应用流程,帮助更好地理解该算法在交易策略优化中的作用。 图 1 Q-leraning流程 三、D-DQN在金融量化领域的典型运用 在金融量化领域,D-DQN(Dueling Deep Q Network)作为深度强化学习的一种改进算法,常用于优化股票交易策略,以提升投资绩效。其算法流程如下: 首先,需要定义状态空间,确定股票市场的状态表示方式,可能包括技术指标、市场波动性、股价历史数据等。接着,规定可执行的交易动作,如买入、卖出和持有。为了更好地学习策略,引入了D-DQN的创新之处,即使用深度神经网络,包括价值网络和优势网络,将Q值分解为状态的价值和动作的优势。 图 2 D-DQN算法流程 在算法的执行过程中,利用经验回放机制,将历史交易数据存储在缓冲区中,以提高样本的有效利用。定义奖励函数根据交易绩效给予奖励或惩罚,以引导算法学到更好的策略。通过选择动作、执行动作并观察市场反馈,获得奖励,并通过优化算法更新神经网络的参数。 整个过程是一个迭代学习的过程,通过不断地选择动作、执行和更新网络,D-DQN逐渐学习到在不同市场状态下的最优交易策略。最终,基于学到的网络参数,算法能够在真实市场中执行最优的交易决策。算法的性能取决于神经网络的设计和参数调优,以及对奖励函数的巧妙设计。这一流程使D-DQN成为金融量化领域中一种有效的策略优化工具。 四、Actor-Critic在金融量化领域的典型运用 在金融量化领域,Actor-Critic算法被广泛应用于投资组合管理问题。其典型运用为优化资产配置,使投资组合在复杂的市场环境中取得最佳绩效。以下是Actor-Critic在金融量化中的典型运用以及相应的算法流程: 算法开始时,需要定义状态空间,选择合适的市场特征和资产收益率等,以描述当前投资组合的状态。接着,制定可执行的投资组合调整策略,如资产权重的调整,构建演员和评论家两个神经网络。 在演员-评论家结构中,演员网络负责学习策略,根据当前状态选择执行的投资组合调整动作。奖励函数则根据投资组合绩效给予奖励或惩罚,需要巧妙设计以平衡风险和回报。执行选定的动作后,通过评论家网络估计当前状态的价值,并计算优势值(Advantage),用于更新演员网络的梯度。 演员和评论家网络的参数通过策略梯度方法和值函数方法进行更新。迭代执行这一学习过程,通过不断试错,算法能够学习到最优的投资组合策略。最终,基于学到的演员网络,选择最优的投资组合调整策略,并将其应用于实际的投资组合管理中。 图 3Actor-Critic算法流程 在金融量化领域,Actor-Critic算法为多资产的复杂投资组合管理问题提供了一种强大而灵活的优化工具。其性能取决于网络结构、奖励函数和参数的巧妙设计。 五、总结 在金融量化领域,强化学习算法如Q-learning、D-DQN和Actor-Critic等展现了广泛的应用前景。Q-learning在交易策略优化中通过学习最优动作序列,特别适用于金融市场的复杂环境。D-DQN以其对Q-learning的深度扩展,在股票交易策略优化中表现出色,利用深度神经网络更好地学习复杂的交易规律。而Actor-Critic算法则在投资组合管理中发挥作用,通过演员网络学习策略、评论家网络估计价值,优化资产配置,提高投资绩效。 这些算法共同的优点包括适应性强、无需大量标注数据、能够处理复杂的动作空间等。然而,样本效率低、训练不稳定以及探索与利用的平衡仍然是强化学习面临的挑战。在具体应用中,对奖励函数的巧妙设计、网络结构的合理构建以及参数的精心调整,是确保算法性能的关键因素。 总体而言,强化学习在金融量化中的应用为解决复杂的投资问题提供了新的思路和工具。这一交叉领域的不断探索和创新,有望为投资者和金融机构带来更多前所未有的机遇和解决方案。 参考文献 [1]Christopher,J,C,et al.Q-learning[J].Machine Learning, 1992.DOI:10.1007/BF00992698. [2]Hasselt H V , Guez A , Silver D .Deep Reinforcement Learning with Double Q-learning[J].Computer ence, 2015.DOI:10.48550/arXiv.1509.06461. [3] https://blog.csdn.net/shoppingend/article/details/124341639 Actor-Critic(演员-评论家)算法详解

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

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