蜂鸟金融终端:使用Python和fbprophet分析股票市场周期

蜂鸟数据Trochil热度: 28491
fbprophet是Facebook发布的开放源代码,旨在为大规模生成预测提供一些有用的指导。为了更好地了解该软件包,Prophet 的文档非常有用......

金融终端

fbprophet简介

fbprophet是Facebook发布的开放源代码,旨在为大规模生成预测提供一些有用的指导。默认情况下,它将时间序列划分为趋势和季节性,其中可能包含每年,每周和每天。但是,分析师可以定义自己的季节性。为了更好地了解该软件包,Prophet 的文档非常有用。

封装的功能之一是其简单性和灵活性。由于我们要计算的股市周期不仅限于每年,每周或每天,因此,我们应该定义自己的周期并找出最适合数据的周期。此外,由于周末没有交易,我们不应该使用每周的季节性。我们还可以通过add_seasonality 函数定义“ self_define_cycle”。只需两行代码即可完成所有设置。

金融终端

股票市场周期分析

我们可以使用2015年10月1日至2018年10月1日Costco的收盘价为例,以更好地了解我们能做什么。借助pandas_datareader,我们可以轻松获取股票价格。在图1中,我们可以看到从2015年开始价格上涨的趋势很明显。但是,上涨过程伴随很多宽幅震荡,这些都是我们想要赚钱的。

金融终端图1:Costco从2015/10/01到2018/10/01的股票价格

对于预测模型,评估它们的一种方法是样本外均方误差。我们可以使用2015/10/1到2018/3/31进行训练,并保留最近6个月的时间来测试和计算样本外均方误差。在每个周期内,我们可以通过以最低价格购买和以最高价格出售来优化回报。为了简化过程,我们使用了自定义函数cycle_analysis.。输出是一个列表,其中包含每个周期的预期收益和样本外均方误差。该功能的输入要求:

data:带有时间索引的pd.DataFrame

split_date:拆分训练和测试数据的日期

cycle:每个周期的周期(天)

mode:季节性的加法或乘法(可选,默认加法)

Forecast_plot:是否打印预测图(可选,默认为False)

print_ind:是否打印每个周期的预期收益和样本外均方误差(可选,默认为False)

金融终端

在图2和图3中,我们对Costco股票价格应用了两个不同的周期长度(分别为30和300)的函数,并以2018/4/1作为训练和测试的划分日期。如我们所见,如果选择的长度太短(例如30天),那么一个周期内的收益就很小,相反,如果选择的长度太长,则需要频繁进行交易(图2;)。长时间(例如300天)会扭曲我们的预测(图3)。

金融终端图2:周期等于30天的预测金融终端图3:周期等于300天的预测

我们可以在cycle_analysis函数上应用一个循环,以计算不同周期长度的预期收益和样本外均方误差,并在图4中显示结果。我们可以看到,长度越长,每个周期的预期收益和样本外均方误差将增加。考虑到交易成本,每个周期内的预期收益应大于10美元。在这种约束下,我们可以选择导致最小样本外均方误差的周期,即252天。预计每个周期的回报为$ 17.12,样本外均方误差为15.936。两者都很好!

金融终端图4:不同周期长度的预计收益率和样本外均方误差金融终端图5:周期等于252天的预测

为了进一步说明投资策略,我们可以看到买卖日期在2015/10/1至2018/10/1之间。该Return_Dates函数可以使用输入返回所有买卖日期作为输出:

forecast: fbprophet预测对象

stock_data:具有时间索引的pd.DataFrame

cycle:周期长度

cycle_name:预测对象中循环列的名称

time_name:预测对象中时间列的名称

金融终端

在2015/10/1和2018/10/1之间,我们将买卖Costco四次。总而言之,我们将花费604.56美元进行购买,并在这些特定日期出售它们时获得744.78美元作为回报。对于简化的回报率(不考虑再投资,时间价值等),三年的回报率为23.2%。可能不是很吸引人,但至少是正回报。

金融终端

测试更多股票

这种方法是否能够应用到更多的股票?我们列出了Costco,Apple,Microsoft,Home Depot和Nike在每个周期内的平均购买价格,平均售价,周期长度,样本外均方误差,购买数量,销售数量和预期回报。

对于Microsoft和Nike,我们找不到符合我们要求的每个周期超过10美元的回报的周期。对于好市多(Costco),苹果(Apple)和家得宝(Home Depot),我们可以找到一个大约250天的周期,并做出良好的预测核获得温和的回报。

金融终端

结论

借助Python和fbprophetpackage,我们可以更好地了解股票市场。以Costco为例,我们可以找到一个252天的周期,这样它可以产生足够的收益并具有良好的数据拟合度。根据我们发现的周期,我们可以在3年内获得约23%的回报。也许这种投资策略不能满足您的需求,但是您始终可以根据自己的知识和经验来设定自己的方法。强大的fbprophet软件包可以使您对股票市场的分析更加深入和轻松。


金融终端

金融终端

声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。 未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示,本站所发布文章仅代表个人观点,与火星财经官方立场无关。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。
语音技术由科大讯飞提供

评论0