1.引用:

import pandas as pd
import numpy as np

2.代码

#RSI中使用的移动平均线。 它是指数加权移动平均线,alpha加权值 = 1 /长度
def RMA(r, days, name=0):cps = [ v[name] for v in r ] if name else rrmas = [0 for i in range(len(cps))]  # 创造一个和cps一样大小的集合alpha = 1 / daysfor i in range(len(cps)):if i > days-1:if rmas[i-1] and not np.isnan(rmas[i-1]):rmas[i] = alpha * cps[i] + (1 - alpha) * rmas[i-1]else:ma = 0for i2 in range(i-days,i):  #求平均值ma += cps[i2+1]rmas[i] = ma / daysreturn rmas#其他MA类型看上一篇文章
def ATR(r, days, ma='sma'):tr = [0]for i in range(len(r)):if i:tr.append(max(r[i]['High']-r[i]['Low'], abs(r[i]['High'] - r[i-1]['Close']), abs(r[i]['Low'] - r[i-1]['Close'])))if ma == 'rma':return RMA(tr, days)if ma == 'ema':return EMA(tr, days)if ma == 'sma':return SMA(tr, days)if not ma:return tr"""DI"""
def DI(r, days):df = pd.DataFrame(r)df['up'] = df['High'] - df['High'].shift(1)df['down'] = -(df['Low'] - df['Low'].shift(1))df['truerange'] = RMA(ATR(r, days=0, ma=0), days)df['plus'] = RMA([df['up'][i] if df['up'][i] > df['down'][i] and df['up'][i]> 0 else 0 for i in range(len(df['up']))], days) / df['truerange']df['minus'] = RMA([df['down'][i] if df['down'][i] > df['up'][i] and df['down'][i]> 0 else 0 for i in range(len(df['up']))], days) / df['truerange']df['plus'] = df['plus'].apply(float) * 100df['minus'] = df['minus'].apply(float) * 100return df['plus'], df['minus']"""ADX趋向指标"""
def ADX(r, diDays, adxDays):df = pd.DataFrame(r)df['plus'], df['minus'] = DI(r, diDays)df['sum'] = df['plus'] + df['minus']df['adx'] = [abs(df['plus'][i] - df['minus'][i]) / (1 if df['sum'][i] == 0 else df['sum'][i]) for i in range(len(df['sum']))]df['adx'] = RMA(df['adx'].values, adxDays)df['adx'] = df['adx'].apply(float) * 100return df['adx'], df['plus'], df['minus']

3.使用例子

指标计算的值我都和TradingView对比过,放心使用~
r为K线数据

df['adx'], df['plus'], df['minus'] = ADX(r, 14, 14)

博客原文:https://sumubai.cc/post/24

【原生代码】Python3 计算DI、ADX趋向指标相关推荐

  1. python计算长方形面积代码_Python计算两个矩形重合面积代码实例

    这篇文章主要介绍了Python 实现两个矩形重合面积代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 计算两个矩形的重合面积 imp ...

  2. 【原生代码】Python3 实现ATR、MA、EMA、SMMA、RMA、TEMA指标的计算

    1. 参数说明 r:K线数据,字典或者数组 days:指标长度 name:使用哪一个字段,填'Close'即可,如果不填则代表r是数组而不是字典 变量r 字典结构图如下: {{'Time': 0,'C ...

  3. 【邢不行|量化小讲堂系列19-Python量化入门】平均趋向指标(ADX)策略在A股的实证

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总]请点击此处 [必读文章]EOS期现 ...

  4. k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码

    从v0.1到v0.2 小数点后的一小步 是边缘计算领域里程碑式的一大步 KubeEdge发布v0.2版本 全球首个基于K8S 提供云边协同能力的开源边缘计算架构 正式补齐最后一块拼图 将毫无保留地提供 ...

  5. 人工智能/云原生/数据科学/计算等方向内容整理志愿者招募了!

    持续招募内容整理志愿者!云原生.数据科学.AI.低代码.计算等方向,有意愿的小伙伴,欢迎识别二维码提前报名哦.我们将持续为爱学习.有时间的小伙伴,提供多重福利! 要求: 1. 你需要具备一定学术背景, ...

  6. MUI调用原生自定义方法实现计算缓存与清空缓存

    由于项目需要最近在做webapp开发用的是MUI框架,自己本来是做原生开发的,在开发的时候有一个需求是实现计算缓存和清除缓存的功能,原生java方法实现轻轻松松,网上代码一大把,不过是webapp倒是 ...

  7. 《MATLAB金融算法分析实战》之量化投资趋向指标1— python实现

    <MATLAB金融算法分析实战>之量化投资趋向指标1- python实现 这本书我个人比较喜欢,也学习到了很多东西,matlab上学的时候没好好学,最近发现python写一遍也很有意思,除 ...

  8. 使用Elasticsearch计算布林带宽度指标

    布林带宽度(Bollinger Band Width)是美国股市分析家约翰·布林于2010年发明,用于测量布林带(Bollinger Bands于1980年发明)上下轨道线之间的相对距离.它随带宽变窄 ...

  9. Hubble:“百万原生代码+混合交易分析”的利器!

    长时间以来,人工智能和大数据一直作为孪生兄弟相互支撑. 但如今,生产与离线分析各自独立的传统信息化结构已经无法支撑AI的发展. 每个异构数据库产品之间的同步和数据冗余.业务的实时性需要流数据框架.ML ...

最新文章

  1. Python+OpenCV实现AI人脸识别身份认证系统(3)—训练人脸识别模型
  2. Matcher 类中的group(),group(int i),groupCount()
  3. Angular2父子组件数据传递之@ViewChild获取子组件详解
  4. 腾讯面试题 linux下free命令详解
  5. 会计记忆总结之六:账务处理程序
  6. boost::sort模块实现spreadsort 字符串函子排序示例
  7. numpy matlab 索引不同,与Numpy相似的MATLAB数组索引
  8. (一)Hyperledger Fabric 1.1安装部署-基础环境搭建
  9. 信号 09 | 函数pause
  10. 概率论之pandas
  11. 微软:“不好意思,我们还不够Cool,不能运行”
  12. OpenShift 4 - 基于URL的应用路由
  13. 关于字符匹配所引起的的问题
  14. 267. Palindrome Permutation II --back tracking 以及palindrome 的优化方法ing
  15. Vue.js 学习笔记 九 v-if和v-show
  16. 爱奇艺开源的高性能网络安全监控引擎
  17. jQuery WeUI学习笔记二
  18. 国际区号+手机号正则校验
  19. c语言中primesum函数,c语言之函数
  20. springboot/maven-orika 映射

热门文章

  1. Cocos2dx WebSocket的使用
  2. ReleaseMutex用法
  3. fatal: Authentication failed for解决方法
  4. CAN总线隔离中继器、CAN网桥的CAN滤波设置
  5. 【区块链】研究报告:区块链+供应链金融
  6. 关于写论文的资料总结
  7. flash的坐标系详解
  8. flash中遮罩+形状补间实现场景转换
  9. 【笔记】斯坦福大学论文写作课程
  10. Springboot旅游社交平台9k9sq计算机毕业设计-课程设计-期末作业-毕设程序代做