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指标计算相关推荐

  1. 国内股票KDJ指标计算,Python实现KDJ指标计算,Talib实现KDJ指标计算

    0 引言 KDJ指标是最为常见的指标之一,股票每日的K线数据通过Tushare.Baostock等平台能够获取到个股及指数的Open.High.Low.Close.Volume等数据,KDJ.MACD ...

  2. talib实现与通达信、同花顺一致的MACD、KDJ指标

    talib实现的MACD与国内软件厂商实现的不太一致,需要自行定义和调整.提供通达信.同花顺 MACD Talib实现. 同花顺和通达信等软件中的SMA,是KDJ_CN和RSI_CN的基础依赖 注意: ...

  3. 优质投资组合构建、MA、MACD、KDJ、RSI、OBV相关指标计算及预测模型在线实验闯关

    第1关:基于总体规模与投资效率指标的上市公司综合评价 任务描述 本关任务:根据以下提供的反映上市公司总体规模与投资效率方面指标数据,按年度对上市公司进行综合评价,输出排名前20的上市公司股票简称. 相 ...

  4. 基于macd、kdj、ma技术指标分析股票多空方向——应用开发3 计算股票相关技术指标数据

    接上一节,我们获取了000001.SZ股票过去一年的历史数据stock_df,接下来我们就计算技术指标 所用包 pandas_ta import pandas_ta as ta 关于pandas_ta ...

  5. java ema算法_K线图指标算法(MA EMA)

    写在前面的话 本人android开发股线图时基于MpAndroidChart开发的,所以后面用到的算法中CandleEntry, Entry等都是MpAndroidChart的API,均使用java实 ...

  6. 通达信MACD和KDJ组合指标公式,MACD和KDJ怎么配合使用

    MACD指标属于趋势指标,KDJ指标属于震荡指标,MACD和KDJ配合使用会擦出怎样的火花? 一.平替版KDJ底背离 之前介绍过平替版MACD底背离,平替版KDJ底背离写法类似,总的来说写法相对简单, ...

  7. MACD与KDJ合二为一指标公式怎么编写?

    在编写MACD与KDJ合二为一指标公式之前,先来了解一下技术指标共振.常见的技术指标共振有三种类型:单指标多周期共振.单指标多级别共振.多技术指标共振,今天主要介绍第三种. 多技术指标共振是指多个技术 ...

  8. 基于macd、kdj、ma技术指标分析股票多空方向——应用开发1 前言

    应用效果 通过在EXCEL表格输入股票代码. 导出该股过去10个交易日技术指标(MACD.KDJ.MA分析结果)与60天的K线图(含MACD.KDJ.MA线.成交量)到EXCEl表格. 效果如图 系统 ...

  9. 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. 详略。。设计模式1——单例。。。。studying
  2. DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. 【实验】华为静态路由基础配置
  4. hana::detail::variadic::foldr1用法的测试程序
  5. SqlMap常用参数(一)
  6. 浅谈:ArrayList,ListT,ListObject
  7. gRPC四种模式、认证和授权实战演示
  8. java 递归 遍历目录下的所有文件
  9. hibernate---id生成策略
  10. NumPy数值计算库-1
  11. docker︱docker run的解读与一键部署
  12. 2013暑假江西联合训练赛 -- by jxust_acm 解题报告
  13. Swift之Attempting to badge the application icon but haven't received permission from the user to badg
  14. 公众平台 python_微信公众平台SDK Python
  15. 来自微信团队的 6 个开源项目
  16. android地图轨迹跟踪_在这张地图中,你可以追踪全世界的航班信息
  17. Sequential Recommender Systems: Challenges, Progress and Prospects翻译和笔记
  18. 太高效了,全靠这款可视化报表工具,实用
  19. 产品基础学习笔记---传智教育
  20. 笔记本能搜索到别人家的WiFi但唯独搜索不到自家的

热门文章

  1. 小鸡拿着蚯蚓闯关的java游戏,蚯蚓大闯关游戏下载|蚯蚓大闯关安卓版下载 v1.0.0 - 跑跑车安卓网...
  2. Scrum Gathering开放分享:敏捷开发早期估算by火星人陈勇,北京,6.30!
  3. 信息学奥赛一本通例题2.8~2.13
  4. 安卓开发笔记(三十三):Android仿写微信发现
  5. 淘宝/天猫API:item_videolist_cat-获取淘宝直播分类id接口
  6. Fastjson1.2.47版本远程命令执行漏洞
  7. Autodesk(欧特克)公司的主要产品介绍
  8. 【C++】逆序函数reverse()
  9. Android 下简单的 MP3 播放(代码分析)
  10. 中国境外三个不为人知的汉人政权