计算kdj
import pandas as pd
def KDJ_K(df,n=9):
df['highest'] = df['high'].rolling(n).max()
df['lowest'] = df['low'].rolling(n).min()
df['RSV'] = (df['close']-df['lowest'])/(df['highest']-df['lowest'])*100
df['signal'] = SMA_REC(df['RSV'],n=3,m=1, start=50)
return df['signal']
def SMA_REC(vals, n, m , start) :
sma=[ ]
numb = 0
for x in vals:
if np.isnan(x):
sma.append(x)
else:
if numb == 0:
ret = start
else:
ret = (x * m + ret * (n - m)) / n
sma.append(ret)
numb += 1
result = array(sma)
return result
# #传入df的index是日期,cloumn是['high','low','close'],需要的数据列名。
def KDJ_J(df,n=9):
df['highest'] = df['high'].rolling(n).max()
df['lowest'] = df['low'].rolling(n).min()
df['RSV'] = (df['close']-df['lowest'])/(df['highest']-df['lowest'])*100
df['KDJ_K'] = SMA_REC(df['RSV'],n=3,m=1, start=50)
df['signal'] = 3*df['KDJ_K']-2*SMA_REC(df['KDJ_K'],n=3,m=1, start=50)
return df['signal']
def KDJ_D(df,n=9):
df['highest'] = df['high'].rolling(n).max()
df['lowest'] = df['low'].rolling(n).min()
df['RSV'] = (df['close']-df['lowest'])/(df['highest']-df['lowest'])*100
df['KDJ_K'] = SMA_REC(df['RSV'],n=3,m=1, start=50)
df['signal'] = SMA_REC(df['KDJ_K'],n=3,m=1, start=50)
return df['signal']
def JK_KDJ_D(security_list,end_date,count = None,start_date = None,n=9):
if type(security_list)==str:
security_list=[security_list]
datalist = get_price(security=security_list,start_date=start_date,end_date=end_date,
frequency='daily', fields=['high','low','close'],fq='pre',count=count)
json = {}
d='KDJ_D'
j='KDJ_J'
k='KDJ_K'
for security_code in security_list:
df = datalist.minor_xs(security_code)
df[d] = KDJ_D(df,n)
df[j] = KDJ_J(df,n)
df[k] = KDJ_K(df,n)
json[security_code] = pd.DataFrame(data=df,index=df.index)
result = pd.Panel(data=json)
return result
print(JK_KDJ_D('000002.XSHG','2019-01-01')['000002.XSHG'])
计算kdj的更多相关文章
- Python量化分析,计算KDJ
Python: v3.6 Pandas: v0.23.4 使用以下方法计算与国内财经软件显示一致 low_list = df['最低价'].rolling(9, min_periods=9).min( ...
- WeQuant交易策略—KDJ
KDJ随机指标策略策略介绍KDJ指标又叫随机指标,是一种相当新颖.实用的技术分析指标,它起先用于期货市场的分析,后被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具.随机指标KDJ ...
- KDJ回测
# -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...
- KDJ金叉测试
# -*- coding: utf-8 -*- import os import pandas as pd # ========== 遍历数据文件夹中所有股票文件的文件名,得到股票代码列表stock_ ...
- 用Python的Pandas和Matplotlib绘制股票KDJ指标线
我最近出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中给出了MACD,KDJ ...
- 手把手教你画AndroidK线分时图及指标
先废话一下:来到公司之前.项目是由外包公司做的,面试初,没有接触过分时图k线这块,认为好难,我能搞定不.可是一段时间之后,发现之前做的那是一片稀烂,可是这货是主功能啊.迟早的自己操刀,痛下决心,开搞, ...
- MACD、BOLL、KDJ 三大组合精准把握趋势与买卖!
先看示意图,下图是布林线的3个轨道,其他都是股价走势 图1 股价,在布林线上轨.下轨之间运作.准确说,这话是不符合逻辑的,不是先有的轨道,然后股价再按照轨道运动.因为轨道是跟股价同时变化的.但是,股价 ...
- KDJ计算公式
计算方法编辑KDJ的计算比较复杂,首先要计算周期(n日.n周等)的RSV值,即未成熟随机指标值,然后再计算K值.D值.J值等.以n日KDJ数值的计算为例,其计算公式为n日RSV=(Cn-Ln)/(Hn ...
- kdj
随机指标KDJ一般是用于股票分析的统计体系,根据统计学原理,通过一个特定的周期(常为9日.9周等)内出现过的最高价.最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成 ...
随机推荐
- [转]Deciding on a Project Coding Mask
https://blogs.sap.com/2015/11/26/deciding-on-a-project-coding-mask/ SAP里面每个模块都有其number range的定义和分派逻辑 ...
- gradle项目
gradle构建web项目 0.安装gradle http://services.gradle.org/distributions/ 下载对应版本:gradle-5.2.1-bin.zip 解压到自定 ...
- 团队第十次 # scrum meeting
github 本此会议项目由PM召开,召开时间为4-15日晚上9点,以大家在群里讨论为主 召开时长10分钟 任务表格 袁勤 负责整理实验报告前后端交互,即xml文件传值部分 负责整理实验报告前后端交互 ...
- Postman A请求的返回值作为B请求的入参( 之‘’token‘’ ,用代码设置全局变量)
问题: 登陆接口获取token,其他接口访问时需携带token 方案: 在登陆接口访问后设置Postman的全局变量(Globals),例如设置环境变量名:token2,值(实时的不用自己手动设置的) ...
- leetCode53. 最大子序和
示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6. 进阶: /** * @param {number[]} nu ...
- Thinkphp整合阿里云OSS图片上传实例
Thinkphp3.2整合阿里云OSS图片上传实例,图片上传至OSS可减少服务器压力,节省宽带,安全又稳定,阿里云OSS对于做负载均衡非常方便,不用传到各个服务器了 首先引入阿里云OSS类库 < ...
- 前端人员使用notepad++基本配置
截图说明: 以上截图说的很明确了,基本满足基本的开发. notepad++前端配置版支持Emmet快速完成:支持Explorer目录管理:支持cmd控制台命令:支持MarkDown编辑预览:其他想用的 ...
- Jmeter5.1.1的汉化
Jmeter的汉化: 在菜单导航栏,选择options-->choose language-->chinese(simplified)中文简体 默认打开汉化: 编辑jmeter.bat: ...
- C#C/S框架演示 (MES系统)
之前做过一个MES系统,发一些里面的截图.如果有朋友也用这个框架.或者有兴趣可以一起学习学习.使用开发工具VS2013,数据库SqlServer2008和Oracle11C.插件dev15.2,开发模 ...
- request和response的常用方法
一.request 1.setAttribute()在Request域中存储数据 2.setCharacterEncoding()设置请求参数的编码方式,只对post请求有效 3.getMet ...