MA、EMA、MACD、BOLL、KDJ指标计算
MA、EMA、MACD、BOLL、KDJ指标计算
# encoding:utf-8
import os
import sys
import pandas as qh_pd
import time
import datetime
import talibif __name__ == "__main__":print("本文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), "..")) # 返回当前工作目录 先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path) # 添加自己指定的搜索路径
else:print("外文件引用")qh_path = os.path.abspath(os.path.join(os.getcwd(), "..")) # 返回当前工作目录 先到达 QH_网络配置 的父文件夹路径sys.path.append(qh_path) # 添加自己指定的搜索路径
import QH_Stock_Treasure_Box.qh_parameter_chuanru as qh_chcan # 传入参数qh_pd.set_option('display.max_columns', None)
qh_pd.set_option('display.width',1000)def Qh_Target_MA(qh_df,qh_close = "收盘价",qh_timeperiod = 5):"""计算MA指标, 作者:阙辉:param qh_df::param qh_close::param qh_timeperiod::return:"""qh_cloumn = "MA_{}".format(qh_timeperiod)qh_df[qh_cloumn] = talib.MA(qh_df[qh_close], timeperiod=qh_timeperiod, matype=0)return qh_dfdef Qh_Target_EMA(qh_df,qh_close = "收盘价",qh_timeperiod = 5):"""计算EMA指标, 作者:阙辉:param qh_df::param qh_close::param qh_timeperiod::return:"""qh_cloumn = "EMA_{}".format(qh_timeperiod)qh_df[qh_cloumn] = talib.EMA(qh_df[qh_close], timeperiod=qh_timeperiod)return qh_dfdef Qh_Target_MACD(qh_df,qh_close = "收盘价",qh_fastperiod=12, qh_slowperiod=26, qh_signalperiod=9):"""计算MACD指标, 作者:阙辉:param qh_df::param qh_close::param qh_fastperiod::param qh_slowperiod::param qh_signalperiod::return:"""qh_diff = "DIFF_{}".format(qh_slowperiod)qh_dea = "DEA_{}".format(qh_slowperiod)qh_macd = "MACD_{}".format(qh_slowperiod)qh_df[qh_diff], qh_df[qh_dea], qh_df[qh_macd] = talib.MACD(qh_df[qh_close], fastperiod=qh_fastperiod,slowperiod=qh_slowperiod, signalperiod=qh_signalperiod)qh_df[qh_macd] = qh_df[qh_macd] * 2 # 修正macdreturn qh_dfdef Qh_Target_BOLL(qh_df,qh_close = "收盘价",qh_timeperiod=20, qh_nbdev=2):"""计算BOLL指标, 作者:阙辉:param qh_df::param qh_close::param qh_timeperiod::param qh_nbdev::return:"""qh_uuper = "UPPER_{}".format(qh_timeperiod)qh_mid = "MID_{}".format(qh_nbdev)qh_lower = "LOWER_{}".format(qh_nbdev)qh_df[qh_uuper], qh_df[qh_mid], qh_df[qh_lower] = talib.BBANDS(qh_df[qh_close], timeperiod=qh_timeperiod,nbdevup=qh_nbdev, nbdevdn=qh_nbdev, matype=0)return qh_dfdef Qh_Target_KDJ(qh_df,qh_hig = "最高价",qh_low = "最低价",qh_close = "收盘价",qh_fastk=9, qh_slowk=3,qh_slowd=3):"""计算KDJ指标, 作者:阙辉:param qh_df::param qh_hig::param qh_low::param qh_close::param qh_fastk::param qh_slowk::param qh_slowd::return:"""qh_K = "K_{}".format(qh_fastk)qh_D = "D_{}".format(qh_fastk)qh_J = "J_{}".format(qh_fastk)qh_df[qh_K], qh_df[qh_D] = talib.STOCH(qh_df[qh_hig],qh_df[qh_low],qh_df[qh_close],fastk_period=qh_fastk,slowk_period=qh_slowk,slowk_matype=1,slowd_period=qh_slowd,slowd_matype=1)qh_df[qh_J] = 3 * qh_df[qh_K] - 2 * qh_df[qh_D]return qh_dfdef Qh_Target_KDJ_CN(qh_df,qh_hig = "最高价",qh_low = "最低价",qh_close = "收盘价",qh_fastk_period=9,qh_slowk_period=3,qh_fastd_period=3):"""计算KDJ指标 作者:阙辉:param qh_higt::param qh_low::param qh_close::param qh_fastk_period::param qh_slowk_period::param qh_fastd_period::return:"""QH_K = "QH_K_{}".format(qh_fastk_period)QH_D = "QH_D_{}".format(qh_fastk_period)QH_J = "QH_J_{}".format(qh_fastk_period)qh_df[qh_low] = qh_df[qh_low].astype("float64")qh_df[qh_low] = qh_df[qh_low].fillna(0)QH_MinLow = qh_df[qh_low].rolling(qh_fastk_period, min_periods=qh_fastk_period).min() # 最低价QH_MinLow.fillna(value=qh_df[qh_low].expanding().min(), inplace=True) # 填充空值 NaNqh_df[qh_hig] = qh_df[qh_hig].astype("float64")qh_df[qh_hig] = qh_df[qh_hig].fillna(0)QH_MaxHigh = qh_df[qh_hig].rolling(qh_fastk_period, min_periods=qh_fastk_period).max() # 最高价QH_MaxHigh.fillna(value=qh_df[qh_hig].expanding().max(), inplace=True) # 填充空值 NaNqh_df[qh_close] = qh_df[qh_close].astype("float64")qh_df[qh_close] = qh_df[qh_close].fillna(0)# RSV 公式:RSV = (收盘价 - 最低价)/(最高价 - 最低价) * 100 n日RSV=(Cn-Ln)÷(Hn-Ln)×100QH_RSV = (qh_df[qh_close] - QH_MinLow) / (QH_MaxHigh - QH_MinLow) * 100QH_RSV = QH_RSV.fillna(0)# 当日K值=2/3×前一日K值+1/3×当日RSVqh_df[QH_K] = QH_RSV.ewm(adjust=False, alpha=1 / qh_slowk_period).mean()# 当日D值=2/3×前一日D值+1/3×当日K值qh_df[QH_D] = qh_df[QH_K].ewm(adjust=False, alpha=1 / qh_fastd_period).mean()# J=3D—2Kqh_df[QH_J] = 3 * qh_df[QH_K] - 2 * qh_df[QH_D]return qh_dfif __name__ == "__main__":qh_code = "SZ000001"qh_times = "天"qh_fuquan = "不复权"qh_chaxun_id = "QH_ChaXun_00016"#获取sqlqh_sql0 = qh_chcan.Qh_CX_Sql_DB(qh_path,qh_chaxun_id = qh_chaxun_id,qh_sql0 ="",qh_ret_sql = True)qh_sql = qh_sql0.format(qh_code,qh_times,qh_fuquan)#查询数据qh_list_sql_ = qh_chcan.Qh_CX_Sql_DB(qh_path,qh_chaxun_id = qh_chaxun_id,qh_sql0 = qh_sql,qh_ret_sql = False,qh_filed = True)qh_list_sql_filed = qh_list_sql_[1][1][0] #股票代码qh_list_sql = qh_list_sql_[1][1][1:] #股票历史行情数据qh_df_stock = qh_pd.DataFrame(qh_list_sql,columns=qh_list_sql_filed)qh_df_stock = Qh_Target_MA(qh_df_stock,qh_close = "收盘价",qh_timeperiod = 5)qh_df_stock = Qh_Target_EMA(qh_df_stock, qh_close="收盘价", qh_timeperiod=20)qh_df_stock = Qh_Target_MACD(qh_df_stock, qh_close="收盘价", qh_fastperiod=12, qh_slowperiod=26, qh_signalperiod=9)qh_df_stock = Qh_Target_BOLL(qh_df_stock, qh_close="收盘价", qh_timeperiod=20, qh_nbdev=2)# qh_df_stock = Qh_Target_KDJ(qh_df_stock, qh_hig="最高价", qh_low="最低价", qh_close="收盘价", qh_fastk=9, qh_slowk=3, qh_slowd=3)qh_df_stock = Qh_Target_KDJ_CN(qh_df_stock, qh_hig="最高价", qh_low="最低价", qh_close="收盘价", qh_fastk_period=9, qh_slowk_period=3,qh_fastd_period=3)print(qh_df_stock)
计算结果
KDJ
BOLL
MACD
MA、EMA、MACD、BOLL、KDJ指标计算相关推荐
- 国内股票KDJ指标计算,Python实现KDJ指标计算,Talib实现KDJ指标计算
0 引言 KDJ指标是最为常见的指标之一,股票每日的K线数据通过Tushare.Baostock等平台能够获取到个股及指数的Open.High.Low.Close.Volume等数据,KDJ.MACD ...
- talib实现与通达信、同花顺一致的MACD、KDJ指标
talib实现的MACD与国内软件厂商实现的不太一致,需要自行定义和调整.提供通达信.同花顺 MACD Talib实现. 同花顺和通达信等软件中的SMA,是KDJ_CN和RSI_CN的基础依赖 注意: ...
- 优质投资组合构建、MA、MACD、KDJ、RSI、OBV相关指标计算及预测模型在线实验闯关
第1关:基于总体规模与投资效率指标的上市公司综合评价 任务描述 本关任务:根据以下提供的反映上市公司总体规模与投资效率方面指标数据,按年度对上市公司进行综合评价,输出排名前20的上市公司股票简称. 相 ...
- 基于macd、kdj、ma技术指标分析股票多空方向——应用开发3 计算股票相关技术指标数据
接上一节,我们获取了000001.SZ股票过去一年的历史数据stock_df,接下来我们就计算技术指标 所用包 pandas_ta import pandas_ta as ta 关于pandas_ta ...
- java ema算法_K线图指标算法(MA EMA)
写在前面的话 本人android开发股线图时基于MpAndroidChart开发的,所以后面用到的算法中CandleEntry, Entry等都是MpAndroidChart的API,均使用java实 ...
- 通达信MACD和KDJ组合指标公式,MACD和KDJ怎么配合使用
MACD指标属于趋势指标,KDJ指标属于震荡指标,MACD和KDJ配合使用会擦出怎样的火花? 一.平替版KDJ底背离 之前介绍过平替版MACD底背离,平替版KDJ底背离写法类似,总的来说写法相对简单, ...
- MACD与KDJ合二为一指标公式怎么编写?
在编写MACD与KDJ合二为一指标公式之前,先来了解一下技术指标共振.常见的技术指标共振有三种类型:单指标多周期共振.单指标多级别共振.多技术指标共振,今天主要介绍第三种. 多技术指标共振是指多个技术 ...
- 基于macd、kdj、ma技术指标分析股票多空方向——应用开发1 前言
应用效果 通过在EXCEL表格输入股票代码. 导出该股过去10个交易日技术指标(MACD.KDJ.MA分析结果)与60天的K线图(含MACD.KDJ.MA线.成交量)到EXCEl表格. 效果如图 系统 ...
- python kdj指标详解_python实现kdj、macd、rsi、bias、willr指标
#kdj指标 def myself_kdj(df): low_list = df['low'].rolling(9, min_periods=9).min() low_list.fillna(valu ...
最新文章
- 详略。。设计模式1——单例。。。。studying
- DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- 【实验】华为静态路由基础配置
- hana::detail::variadic::foldr1用法的测试程序
- SqlMap常用参数(一)
- 浅谈:ArrayList,ListT,ListObject
- gRPC四种模式、认证和授权实战演示
- java 递归 遍历目录下的所有文件
- hibernate---id生成策略
- NumPy数值计算库-1
- docker︱docker run的解读与一键部署
- 2013暑假江西联合训练赛 -- by jxust_acm 解题报告
- Swift之Attempting to badge the application icon but haven't received permission from the user to badg
- 公众平台 python_微信公众平台SDK Python
- 来自微信团队的 6 个开源项目
- android地图轨迹跟踪_在这张地图中,你可以追踪全世界的航班信息
- Sequential Recommender Systems: Challenges, Progress and Prospects翻译和笔记
- 太高效了,全靠这款可视化报表工具,实用
- 产品基础学习笔记---传智教育
- 笔记本能搜索到别人家的WiFi但唯独搜索不到自家的
热门文章
- 小鸡拿着蚯蚓闯关的java游戏,蚯蚓大闯关游戏下载|蚯蚓大闯关安卓版下载 v1.0.0 - 跑跑车安卓网...
- Scrum Gathering开放分享:敏捷开发早期估算by火星人陈勇,北京,6.30!
- 信息学奥赛一本通例题2.8~2.13
- 安卓开发笔记(三十三):Android仿写微信发现
- 淘宝/天猫API:item_videolist_cat-获取淘宝直播分类id接口
- Fastjson1.2.47版本远程命令执行漏洞
- Autodesk(欧特克)公司的主要产品介绍
- 【C++】逆序函数reverse()
- Android 下简单的 MP3 播放(代码分析)
- 中国境外三个不为人知的汉人政权