# -*- coding: utf-8 -*- \

Created on Thu Dec 15 13:57:32 2016

@author: four \

import pandas as pd

#获取地址数据

def get_adress_data(adress=0):

data=pd.read_csv(adress,parse_dates=False,header=None,names=['dateL','openL','highL','lowL','closeL','volL'])

data['dateL']=pd.to_datetime(data.dateL) return data #获取macd

def get_macd_data(data,short=0,long1=0,mid=0): if short==0: short=12 if long1==0: long1=26 if mid==0:

mid=9

data['sema']=pd.ewma(data['closeL'],span=short) data['lema']=pd.ewma(data['closeL'],span=long1) data.fillna(0,inplace=True)

data['data_dif']=data['sema']-data['lema']

data['data_dea']=pd.ewma(data['data_dif'],span=mid) data['data_macd']=2*(data['data_dif']-data['data_dea']) data.fillna(0,inplace=True)

return data[['data_dif','data_dea','data_macd']]

def get_kdj_data(data,N=0,M=0): if N==0: N=9 if M==0: M=2

low_list = pd.rolling_min(data['lowL'], N)

low_list.fillna(value=pd.expanding_min(data['lowL']), inplace=True) high_list = pd.rolling_max(data['highL'],N)

high_list.fillna(value=pd.expanding_max(data['highL']), inplace=True) rsv = (data['closeL'] - low_list) / (high_list - low_list) * 100 data['KDJ_K'] = pd.ewma(rsv,com=M)

data['KDJ_D']=pd.ewma(data['KDJ_K'],com=M) data['KDJ_J'] = 3 * data['KDJ_K'] - 2 * data['KDJ_D'] data.fillna(0,inplace=True)

return data[['KDJ_K','KDJ_D','KDJ_J']]

def get_ma_data(data,N=0): if N==0: N=5

data['ma']=pd.rolling_mean(data['closeL'],N) data.fillna(0,inplace=True) return data[['ma']]

def get_rsi_data(data,N=0): if N==0: N=24

data['value']=data['closeL']-data['closeL'].shift(1) data.fillna(0,inplace=True) data['value1']=data['value'] data['value1'][data['value1']<0]=0 data['value2']=data['value'] data['value2'][data['value2']>0]=0

data['plus']=pd.rolling_sum(data['value1'],N)

data['minus']=pd.rolling_sum(data['value2'],N) data.fillna(0,inplace=True)

rsi=data['plus']/(data['plus']-data['minus'])*100 data.fillna(0,inplace=True)

rsi=pd.DataFrame(rsi,columns=['rsi']) return rsi

def get_cci_data(data,N=0): if N==0: N=14

data['tp']=(data['highL']+data['lowL']+data['closeL'])/3 data['mac']=pd.rolling_mean(data['tp'],N) data['md']=0

for i in range(len(data)-14):

data['md'][i+13]=data['closeL'][i:i+13].mad() #data['mac']=pd.rolling_mean(data['closeL'],N) #data['md1']=data['mac']-data['closeL'] #data.fillna(0,inplace=True)

#data['md']=pd.rolling_mean(data['md1'],N) cci=(data['tp']-data['mac'])/(data['md']*0.015) cci=pd.DataFrame(cci,columns=['cci'])

return cci

#读取数据

data=get_adress_data(adress=u'C:/Users/four/Desktop/m1_SZZS.csv') a=get_macd_data(data) b=get_kdj_data(data) c=get_ma_data(data) d=get_rsi_data(data) e=get_cci_data(data)

pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标 -相关推荐

  1. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

  2. python抓取股票形态_利用Python实现MACD#39;顶底背离#39;形态,并实现自动化交易!...

    点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下 ...

  3. python二元函数如何编写_利用python实现PSO算法优化二元函数

    python实现PSO算法优化二元函数,具体代码如下所示: import numpy as np import random import matplotlib.pyplot as plt from ...

  4. python hello world程序编写_用Python编写一个简单程序

    按照软件行业传统习惯,当你学习一种新的编程语言如Python时,首先编写一个"Hello World! "程序. 请执行以下步骤,以创造你的"Hello World!&q ...

  5. python学号怎么编写_用python编写学生管理系统

    #该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...

  6. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  7. python编写统计选票的程序_使用python编写微信公众号发稿统计程序

    近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...

  8. 利用android实现汇率计算器,利用python编写一个汇率计算器

    利用python编写一个汇率计算器 发布时间:2020-11-10 15:03:44 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍利用python编写一个汇率计算器 ...

  9. 利用python编写手机脚本

    利用python编写手机脚本 adb连接安卓模拟器 在手机里编写python脚本控制手机 如何使用python控制手机(以微信游戏跳一跳为例) adb连接安卓模拟器 链接(转载)https://www ...

最新文章

  1. AxonFramework,快照(Snapshotting)
  2. html制作花样链接卡页面_花样链接卡.html
  3. 蚂蚁疾奔:蚂蚁集团两地上市全速推进
  4. Apache+PHP环境搭建
  5. linux的yun命令是访问互联网,如何在Linux终端中知道你的公有IP?
  6. Android开发面试题之Android四大组件
  7. 递归计算二叉树的高度_如何使用递归方法计算二叉树的高度
  8. 想成为编程高手,从基础做起
  9. python产品缺陷检测_3 Kaggle钢材表面缺陷检测竞赛的探索与实践-阿里云开发者社区...
  10. CodeVS 1014 装箱问题(DP)
  11. 基于PaddlePaddle的OCR识别,识别车牌号
  12. 从初级开发给大龄架构师review代码来看慢慢人生路
  13. java随机生成数字和字母_使用java如何生成随机的字母数字字符串?
  14. 完整责任链模式——回旋链
  15. 第五章 系统方法---------基于业务驱动的企业安全架构(翻译,原作者John Sherwood)----仅学习使用
  16. java 对接中国银联 云闪付
  17. 时间序列平稳性分析和白噪声检验
  18. PHPSTUDY端口被占用解决方法
  19. jQuery五星好评
  20. python3:离线安装第三方库的方法

热门文章

  1. 高性能迷你服务器,分享几个关于迷你电脑主机的优缺点
  2. 寻找市场中的Alpha(上):WorldQuant的阿尔法设计理念
  3. 35岁以上的那些测试员何去何从?
  4. 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)
  5. 网络不通使用的PING命令是用的什么协议?
  6. Android App 可以定时启动! 并且完成短信自动发送获取内容功能 (以获取闪讯密码为例 大学宿舍宽带)
  7. linux运维实习报告,it运维实习报告.docx
  8. vue-i18n插件报错Uncaught SyntaxError: Not available in legacy mode
  9. template文件夹可以删_请问templates是什么 文件 能删除吗?
  10. eureka + kafka +zookeeper