金融数据分析-以Python为工具 课件 8、9 建模分析、股票行情数据分析_第1页
金融数据分析-以Python为工具 课件 8、9 建模分析、股票行情数据分析_第2页
金融数据分析-以Python为工具 课件 8、9 建模分析、股票行情数据分析_第3页
金融数据分析-以Python为工具 课件 8、9 建模分析、股票行情数据分析_第4页
金融数据分析-以Python为工具 课件 8、9 建模分析、股票行情数据分析_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python金融数据分析数据建模分析Chapter088.1数据和模型的关系模型是数据分析的一种重要工具,用于表达数据规律。数据数据代表客观事实,其中隐含着规律。模型模型是对数据的抽象,通过定量化、结构化、系统化的语言来表达数据中隐含的规律。无法找到完美模型的原因数据噪声由于随机性和偶然性,加上采集、存储等数据管理流程中的误差,现实中的数据会受到噪声的影响。建模的简化需要模型本身需要很多的假设,这些假设中很多在现实中是无法满足的。假设是为了简化建模,排除干扰因素,更有利于抓住事物的本质。无法找到完美模型的原因3) 建模的目的建模的目的并不是要得到完美刻画现实的模型,而是一个足够准确但又足够简洁的模型。模型的表达需要可解释性和简洁性,这可能会牺牲一定的准确性。一个好的模型是准确性、可解释性和简洁性的平衡。8.2经典的金融模型我们把金融数据分析模型分为两类:基于金融理论的模型和基于数据驱动的模型。前者侧重对现有金融现象的描述和解释;后者侧重对未知数据的预测。通过金融模型解释金融市场中存在的各种金融现象、资产的特性、价值影响因素、价格变化规律等具有十分重要的意义。金融模型或金融理论提出的出发点并不一定是数据,更多的是金融现象,但在提出模型后仍然需要通过数据实证分析来检验其正确性。8.2经典的金融模型1) 投资组合理论

1952年由马科维茨提出,引发了“第一次华尔街革命”,荣获1990年的诺贝尔经济学奖。投资组合理论假设投资者以期望收益率和方差(或标准差)来评价单个证券或证券组合;投资者是风险厌恶的,在收益一定时追求风险最小化,在风险一定时追求收益最大化。在此前提下求解最优组合比例。8.2经典的金融模型

8.2经典的金融模型

8.2经典的金融模型4) 有效市场假说有效市场假说(EfficientMarketsHypothesis,EMH)是由法玛于1970年提出的关于证券市场价格行为的理论。该假说并没有用到精确的数学语言,但有助于对股票市场的描述和理解。此外,由于现实中投资者不会完全理性,有效的市场也不一定就是一直有效的,市场的无效或临时失效是使投资策略研究变得有意义的前提条件。8.2经典的金融模型

8.2经典的金融模型5) 三因子模型Fama因此获得了2013年的诺贝尔经济学奖,并且三因子模型被评选委员会肯定为金融学过去25年最重大的成就之一。Fama和French又在模型中加入盈利水平因子和投资水平因子,衍生出五因子模型。此外还有四因子、六因子等模型。Fama-French三因子模型的意义在于为多因素模型找到了具体能解释股票收益差异的因子。量化投资中最流行的多因子选股模型也是基于这个思想。8.3基于机器学习的数据建模机器学习机器学习是人工智能的一个分支,它致力于研究如何通过计算的手段,利用数据来建立并改善模型的性能。目前主流的机器学习是统计学习,而深度学习是机器学习中的一个热门方向。8.3基于机器学习的数据建模主流的机器学习方式是“从样例中学习”,即从训练样本中归纳出模型,具体可以分为监督学习、无监督学习和半监督学习。如果用于学习的数据具有标记信息,则称为监督学习,典型代表是回归和分类。如果学习过程中没有用到标记信息,则称为无监督学习,典型代表为聚类和降维。如果学习过程中用到部分样本的标记信息,则称为半监督学习。深度学习是从另一个角度描述。强化学习也是一种监督学习。8.3基于机器学习的数据建模机器学习是人工智能的核心,已经广泛地应用于经济生产和日常生活中。机器学习在机器人、无人驾驶、人脸识别、语音识别、自然语言处理、搜索引擎、证券投资、防欺诈、生物医学、天气预报、能源勘探、环境监测等方面都有广泛的应用。ChatGPT:GenerativePretrainedTransformance的核心是深度学习模型。机器学习的流程机器学习模型选择机器学习的流程特征工程特征工程中的某些步骤是不依赖于模型的,例如数据清洗、特征过滤等;而有些有些步骤是与具体的模型有关的,例如类别属性编码、特殊函数变换、特征选择的封装法和嵌入法等。如果模型有调整,则需要重新进行相应的特征工程。机器学习的流程样本划分该步骤将用于学习的样本划分为不相交的训练集、验证集和测试集,其中训练集和测试集是必须的,验证集主要用于超参数调参,根据需要划分。超参数指在建模前需要人为确定数值的参数,不直接依赖于训练数据,但会对结果产生影响。常见的样本划分方法有留出法、交叉验证法和自助法。模型性能评估在机器学习中评估模型性能的标准就是模型的泛化性能,指的是模型在不可见样本上的预测能力。对于回归问题,均方误差是常见的指标。对于分类问题,一个最直接的性能指标就是分类准确率。对二分类问题,机器学习中还有基于混淆矩阵的更强大的性能评估工具。混淆矩阵

真实情况预测结果正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)ROC曲线

ROC曲线ROC曲线要绘制ROC曲线,我们只需要一个测试样本但要求模型能够给出连续的预测值,即所谓的“软预测”,而不是仅仅是0或1的“硬”预测。在得到每个样例的正例概率预测之后,设定一个阈值,将概率大于或等于阈值的样例划分为正例,其余划分为反例。这样每个阈值就会对应于一个混淆矩阵。当阈值从1逐渐减小到0时,就得到一系列的混淆矩阵,从而就得到一系列的(FPR,TPR)点对,对应于ROC曲线上的点。AUC

ROC曲线是评估模型性能的较客观的方法。曲线越靠近左上方,模型性能越好。我们把连接(0,0)点和(1,1)点的线段称为随机猜测线,一般模型的ROC曲线都位于随机猜测线上方。

为了更精确地比较模型性能,进一步引入AUC(areaunderROCcurve)指标,即ROC曲线包围的面积。AUC越大,则模型的性能越好,完美模型的AUC为1,随机猜测模型的AUC为0.5。性能评估例子如果取阈值为0.55,则样例1-6被划分为正例,7-10被划分为反例,样例2、6、9被误分类。样例12345678910真实标记1011100010预测值0.90.80.70.650.60.550.50.40.30.2性能评估例子

Python金融数据分析股票行情数据分析Chapter099.1股票K线分析概览股票数据的分析可以分为基本面分析和技术分析两大类。基本面分析宏观经济周期、金融市场环境、行业发展状况、公司发展前景。技术面分析假设市场行为反映了市场的所有因素的影响、市场价格呈趋势变动、历史会重演。股票历史行情数据K线技术分析经过200多年的演进,K线技术分析形成了具有完整形式和分析理论的一套方法。根据不同的情况,K线可能呈现光头(例如最高价等于收盘价的阳线,没有上影线)、光脚(例如最低价等于开盘价阳线,没有下影线)、光头光脚线、十字线(开盘价等于收盘价)、T字线、一字线等。K线技术分析案例本章将选择青岛啤酒(600600)从2007年1月4日到2008年12月31日的日线行情数据进行分析。首先进行探索性数据分析,再对数据用mplfinance包进行可视化展示,最后用TA-Lib包对数据进行K线形态识别。9.2探索性数据分析具体过程和结果见JupyterNotebook代码文件。9.3价格数据可视化

mplfinance(/matplotlib/mplfinance)是一个基于Matplotlib和Pandas构建的金融数据可视化Python包。其旧版本名称为mpl_finance。Anaconda中没有包含mplfinance,用户需要通过pipinstallmplfinance命令来安装。9.3价格数据可视化

mplfinance最重要的功能为基于股票(或其他金融工具)的行情数据绘制K线图。其典型的绘图结果包含上下两个子图,第一个子图为K线图,第二个子图为成交量图。mplfinance绘制K线图的函数主要有两个:plot()和make_addplot()。9.3价格数据可视化mplfinance中典型的绘图步骤为:importmplfinanceasmpfmpf.make_marketcolors()#设置绘图颜色mpf.make_mpf_style()#设置绘图风格mfp.plot()#绘图mpf.make_addplot()#添加额外的图9.3价格数据可视化1) mplfinance.plot(data,**kwargs,style,addplot)其中data设置绘图数据,为包含股票行情序列的PandasDataFrame对象,其索引为日期,至少包含“Open”、“High”、“Low”、“Close”、“Volume”这5列数据;kwargs是不定长参数,用于设置图形基本参数。9.3价格数据可视化2) mplfinance.make_mpf_style(marketcolors,gridaxis,gridstyle,y_on_right)该函数生成图形的风格对象,其返回值用于设置mplfinance.plot()函数的style参数,marketcolors通过make_marketcolors()生成:3) mplfinance.make_marketcolors(up,down,edge,wick,volume,inherit)9.3价格数据可视化4) mplfinance.make_addplot(data,type,panel=0,**kwargs)该函数用于向主图添加新的图形,例如在K线图中添加布林带线。具体过程和结果见JupyterNotebook代码文件。9.4技术指标计算及K线模式识别TA-Lib(TechnicalAnalysisLibrary,官网:/)是一个用于对金融市场数据进行技术分析的Python包,支持150多个技术指标的计算,如MA、MACD、RSI、布林带等,具体函数见表9-2。TA-Lib更强大的功能在于K线模式识别,即在历史行情数据中检测特定的K线形态,从而对交易决策提供指导。TA-Lib包的安装过程容易出错,建议使用TA-Lib的离线安装包进行安装。9.4技术指标计算及K线模式识别T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论