pythonmacd指标编写_利用python编写macd、kdj、rsi、ma等指标 -
# -*- 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等指标 -相关推荐
- python数据预测_利用Python编写一个数据预测工具
利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...
- python抓取股票形态_利用Python实现MACD#39;顶底背离#39;形态,并实现自动化交易!...
点及财经,股票期货专业投机者. 前言 股票或期货的价格波动,总会有一些可以规律可以遵循的.其中,"背离"也算是其中的一种,并且可以作为判断趋势结束或阶段调整的预警信号. 通常情况下 ...
- python二元函数如何编写_利用python实现PSO算法优化二元函数
python实现PSO算法优化二元函数,具体代码如下所示: import numpy as np import random import matplotlib.pyplot as plt from ...
- python hello world程序编写_用Python编写一个简单程序
按照软件行业传统习惯,当你学习一种新的编程语言如Python时,首先编写一个"Hello World! "程序. 请执行以下步骤,以创造你的"Hello World!&q ...
- python学号怎么编写_用python编写学生管理系统
#该程序在设计返回值时用了flag(标志)和i(标识下标): #之前在travers()函数的编写中for循环中缺少一个return导致在传递参数时会有错误: # 主要体现在修改和删除首个元素时!值得 ...
- python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3
利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...
- python编写统计选票的程序_使用python编写微信公众号发稿统计程序
近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...
- 利用android实现汇率计算器,利用python编写一个汇率计算器
利用python编写一个汇率计算器 发布时间:2020-11-10 15:03:44 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍利用python编写一个汇率计算器 ...
- 利用python编写手机脚本
利用python编写手机脚本 adb连接安卓模拟器 在手机里编写python脚本控制手机 如何使用python控制手机(以微信游戏跳一跳为例) adb连接安卓模拟器 链接(转载)https://www ...
最新文章
- AxonFramework,快照(Snapshotting)
- html制作花样链接卡页面_花样链接卡.html
- 蚂蚁疾奔:蚂蚁集团两地上市全速推进
- Apache+PHP环境搭建
- linux的yun命令是访问互联网,如何在Linux终端中知道你的公有IP?
- Android开发面试题之Android四大组件
- 递归计算二叉树的高度_如何使用递归方法计算二叉树的高度
- 想成为编程高手,从基础做起
- python产品缺陷检测_3 Kaggle钢材表面缺陷检测竞赛的探索与实践-阿里云开发者社区...
- CodeVS 1014 装箱问题(DP)
- 基于PaddlePaddle的OCR识别,识别车牌号
- 从初级开发给大龄架构师review代码来看慢慢人生路
- java随机生成数字和字母_使用java如何生成随机的字母数字字符串?
- 完整责任链模式——回旋链
- 第五章 系统方法---------基于业务驱动的企业安全架构(翻译,原作者John Sherwood)----仅学习使用
- java 对接中国银联 云闪付
- 时间序列平稳性分析和白噪声检验
- PHPSTUDY端口被占用解决方法
- jQuery五星好评
- python3:离线安装第三方库的方法
热门文章
- 高性能迷你服务器,分享几个关于迷你电脑主机的优缺点
- 寻找市场中的Alpha(上):WorldQuant的阿尔法设计理念
- 35岁以上的那些测试员何去何从?
- 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)
- 网络不通使用的PING命令是用的什么协议?
- Android App 可以定时启动! 并且完成短信自动发送获取内容功能 (以获取闪讯密码为例 大学宿舍宽带)
- linux运维实习报告,it运维实习报告.docx
- vue-i18n插件报错Uncaught SyntaxError: Not available in legacy mode
- template文件夹可以删_请问templates是什么 文件 能删除吗?
- eureka + kafka +zookeeper