注:最近写指标,采用pandas重新编写了macd指标的算法,主要是调用ewm这个指数平滑的函数,效率大大提高。

def cal_macd_system(data,short_,long_,m):'''data是包含高开低收成交量的标准dataframeshort_,long_,m分别是macd的三个参数返回值是包含原始数据和diff,dea,macd三个列的dataframe'''data['diff']=data['close'].ewm(adjust=False,alpha=2/(short_+1),ignore_na=True).mean()-\data['close'].ewm(adjust=False,alpha=2/(long_+1),ignore_na=True).mean()data['dea']=data['diff'].ewm(adjust=False,alpha=2/(m+1),ignore_na=True).mean()data['macd']=2*(data['diff']-data['dea'])return data

两种算法的结果不变,但是第一种的效率大大大的提高。

以后指标系列文章所用的示范数据都是来源于网易财经-000001上证指数,2010年到2017年5月数据

###经热心朋友casinozyz指正,该macd算法修改为如下,稍后会做一个更有效率的版本.(以前吹得牛逼2019-01-04已经实现)

import pandas as pd
import numpy as np
import datetime
import time
#获取数据
df=pd.read_csv('C:/Users/HXWD/Desktop/000001.csv',encoding='gbk')
df.columns=['date','code','name','close','high','low','open','preclose',
'change','change_per','volume','amt']
df=df[['date','open','high','low','close','volume','amt']]
df.head()
def get_EMA(df,N):for i in range(len(df)):if i==0:df.ix[i,'ema']=df.ix[i,'close']if i>0:df.ix[i,'ema']=(2*df.ix[i,'close']+(N-1)*df.ix[i-1,'ema'])/(N+1)ema=list(df['ema'])return ema
def get_MACD(df,short=12,long=26,M=9):a=get_EMA(df,short)b=get_EMA(df,long)df['diff']=pd.Series(a)-pd.Series(b)#print(df['diff'])for i in range(len(df)):if i==0:df.ix[i,'dea']=df.ix[i,'diff']if i>0:df.ix[i,'dea']=(2*df.ix[i,'diff']+(M-1)*df.ix[i-1,'dea'])/(M+1)df['macd']=2*(df['diff']-df['dea'])return df
get_MACD(df,12,26,9)
df

python-MACD指标编写相关推荐

  1. python 量化交易:MACD指标双金叉形态识别

    python 量化交易:MACD指标双金叉形态识别: df 是pandas的Dataframe,基础数据原来是 tushare 中的股票交易数据,MACD指标是用 talib 库计算得来: df = ...

  2. pythonmacd指标编写_Python版MACD指标画图范例

    Python版MACD指标画图范例 Python版MACD指标画图范例 Author: 小小梦, Date: 2020-02-27 17:59:35 Tags: MACD Python 图表 '''b ...

  3. python分析股票MACD指标

    股民朋友肯定熟悉股票中的MACD指标,比如5日均线.10日均线.15日均线等等.通过这些指标可以辅助进行交易的决策(比如经典的金叉.死叉理论),下面就以5日均线和20日均线为例,用python来画出指 ...

  4. python编写选股公式_python 瀑布线指标编写实例

    我就废话不多说了,大家还是直接看代码吧! # -*- coding: utf-8 -*- """ Created on Tue May 23 08:57:02 2017 ...

  5. python如何用macd选股_Python Finance:如何使用macd指标进行信号策略?

    我试图了解库存数据并在python中实现它.在开始我在Python 库中使用MACD指标stockstats. 我想知道,如果我有一个特定股票的100个OHLC条目,我怎样才能使用MACD输出来产生信 ...

  6. 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 ...

  7. python如何用macd选股_使用MACD指标进行选股的四种方法

    股价一个底比一个底低,而相对的MACD两个金叉点底部抬高,即底背离,说明市场已经进入跌无可跌的状态,开始出现反弹或者反转的需求.MACD金叉向上,DIF出现红柱,代表市场即将发动攻击,快速线起到助涨作 ...

  8. macd的python代码同花顺_手把手教你妙用MACD指标

    运用MACD捕捉最佳卖点的方法如下: 首先是调整MACD的有关参数,将MACD的快速E-MA参数设定为8,将慢速E-MA参数设定为13,将DIF参数设定为9,移动平均线参数分别为5.10.30.设定好 ...

  9. python计算macd指标

    移动平滑异同平均线(Moving Average Convergence Divergence,简称MACD指标)策略,被称为"指标之王",经常使用它,当日要常备在数据库了. ma ...

  10. 国内股票MACD指标计算,Python实现MACD指标计算,Talib实现MACD指标计算

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

最新文章

  1. 自研GPU之火(续)
  2. 【linux】ubuntu14.04升级dbus到1.13.8,杯具了,无法进入桌面
  3. C linux 深入学习 errorfunction的创建
  4. python保存数据到本地_Python爬虫入门 | 6 将爬回来的数据存到本地
  5. 互掐!美团“抛弃”支付宝,背后的真相到底是啥?
  6. 数据库系列之mysql 自定义函数function,函数和存储过程的区别
  7. vue实现多行数据提交_Vue+Mockjs,模拟接口数据,实现前后端独立开发
  8. C++ const型成员函数与 non-const型成员函数
  9. 【React】添加新组件
  10. pivot position_PIVOT用法详解
  11. inventor牙距_10 INVENTOR螺纹特征,是否有何设置,可让螺纹类型默认为GB Metric
  12. 2020第六届上海市大学生网安大赛Misc|writeup
  13. 给定C语言数据结构,给定C语言的数据结构struct T { int w; union T { char c;int i;double d;)U; };...
  14. Win11-GTX3060-配置Pytorch GPU
  15. mysql查询优化方案
  16. UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
  17. 2017.08.12(2) 实例:系统登陆
  18. linux配置yum源
  19. loadrunner入门教程(33) -- Analysis图
  20. 浅谈Web安全技术----RBI

热门文章

  1. cad字体安装_如何安装CAD字体库,让打开图纸时显示quot;?quot;的现象都消失?【AutoCAD教程】...
  2. 在线播放服务器配置,服务器搭建配置视频教程
  3. Python 爬虫小练习:基于 XPath 的表格信息爬取
  4. Deepin/Uos中添加PPA时显示找不到命令
  5. 计算机中专生未来三年的规划,我应该如何规划自己的职业
  6. 马云名言名句大全,看完足够影响你们一生!
  7. 天下数据教你提升网站访问速度的妙招
  8. 漂移的农民工,何处才是你的浮木
  9. 电子招投标给企业带来的实用价值
  10. 国标GB28181漫谈