楼主: kedemingshi
979 34

[量化金融] 评估常见技术交易模型的有效性 [推广有奖]

21
nandehutu2022 在职认证  发表于 2022-6-24 11:26:05
返回(((标准偏差和/(长度(新列表)-1))**(0.5)))44。45、def Performance\\u percentage():46。跑赢大市计数=0 47。total\\u count=0 48。全球比较49。50、对于范围内的r(0,len(比较索引)):51。如果比较[股票行情输入+\'指示性投资\']。iloc[r]>比较[股票行情输入+\'持续投资\']。iloc[右]:52。跑赢大市计数+=1 53。total\\u count+=1 54。跑赢大市百分比=(跑赢大市计数/总计数)*100 55。56、收益率优于百分比5.3.2。确定最佳移动平均线周期当开始进行投资模拟以测试移动平均线计划时,Ibegan将处理移动平均线周期。有这么多的选择,每个组合都提供不同的结果,我自然想知道哪个组合通常提供最好的结果。我创建了一个程序,该程序将测试使用交叉策略的结果,对于5到49之间的短SMA和10到149之间的长SMA的每个组合,输入股票(长SMA必须大于短SMA)。该测试将记录使用该策略将提供比持续投资更多利润的市场收盘百分比,以及交叉策略投资和持续投资的波动率比率(24)。过去5年(2014年1月1日至2019年1月1日)对以下30只股票进行了测试:Aaplamdbabbydaldiswdpebayfbflgegisgooglhpqintcjnjksmmetnflxnoknvdanxpiqcomsbuxsirittevatsla该测试包括169880个试验和339760个数据点。数据和周期中存在一些明显的趋势,平均而言,这些趋势提供了最大的利润和/或最小的波动性。第一个可见的趋势是在分析了SMA空头的平均跑赢大市百分比和波动率之后出现的。

22
kedemingshi 在职认证  发表于 2022-6-24 11:26:09
SMA越小、越短,投资的波动性越大,但其表现也越好。长SMA几乎可以看到完全相同的端部。-25-当将短期SMA与长期SMA的比率与波动性或绩效进行比较时,分析短期SMA与长期SMA的比率时,没有明显的趋势,这表明战略的最佳时期具有特定的值,而不是长期SMA时期必须与短期SMA时期相适应的比率。-26-当计算每个股票的平均波动率和平均跑赢大市百分比,并将它们相互对比时,数据中有一个明显的趋势。很明显,更好的业绩来自更具波动性的投资,进一步证实了高风险、高回报的概念。-27-最后,以下是前5对和后5对移动平均周期的列表,用于移动平均交叉,与持续投资和波动率的跑赢率有关。平均跑赢率平均波动率RankShortLong跑赢率82.1810180281.344328179.3218928178.8432352876.5255751517.344182617.0724772616.9771438516.4960422116.16093988 RankShortLong波动率0.592520.6008840.602430.6026120.6036491.3174851.3710951.38281.4699671.5334975.3.3。为了测试该模型,我们将从1月1日起投资三支交易量最大的股票(AdvancedMicro Devices(AMD)、通用电气(GE)和美国银行(BAC)),以及两大主要指数(标准普尔500指数(SPY)和道琼斯指数(DJI))。2017年1月1日。2019年。对于培训数据,模型将使用2年的历史数据,即1月1日。2015年1月1日。

23
nandehutu2022 在职认证  发表于 2022-6-24 11:26:13
2017年-28日-AMD持续投资最终价格:18.46指示性投资最终价格:27.36跑赢率:19.47%波动率:1.413GE持续投资最终价格:7.27指示性投资最终价格:22.43跑赢率:99.797%波动率:0.269-29-BAC持续投资最终价格:24.38指示性投资最终价格:29.18跑赢率:88.23%波动率:1.238s连续投资终价:248.82指示性投资终价:273.65跑赢率:46.85%波动率:1.235-30-^DJI连续投资终价:23327.46指示性投资终价:24778.38跑赢率:24.138波动率:1.1326。结论第四,我们探索了三种投资模式。线性回归和KNN模型并没有改善指数的投资结果,但股票的结果有所不同。虽然使用BAC和AMD实现这些模型并没有提高性能,但确实减少了投资波动,但这两种机器学习模型都避免了GE的下跌。移动平均交叉策略的表现要好得多。它每次的表现都优于持续投资,但在大多数试验中,它的波动性更大。结果如5.3.3所示。通过使用5天SMA和10天SMA作为移动平均值来实现。这被证明是5.3.2中为优化性能而使用的最有效的时段组合。-31 —5.3.2.

24
kedemingshi 在职认证  发表于 2022-6-24 11:26:16
由169880个试验组成,分析表明,在提高绩效和降低波动性方面,以下时段组合是最好的,也是最差的。平均跑赢率平均波动率RankShortLong跑赢率82.1810180281.344328179.3218928178.8432352876.52557515117.344182617.0724772616.9771438516.4960422116.16093988 RankShortLongOperability 0.592520.6008840.602430.6026120.6036491.3174851.3710951.38281.4699671.533497-32-除了确定SMA期的最佳组合外,还有几个明显的趋势。SMA周期越短,表现越好,与持续投资相关的波动性越大。-33-当比较跑赢大市百分比和波动率时,可以看出它们之间存在直接关系。平均而言,在投资变得更不稳定的试验中,italso的表现也更好。应用和扩展本文中应用的技能和技术以及讨论的许多主题对许多人来说都不是共同的知识。在公立学校,财务知识严重缺乏。我的两篇论文都与金融相关,部分原因是为了帮助我的同行更好地了解影响我们日常生活的经济和市场。本文中三个模型的开发和评估也可以作为更复杂的财务分析和机器学习的一个环节。对于其他人来说,这可能仍然是一种搁浅的介绍,让他们接触到有助于了解的概念。对于投资者来说,对这些模型的评估以及它们之间的比较可以帮助他们决定在进行投资时采用哪种模型。虽然这些模型并非万无一失,但它们的表现通常比猜测股票是否会在第二天上涨或下跌要好,有一半的机会,甚至有一半的机会持续投资很长一段时间。

25
何人来此 在职认证  发表于 2022-6-24 11:26:19
使用模型也有助于在交易时将情绪和贪婪放在一边,创建一个基于技术和科学的预测,而不是直觉。通过尝试提高试验的成功率,并对本文中的三个模型进行更广泛的测试,以创建更可靠的比较,可以进一步扩展这项研究。还可以实现更多的机器学习模型并相互比较。例如,支持向量分类器(SVC)是一种对数据进行分类的监督学习分类模型,可用于预测股票价格,其性能可能优于本文中的所有三种模型。现在我们可以实现分类模型并将其与常用的回归模型进行比较。我们还可以尝试更多的技术性交易策略,比如RSI(RelativeStrength Index),它根据股票的潜在价值以及是否“超买”对股票进行排名。8、参考Beattie,A.(2018年12月21日)。证券交易所的诞生。恢复fromhttp://www.investopedia.com/articles/07/stock-exchange-history.aspCaproasia.(2017年1月30日)。恢复fromhttps://www.caproasia.com/2015/05/08/35-quotes-from-benjamin-graham/Foote,K.D.(2019年3月13日)。机器学习的简史。恢复fromhttps://www.dataversity.net/a-brief-history-of-machine-learning/Hayes,A.(2019年4月14日)。简单移动平均线-SMA。恢复fromhttps://www.investopedia.com/terms/s/sma.aspHayes,A.(2019年5月15日)。移动平均值(MA)。恢复fromhttps://www.investopedia.com/terms/m/movingaverage.asp-35-Hur,J.(2018年12月4日)。股票市场的历史。恢复fromhttps://bebusinessed.com/history/history-of-the-stock-market/Kenton,W.(2018年12月13日)。调整后的收盘价。恢复fromhttp://www.investopedia.com/terms/a/adjusted_closing_price.aspKentonW

26
nandehutu2022 在职认证  发表于 2022-6-24 11:26:22
(2018年12月13日)。布莱克-斯科尔斯模型。恢复fromhttp://www.investopedia.com/terms/b/blackscholes.aspKenton,W.(2018年12月13日)。财务建模。从www检索。投资领域。com/terms/f/financialmodeling。aspMitchell,C.(2019年5月8日)。趋势交易:4个最常见的指标。检索自https://www.investopedia.com/articles/active-trading/041814/four-mostcommonlyused-indicators-trend-trading.aspMoving平均值-简单和指数。(2019年3月14日)。恢复fromhttps://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averagesPines,L.(2019年5月15日)。简单移动平均线-技术分析。恢复fromhttps://commodity.com/technical-analysis/ma-simple/published作者:Institut Für Mathematik Der Universit"at WienRemanan,S.(2018年9月4日)。使用Python的线性回归。恢复fromhttps://towardsdatascience.com/linear-regression-using-python-ce21aa90ade6Schichl,H.(n.d.)。第2章模型和建模历史。恢复fromhttps://www.mat.univie.ac.at/~herman/papers/modtheoc。pdfShailesh,K.(未另行说明)。股票市场基本术语和定义(投资词汇表)。检索自https://valuestockguide.com/stock-market-terminology-for-beginners/Singh,A.(2019年5月7日)。回归K-最近邻的实用介绍。检索自https://www.analyticsvidhya.com/blog/2018/08/k-nearest-neighborintroduction-regression-python/SMG主页-主站点。(n.d.)。检索自https://www.stockmarketgame.org/TimothyLutts,L.(2017年11月6日)。本杰明·格雷厄姆的简短传记。检索自https://cabotwealth.com/daily/value-investing/benjamin-graham-a-shortbiography/Yahoo金融-商业金融、股票市场、报价、新闻。(n.d.)。恢复fromhttps://finance.yahoo.com/— 36 —9.           附录A。回归程序1。将熊猫作为pd 2导入。

27
何人来此 在职认证  发表于 2022-6-24 11:26:25
将yfinance作为yf 3导入。导入matplotlib。pyplot为plt 4。从pandas\\u datareader将数据导入为pdr 5。将numpy作为np 6导入。导入统计数据7。8、从sklearn导入预处理,如第9页所示。来自sklearn。model\\u selection import train\\u test\\u拆分为tts 10。来自sklearn。linear\\u model将LinearRegression导入为lr 11。12、yf。pdr\\u override()13。14、ticker\\u input=输入(“请输入您想投资的股票行情。”)15。16、start\\u date=输入(“在此处输入开始获取数据的日期(请将其转换为YYYY-MM-DD格式)\\n”)17。18、test\\u date=输入(“此处输入培训和测试结束的日期(请将其转换为YYYY-MM-DD格式)\\n”)19。20.end\\u date=输入(“在此输入我们将停止从中获取数据的日期(请将其转换为YYYY-MM-DD格式)\\n”)21。22、数据=pdr。DataReader(ticker\\u input,test\\u date,end\\u date)\\[\'Adj Close\']23。索引=数据。指数tolist()24。测试日期=指数[0]25。测试数据=pdr。DataReader(ticker\\u输入、start\\u日期、test\\u日期)26。27、def Performance\\u percentage():28。跑赢大市计数=0 29。total\\u count=0 30。全球比较31。32、对于范围内的r(0,len(比较索引)):33。如果比较[股票行情输入+\'指示性投资\']。iloc[r]>比较[股票行情输入+\'持续投资\']。iloc[右]:34。跑赢大市计数+=1 35。total\\u count+=1 36。跑赢大市百分比=(跑赢大市计数/总计数)*100 37。38、收益率优于百分比39。40、def标准偏差(data\\U list):41。new\\u list=data\\u list 42。标准偏差和=0 43。对于范围内的i(0,len(new\\u list)):44。

28
kedemingshi 在职认证  发表于 2022-6-24 11:26:28
标准偏差总和+=(new\\u list[i]-统计。平均值(new\\u list))**2 45。返回(((标准偏差和/(长度(新列表)-1))**(0.5)))46。47.#此预测将预测未来1天48。f\\u out=int(1)49。test\\u data[\'Predicting\']=test\\u data[\'Adj Close\']。换档(-f\\U out)50。51.X=np。数组(test\\u data.drop([\'Predicting\',1))-37-52。X=pp刻度(X)53。X\\u预测=X[-f\\u输出:]54。X=X[:-f\\u out]55。Y=np。数组(test\\u data[\'Predicting\'])57。Y=Y[:-f\\u out]58。59.X\\U列,X\\U测试,Y\\U列,Y\\U测试=tts(X,Y,test\\U大小=0.2)60。61、型号=lr()62。63、型号。安装(X\\U系列、Y\\U系列)64。65.#打印初始型号66的置信度。conf=型号。得分(X\\U测试,Y\\U测试)67。打印(“模型置信度:”,形态)68。69、def investing\\u型号(r):70。global test\\u数据71。global test\\u日期72。全球数据73。global end\\u日期74。测试数据=pdr。DataReader(ticker\\u输入、start\\u日期、test\\u日期)75。76.#此预测将预测未来1天77。f\\u out=int(1)78。test\\u data[\'Predicting\']=test\\u data[\'Adj Close\']。换档(-f\\U out)79。80.X=np。数组(test\\u data.drop([\'Predicting\',1))81。X=pp刻度(X)82。X\\u预测=X[-f\\u输出:]83。X=X[:-f\\u out]84。85.Y=np。数组(test\\u data[\'Predicting\'])86。Y=Y[:-f\\u out]87。88.X\\U列,X\\U测试,Y\\U列,Y\\U测试=tts(X,Y,test\\U大小=0.2)89。90、型号=lr()91。92、型号。安装(X\\U系列、Y\\U系列)93。94、预测=模型。预测(X\\U预测)95。索引=数据。指数tolist()96。测试日期=指数【r】97。return(预测-test\\u data.iloc[len(test\\u data)-1][\'Adj Close\'])98。99、last\\u true=数据。iloc[0][\'Adj Close\']100。101

29
nandehutu2022 在职认证  发表于 2022-6-24 11:26:31
持续投资=数据[:][\'Adj Close\']102。指示性投资=[]103。104、指示性投资。追加(last\\u true)105。对于范围(1,len(data)):106中的r。x=investing\\u模型(r)[0]107。如果x>0:108。last\\u true=last\\u true+(data.iloc[r][\'Adj Close\']-data.iloc[r-1][\'Adj Close\'])109。指示性投资。追加(last\\u true)110。111、比较=pd。数据帧(索引=数据索引)112。比较[股票行情输入+\'持续投资\']=持续投资-38-113。比较[股票行情输入+\'指示性投资\']=指示性投资114。115、打印(“使用移动平均交叉点,您的投资表现优于持续投资”,116、跑赢大市率(),%的时间”)117。118、打印(“您的投资与持续投资的波动率之比为”,119、标准差(指示性投资)/标准差(持续投资))120。121.     122.  打印(比较)123。比较绘图()124。plt。show()B.KNN程序1。将熊猫作为pd 2导入。将yfinance作为yf 3导入。导入matplotlib。pyplot为plt 4。从pandas\\u datareader将数据导入为pdr 5。将numpy作为np 6导入。7、从sklearn导入预处理为第8页。来自sklearn。邻居导入KneighborsRetressor 9。来自sklearn。model\\u selection import train\\u test\\u拆分为tts 10。来自sklearn。model\\u selection导入GridSearchCV 11。来自sklearn。预处理导入MinMaxScaler 12。scaler=MinMaxScaler(feature\\u range=(0,1))13。14、yf。pdr\\u override()15。16、ticker\\u input=输入(“请输入您想投资的股票行情。”)17。18、start\\u date=输入(“在此处输入开始获取数据的日期(请将其转换为YYYY-MM-DD格式)\\n”)19。20

30
何人来此 在职认证  发表于 2022-6-24 11:26:34
test\\u date=输入(“此处输入培训和测试结束的日期(请将其转换为YYYY-MM-DD格式)\\n”)21。22.end\\u date=输入(“在此输入我们将停止从中获取数据的日期(请将其转换为YYYY-MM-DD格式)\\n”)23。24、数据=pdr。DataReader(ticker\\u input,test\\u date,end\\u date)#[\'Adj Close\']25。索引=数据。指数tolist()26。测试日期=指数[0]27。测试数据=pdr。DataReader(ticker\\u输入、start\\u日期、test\\u日期)28。29、def Performance\\u percentage():30。跑赢大市计数=0 31。total\\u count=0 32。全球比较33。34、对于范围内的r(0,len(比较索引)):35。如果比较[股票行情输入+\'指示性投资\']。iloc[r]>比较[股票行情输入+\'持续投资\']。iloc[右]:36。跑赢大市计数+=1 37。total\\u count+=1 38。跑赢大市百分比=(跑赢大市计数/总计数)*100-39-39。40、收益率优于百分比41。42、def标准偏差(data\\U list):43。new\\u list=data\\u list 44。标准偏差和=0 45。对于范围内的i(0,len(new\\u list)):46。标准偏差总和+=(new\\u list[i]-统计。平均值(new\\u list))**2 47。返回(((标准偏差和/(长度(新列表)-1))**(0.5)))48。49.#此预测将预测未来50年的1天。f\\u out=int(1)51。test\\u data[\'Predicting\']=test\\u data[\'Adj Close\']。换档(-f\\U out)52。53.X=np。数组(test\\u data.drop([\'Predicting\',1))54。X=pp刻度(X)55。X\\u预测=X[-f\\u输出:]56。X=X[:-f\\u out]57。58.Y=np。数组(test\\u data[\'Predicting\'])59。Y=Y[:-f\\u out]60。61.X\\U列,X\\U测试,Y\\U列,Y\\U测试=tts(X,Y,测试\\U大小=0.2)62。63.X\\u train\\u scaled=缩放器。fit\\u transform(X\\u train)64。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-21 13:06