注:大型的基金、券商、投资机构大多数投资股票使用基本面分析方式。量化投资中基本面分析得益于一些市场模型理论的提出。 计算公式: 1、MACD首先行计算出快速(一般选12日)移动平均值与慢速(一般选26日)移动平均值 2、12日EMA数值减去26日EMA数值得到,差离值DIF 3、根据离差值计算其9日的EMA MACD值的TA-Lib函数 ? 传入的参数序列必须是Numpy序列 返回的值 macd:差离值 macdsignal:信号线 macdhist:MACD柱状图值 方法: 使用股票的收盘价格(close)去计算MACD指标数据 2.2.3 RSI交易信号判断 RSI值的意义 (1)受计算公式的限制,不论价位如何变动,强弱指标的值均在0与100之间。
今天的推文为大家介绍如何使用DolphinDB发布的响应式状态引擎(Reactive State Engine)高效开发与计算带有状态的高频因子,实现流批统一计算。 状态引擎确保流式计算的结果与批量计算完全一致,只要在历史数据的批量计算中验证正确,即可保证流数据的实时计算正确,这极大降低了实时计算调试的成本。 实盘阶段能否在每个行情tick数据到来时为每只股票计算100~1000个类似的因子? 批处理和流计算的代码实现是否高效?批和流能否统一代码?正确性校验是否便捷? 无状态的算子比较简单,使用DolphinDB已有的脚本引擎,就可以表示和计算。因此,问题转化为两点: 1、如何解析得到一个优化的DAG。 2、如何优化每个有状态的算子的计算。 4、流批统一解决方案 金融高频因子的流批统一处理在DolphinDB中有两种实现方法。 第一种方法:使用函数或表达式实现金融高频因子,代入不同的计算引擎进行历史数据或流数据的计算。
个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/100918232 TA-Lib MA_Type 在TA-Lib中有一个参数的类型是 主要就是使用不一样的加权方式对数据进行处理。 最常见的是利用股价、回报或交易量等变数计算出移动平均。 移动平均可抚平短期波动,反映出长期趋势或周期。数学上,移动平均可视为一种卷积。 指数移动平均(英语:exponential moving average,EMA或EWMA)是以指数式递减加权的移动平均。 使用下面的代码实现不一样的MA #MA_Type: 0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3 (Default
量化交易 一个完整的量化交易策略,个人觉得应该包含以下两个部分: 交易策略 资金管理 交易策略 一个完整的交易策略应该包含何时买,何时卖。 到底应该如何买卖,市场上大致分为两个技术流派。 价值回归 这个流派认为,股票是有内在价值的,虽然无序的来回跳动,但是自始至终围绕着自己的内在价值来回波动,所以买卖的机会抓住股票的超买,超卖点来进行买卖。 代表指标: RSI。 MACD MACD称为异同移动平均线,是从双指数移动平均线发展而来的,由快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,再用2×(快线DIF-DIF的9日加权移动均线 这里使用上证指数 import matplotlib.pyplot as plt import matplotlib as mpl import pandas as pd import talib 总结 没有万能的指标,关键在于使用指标的人。
12日EMA1的计算方式是:EMA(12)= 前一日EMA(12)× 11/13 + 今日收盘价 × 2/13 26日EMA2的计算方式是:EMA(26)= 前一日EMA(26)× 25/27 DIF = 今日EMA(12)- 今日EMA(26) 第三步:计算差离值的9日EMA(即MACD指标中的DEA)。用差离值计算它的9日EMA,这个值就是差离平均值(DEA)。 请注意,如果不编写第66行的程序语句,那么y轴标签值里的负号就不会显示,这样显示结果就不正确了。读者可以把这条语句注释掉后,再运行一下,看看结果如何。 ? 至此,我们实现了计算并绘制MACD指标线的功能,读者应该掌握了如何获得指定股票在指定时间段内的交易数据,而后可以稍微改写上述的范例程序,绘制出其他股票在指定时间范围内的MACD走势图。 正确 从上述的验证结果可知,从MACD指标中能看出股价发展的趋势,当从强势开始转弱时,如果没有其他利好消息,可以考虑观望或适当卖出股票。
技巧系列】使用python计算各类移动平均线 计算移动平均线是最常见的需求,下面这段代码将完成以下三件事情: 1. 从csv格式的文件中导入股票数据,数据例图如下: ? ? 2.计算各类移动平均线,包括简单简单算术移动平均线MA、指数平滑移动平均线EMA; 3.将计算好的数据输出到csv文件中。 QQ:2089973054 email:xjc@yucezhe.com """ import pandas as pd # ========== 从原始csv文件中导入股票数据,以浦发银行sh600000 ma_list = [5, 20, 60] # 计算简单算术移动平均线MA - 注意:stock_data['close']为股票每天的收盘价 for ma in ma_list: stock_data 可以到这里下载程序中用到的股票数据:(http://yucezhe.com/product?name=trading-data),其中包含了所有股票、从上市日起的全部交易数据。
本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测 在本文中,你将看到如何使用一个被称为长短时记忆的时间序列模型。LSTM模型很强大,特别是在保留长期记忆方面。 用当前的数据预测和可视化未来的股票市场 为什么你需要时间序列模型? 你希望对股票价格进行正确的建模,所以作为一个股票买家,你可以合理地决定何时买入股票,何时卖出股票以获得利润。 上述公式基本上是计算t+1时间步长的指数移动平均线,并将其作为超前一步的预测。γ决定最近的预测对EMA的贡献是什么。例如,γ=0.1只能得到当前值的10%进入EMA。 损失计算和优化器 现在,要计算损失。对于每一批预测和真实输出,都要计算出平均平方误差。而你把所有这些均方差损失加在一起(不是平均)。最后,定义你要使用的优化器来优化神经网络。 接下来你看到,当你需要预测超过一步的未来时,这些方法是无用的。此后,讨论了如何使用LSTM来进行未来多步的预测。最后,将结果可视化,看到模型(虽然不完美)在正确预测股票价格走势方面相当出色。
p=23689 本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测。 在本文中,你将看到如何使用一个被称为长短时记忆的时间序列模型。 用当前的数据预测和可视化未来的股票市场 为什么你需要时间序列模型? 你希望对股票价格进行正确的建模,所以作为一个股票买家,你可以合理地决定何时买入股票,何时卖出股票以获得利润。 上述公式基本上是计算t+1时间步长的指数移动平均线,并将其作为超前一步的预测。γ决定最近的预测对EMA的贡献是什么。例如,γ=0.1只能得到当前值的10%进入EMA。 损失计算和优化器 现在,要计算损失。对于每一批预测和真实输出,都要计算出平均平方误差。而你把所有这些均方差损失加在一起(不是平均)。最后,定义你要使用的优化器来优化神经网络。 接下来你看到,当你需要预测超过一步的未来时,这些方法是无用的。此后,讨论了如何使用LSTM来进行未来多步的预测。最后,将结果可视化,看到模型(虽然不完美)在正确预测股票价格走势方面相当出色。
本文是 Python 系列的第十篇 Python 入门篇 (上) Python 入门篇 (下) 数组计算之 NumPy (上) 数组计算之 NumPy (下) 科学计算之 SciPy 数据结构之 Pandas 1.3 布林带图 数据 注:本节和 1.4, 2.1, 2.2 都使用从 csv 里读取的股票数据。 由于我们需要每个股票在每个月底的数据,原来讲的 pandas 里的 split-apply-combine 的方法可以派上用场了。详情参考〖数据结构之 Pandas (下)〗。 第 1-2 行获取 5 个股票代号,并且存储股票个数。 第 4 行计算交易额,即收盘价和交易量的乘积。 第 5 行将一维的交易额数组重塑成二维数组,每一行代表一个股票的月末交易额数据。 你不需要精通每个细节,要用什么直接去官网查找资料或者搜索正确的问题就行了。
解决了流动性和剩余时间的问题,剩下的就是如何预测未来股价的走势,然后在相应的合约下注。 然而,Python 程序运行效率低,所以传统上很多交易系统都会用 C++ 重写需要性能的部分:比如用 pandas 做技术分析,虽然短平快,但各种技术指标的实时计算用 Python/pandas 效率太低 ,所以有 ta-lib (technical analysis lib)这样的 C++ 库来为 Python 项目的性能托底。 (2022/04 的分时数据),使用 yata 构造了 RSI(Relative Strength Indicator) 和 Stoch(Stochastic Oscillator)这两个 indicator 主要原因是我对技术分析那些术语不太了解,光是看 RSI 指标是如何生成的就花了不少时间。还有大量的时间花在选择合适的可视化工具上。
PythonStock:一个用 Python 写成的股票分析系统 根据 GitHub 页面介绍,该项目是基于 Python 的 pandas、tushare、bokeh、tornado、stockstats 、ta-lib 等框架开发的全栈股票系统。 3)使用 corn 做定时任务,每天进行数据抓取计算,每天 18 点开始进行数据计算,计算当日数据,使用 300 天数据进行计算,大约需要 15 分钟计算完毕。 4)股票数据接口防止被封,按天进行数据缓存,储存最近 3 天数据,每天定时清除,同时使用 read_pickle to_pickle 的 gzip 压缩模式存储。 然后根据 KDJ、RSI 和 CCI 这 3 个指标进行股票数据计算: ? 计算指标 此股票分析系统提供的每日股票指标数据,按照 17 个计算指标进行计算(下图截取部分计算指标): ?
1.3 布林带图 数据 注:本节和 1.4, 2.1, 2.2 都使用从 csv 里读取的股票数据。 运行程序看看苹果股票的布林带。 mpl_BBAND( 'AAPL', data, MAtype='EMA' ); ? 不吐槽了。。。 由于我们需要每个股票在每个月底的数据,原来讲的 pandas 里的 split-apply-combine 的方法可以派上用场了。详情参考〖数据结构之 Pandas (下)〗。 第 1-2 行获取 5 个股票代号,并且存储股票个数。 第 4 行计算交易额,即收盘价和交易量的乘积。 第 5 行将一维的交易额数组重塑成二维数组,每一行代表一个股票的月末交易额数据。 你不需要精通每个细节,要用什么直接去官网查找资料或者搜索正确的问题就行了。 The End
上个部分介绍了以下几个方面内容: 介绍了 zipline 回测框架,并展示了如何回测基本的策略 导入自定义的数据并使用 zipline 评估交易策略的表现 这篇文章的目的是介绍如何基于技术分析(TA, 在本文中,我会介绍如何使用流行的 Python 库 TA-Lib 以及 zipline 回测框架来计算 TA 指标。我会创建 5 种策略,然后研究哪种策略在投资期限内表现最好。 : 投资者有 10000 元的本金 投资时限为 2016-2017 投资者仅投资 Tesla 的股票 假设不存在交易成本,即交易佣金为零 不存在做空行为(投资者只能出售他们拥有的股票) 当投资者购买股票时 因此在投资第一天,我们使用全部本金尽可能多地购买 Tesla 的股票,接下来什么事情都不做。 MACD 的参数包括计算三个移动平均数的天数,即 MACD(a, b, c),参数 a 表示快速 EMA,b 表示慢速 EMA,c 表示 MACD 序列的 EMA。
PythonStock V1 是基于Python的pandas,tushare,bokeh,tornado,stockstats,ta-lib等框架开发的全栈股票系统。 借助tushare抓取数据(老API,后续使用tushare pro开发) 3)使用cron做定时任务,每天进行数据抓取计算,每天18点开始进行数据计算,计算当日数据,使用300天数据进行计算,大约需要 15分钟计算完毕。 4)股票数据接口防止被封,按天进行数据缓存,储存最近3天数据,每天定时清除,同时使用read_pickle to_pickle 的gzip压缩模式存储。 5)使用tornado开发web系统,支持股票数据,沪深300成份股,中证500成份股,龙虎榜数据,每日股票数据,每日大盘指数行情等 6)数据展示系统,是通用数据展示系统,配置字典模板之后,页面自动加载数据
你想要正确地模拟股票价格,因此作为股票买家,你可以合理地决定什么时候买股票,什么时候卖股票。这就是时间序列建模的切入点。 下面你将看到如何使用简单的平均方法复制这种行为。 例如,如果过去几天的价格一直在下降,第二天的价格可能会更低。这听起来很合理。然而,我们将使用更复杂的模型:LSTM。 评价结果 我们将使用均值平方误差来计算我们的模型有多好。 ,看看这些预测是否会随着时间的推移而变得更好或更糟。 结论 股票价格/移动预测是一项极其困难的任务。就我个人而言,我认为任何股票预测模型都不应该被视为理所当然,并且盲目地依赖它们。然而,模型在大多数情况下可能能够正确预测股票价格的变动,但并不总是如此。
简单理解,量化投资就是利用计算机科技并采用一定的数学模型去实现投资理念、实现投资策略的过程。所以量化投资只是一种工具,只是用数量化的方法去实践投资理念,交易的本质并没有发生变化。 那些已经掌握了Python编程基础的人,却不知如何切入量化的实际场景;而那些具备一定金融基础和策略思路的人,却不知如何使用Python来实现策略。 策略层往下分解,要掌握的基础工具包括Pandas、matplotlib、scikit-learn、TA-lib、statsmodels等等。 0 1 Python编程 搭建Python环境 Anaconda,推荐使用: https://www.anaconda.com/ 一直使用其自带的Jupyter Notebook来做策略分析和写公众号文章 量化只是一种工具或手段,量化投资则是目前比较流行的一种交易分析框架,需要掌握的知识体系还真比较庞杂。值得关注的是,证券投资的专业性远没有工科类的专业性那么可靠。
close & open:收盘价是股票在一天结束时的交易价格。找出价格最高的资产的一个好方法是按资产名称或资产代码分组计算收盘价的平均价格。 我们可以看到几乎每只股票的价格都在大幅下跌。是的,你的猜测完全正确,这是大衰退的影响。绘制不同时间段的收盘价百分比是否显示了这些趋势。 缺失值处理与特征工程 我们有很多缺失的值需要估算。我们如何更进一步操作?与其简单地用列均值来计算缺失值,不如根据assetCode来计算。 pandas库提供了shift()函数,帮助我们从时间序列数据集创建这些移位或延迟特征。将数据集移动1将创建t-1列,为第一行添加NaN值。没有移位的时间序列数据集表示t+1。 除了这些特征,一些指标,如RSI,布林带,贝塔等是用来评估股票的行为的指标。 RSI:它是一个动量指标,衡量最近价格变化的幅度,以评估股票或其他资产价格的超买或超卖情况。
四个公司的收盘价 移动平均 用于股价预测的一个经典算法是移动平均值(MA)。这个方法主要在于计算过去“m”个观察日的平均值,并且使用此结果作为下一日的预测值。 作为举例,使用过去10天和20天的收盘价计算移动平均值。 使用移动平均对公司A股票的十日收盘价预测 注意每条红线代表一个基于过去十天数据的10日股价预测。因此,红线是不连续的。 使用一个稍微更好一点的算法,指数移动平均(EMA),我们可以对预测实现一点点改善: ? 使用指数移动平均对公司A股票收盘价进行提前一天预测结果 对比MA和EMA: ? 提前一天使用移动平均和指数移动平均对股票收盘价进行预测结果对比 这个方法过于简单。我们真正想要的是提前“n”天预测未来的走势,这个任务MA和EMA都无法做到。
但实际上任何在研究中需要使用的数据(当然必须是股票某个属性的数据)都可以导入其中,你可以选择构建一张超宽的表使用dump_all一次性导入,也可以分批使用dump_fix导入。 ,有以下几个注意点: config参数用来配置需要加载的特征,对于qlib内置数据中原有的特征需要使用"$"符号进行引用; instruments可以为股票代码的列表,也可以是某个股票池代码,前提是该股票池成分股文件存在于 除了直接加载原始特征,有时我们需要对不同的原始特征做一些运算生成新的特征,比如我们想计算收盘价的均线。这时我们可以使用qlib的算式表达式功能,直接在加载时进行计算,具体请看下面案例。 ,我们不仅可以使用算子表达式进行特征计算,还可以使用“filter_pipe”参数进行相关过滤。 表示计算close的10日指数加权均线 ma_names = ['EMA10', 'EMA30'] # 使用表达式定义过滤规则 filter_rule = ExpressionDFilter(rule_expression
腾讯云对象存储数据处理方案主要针对于存储于腾讯云对象存储COS中的数据内容进行处理加工,满足压缩、转码、编辑、分析等多种诉求,激活数据价值。
扫码关注腾讯云开发者
领取腾讯云代金券