同花顺通达信公式指标改写成python实现代码,纯numpy,无循环!
myTT库非常精简,70行核心代码就实现同花顺通达信大部分技术指标公式
先看一个最简单的例子
#数字货币行情获取和指标计算演示
from hb_hq_api import * #数字货币行情库
from MyTT import * #myTT麦语言工具函数指标库#获取btc.usdt交易对120日的数据
df=get_price('btc.usdt',count=120,frequency='1d'); # ‘4h’是4小时#-----------df结果如下表(股市也基本一样)-------------------------------------------
open | close | high | low | vol | |
---|---|---|---|---|---|
2021-05-16 | 48983.62 | 47738.24 | 49800.00 | 46500.0 | 1.333333e+09 |
2021-05-17 | 47738.24 | 43342.50 | 48098.66 | 42118.0 | 3.353662e+09 |
2021-05-18 | 43342.50 | 44093.24 | 45781.52 | 42106.0 | 1.793267e+09 |
#-------有数据了,下面开始正题 -------------
CLOSE=df.close.values; OPEN=df.open.values
HIGH=df.high.values; LOW=df.low.values #基础数据定义MA5=MA(CLOSE,5) #获取5日均线序列
MA10=MA(CLOSE,10) #获取10日均线序列print('BTC5日均线', MA5[-1] ) # 只取最后一个数
print('BTC10日均线',RET(MA10)) # RET(MA10) == MA10[-1]
print('今天5日线是否上穿10日线',RET(CROSS(MA5,MA10)))
print('最近5天收盘价全都大于10日线吗?',EVERY(CLOSE>MA10,5) )
MyTT库中的部分工具函数
MA(CLOSE, 5) # 取得收盘价5日平均线
- 加权移动平均计算:EMA
EMA(CLOSE, 5) # 为了精度 , EMA至少需要120周期
- 中国式的SMA计算:SMA
SMA(CLOSE, 5) # 为了精度 , SMA至少需要120周期
- 返回序列标准差:STD
STD(CLOSE, 5) # 返回收盘价5日内标准差
- 平均绝对偏差:AVEDEV
AVEDEV(CLOSE, 5) # 序列与其平均值的绝对差的平均值
- 金叉判断:CROSS
CROSS(MA(CLOSE, 5), MA(CLOSE, 10)) # 5日均线上穿10日均线
- n天内满足条件的天数:COUNT
COUNT(CLOSE > OPEN, 10) # 最近10天收阳线的天数
- n天内全部满足条件的天数:EVERY
EVERY(CLOSE >OPEN, 5) # 最近5天都是收阳线
n天内是否至少满足条件一次:EXIST
n天内最大值:HHV
HHV(MAX(OPEN, CLOSE), 20) # 最近20天K线实体的最高价
- n天内最小值:LLV
LLV(MIN(OPEN, CLOSE), 60) # 最近60天K线实体的最低价
- 求和n日数据 SUM
SUM(CLOSE, 10) # 求和10天的收盘价
- 条件 IF
IF(OPEN > CLOSE, OPEN, CLOSE) #如果 开盘>收盘 返回OPEN ,否则返回CLOSE
def MACD(CLOSE,SHORT=12,LONG=26,M=9): # EMA的关系,CLOSE取120日,结果能精确到雪球小数点2位DIF = EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA = EMA(DIF,M); MACD=(DIF-DEA)*2return RD(DIF),RD(DEA),RD(MACD)
def KDJ(CLOSE,HIGH,LOW, N=9,M1=3,M2=3): RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100K = EMA(RSV, (M1*2-1)); D = EMA(K,(M2*2-1)); J=K*3-D*2return K, D, J
def RSI(CLOSE, N=24): DIF = CLOSE-REF(CLOSE,1) return RD(SMA(MAX(DIF,0), N) / SMA(ABS(DIF), N) * 100)
def WR(CLOSE, HIGH, LOW, N=10, N1=6): #W&R 威廉指标WR = (HHV(HIGH, N) - CLOSE) / (HHV(HIGH, N) - LLV(LOW, N)) * 100WR1 = (HHV(HIGH, N1) - CLOSE) / (HHV(HIGH, N1) - LLV(LOW, N1)) * 100return RD(WR), RD(WR1)
def BIAS(CLOSE,L1=6, L2=12, L3=24): # BIAS乖离率BIAS1 = (CLOSE - MA(CLOSE, L1)) / MA(CLOSE, L1) * 100BIAS2 = (CLOSE - MA(CLOSE, L2)) / MA(CLOSE, L2) * 100BIAS3 = (CLOSE - MA(CLOSE, L3)) / MA(CLOSE, L3) * 100return RD(BIAS1), RD(BIAS2), RD(BIAS3)
def BOLL(CLOSE,N=20, P=2): #BOLL布林带 MID = MA(CLOSE, N); UPPER = MID + STD(CLOSE, N) * PLOWER = MID - STD(CLOSE, N) * Preturn RD(UPPER), RD(MID), RD(LOWER)
def PSY(CLOSE,N=12, M=6): PSY=COUNT(CLOSE>REF(CLOSE,1),N)/N*100PSYMA=MA(PSY,M)return RD(PSY),RD(PSYMA)
def CCI(CLOSE,HIGH,LOW,N=14): TP=(HIGH+LOW+CLOSE)/3return (TP-MA(TP,N))/(0.015*AVEDEV(TP,N))
def ATR(CLOSE,HIGH,LOW, N=20): #真实波动N日平均值TR = MAX(MAX((HIGH - LOW), ABS(REF(CLOSE, 1) - HIGH)), ABS(REF(CLOSE, 1) - LOW))return MA(TR, N)
因为语法的问题,条件与是& ,条件或是|
# 收盘价在10日均线上 且10日均线在20日均线上
(C > MA(C, 10)) & (MA(C, 10) > MA(C, 20))# 收阳线 或 收盘价大于昨收
(C > O) | (C > REF(C, 1))
BOLL带指标数据获取和做图演示 (上证综指)
up,mid,lower=BOLL(CLOSE) #获取布林带数据 plt.figure(figsize=(15,8))
plt.plot(CLOSE,label='上证'); plt.plot(up,label='up'); #画图显示
plt.plot(mid,label='mid'); plt.plot(lower,label='lower');
项目地址:https://github.com/mpquant/MyTT
同花顺通达信公式指标改写成python实现代码,纯numpy,无循环!相关推荐
- 通达信公式改写成python代码的最简实现方式
MyTT MyTT是您量化工具箱里的瑞士军刀,精炼而高效,它将通达信,同花顺,文华麦语言等指标公式indicators,最简移植到Python中,核心库单个文件,仅百行代码,实现和转换同花顺通达信所有 ...
- 70行代码实现同花顺,通达信,麦语言大部分技术指标公式
MyTT是什么? MyTT将通达信,同花顺,文华麦语言等指标公式indicators,最简移植到Python中,核心库单个文件,仅百行代码,实现所有常见指标MACD,RSI,BOLL,ATR,KDJ, ...
- 通达信版弘历软件指标_中线公式指标(副图 通达信 贴图)明确文字提示,辅助判断中线走势下载_通达信公式...
中线公式指标(副图 通达信 贴图)明确文字提示,辅助判断中线走势下载详细说明 第一股票公式网()告诉您:当前正要下载:中线公式指标(副图 通达信 贴图)明确文字提示,辅助判断中线走势下载 中线公式指标 ...
- 通达信 python插件选股_自己做量化交易软件(20)通达信公式选股程序的实现
自己做量化交易软件(20)通达信公式选股程序的实现 1.用小白2很好实现.首先获取板块中股票,存放在列表中.例如获取"上证50" import HP_tdx as htdx fro ...
- 自己做量化交易软件(19)通达信公式转Python代码的程序
** 自己做量化交易软件(19)通达信公式转Python代码 ** 小白量化平台框架是本地化量化平台,用户的策略在用户自己电脑中执行,操作习惯仿股票软件,指标算法支持类通达信指标,回测也支持通达信大智 ...
- 通达信波段王指标公式主图_通达信精选指标——组合波段王果断买入井喷金叉突破均线流公式...
通达信精选指标--组合波段王果断买入井喷金叉突破均线流公式 Var59:=1/WINNER(CLOSE); Var33:=MA(CLOSE,13); Var34:=100-ABS((CLOSE-Var ...
- 通达信BS指标公式,使用SLOPE斜率函数
本文介绍了通达信SLOPE斜率函数的详细计算方法,并结合通达信BS指标公式学习了解SLOPE斜率函数的使用方法. 通达信有两个斜率相关的函数,ATAN和SLOPE.ATAN计算反正切值,SLOPE计算 ...
- 通达信SSL指标公式
以下是通达信SSL指标公式源码和使用说明 使用说明如下: 识别支撑位和阻力位:通过绘制SSL指标的结果,可以直观地观察到价格相对稳定的水平.支撑位通常表明价格有可能反弹,而阻力位则表明价格有可能下跌. ...
- bs公式matlab画图,简单BS主图指标 通达信公式(附图)
JJ:=(CLOSE+HIGH+LOW)/3; E:=EMA(JJ,5); D:=REF(E,1); AA1:=AMOUNT/V; BB1:=L CC1:=(C-REF(C,1))/REF(C,1)* ...
- 自己做量化交易软件(34)小白量化实战7--投资理念与通达信公式回测(2)
自己做量化交易软件(34)小白量化实战7–投资理念与通达信公式回测(2) 投资通俗地讲就是"财富变压器".投资是使资本和财富生长的源泉.没有证券市场和期货市场时投资者当投出一元钱时 ...
最新文章
- xpath技术解析xml以及案例模拟用户登录效果
- golang 代码安全审计
- C语言中的extern关键字用法
- 【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★
- ASP.NET Core 新核心对象WebHost(一)
- c语言编辑的库存管理软件,C语言课程设计,商品库存管理系统怎么做啊?
- python 示例_带有示例的Python列表copy()方法
- Spring为啥默认把bean设计成单例的
- NSAttributedString
- 转发给上海的朋友们!程序员写了一款抢菜插件!这个抢菜插件让上海很多朋友成功抢了一个月的菜!感谢!...
- OpenCV 直方图基础
- Windows程式开发设计指南--开始
- ARM指令集 mov指令,ldr=伪指令,地址访问指令ldr,str,位运算指令and,orr,eor,bic,逻辑位移指令lsl,lsr
- Intel Barefoot Academy - P4实战特训营
- Filtered off site request to
- 无人机动力测试台:150kg级-Flight Stand 150
- 中国企业说专列国庆开行 北京地铁一号线披上中国红迎国庆
- 18年华为没有一项原创的发明
- 前端 数组转字符串,字符串转数组
- matplotlib.pyplot超详细入门总结
热门文章
- BIGEMAP如何将高程数据(等高线)转换成xi'an80或者beijing54坐标系
- RFSoC应用笔记 - RF数据转换器 -15- API使用指南之Libmetal与结构体说明
- stc c语言子程序库,STC15 系列宏晶单片机的样例程序 - 下载 - 搜珍网
- 电脑打印机都正常,打印机无法打印
- python语法错误怎么办_Python中出现语法错误时解决方法
- 良品铺子的2021:营收创新高后的“战术调整”
- EBT 道客巴巴的加密与破解 - 实用组合工具箱
- 华丽的Flutter的demo----新闻阅读+音乐+短视频+小说
- 时延估计器的蒙特卡洛仿真分析
- 移动端浏览器识别PHP,PHP判断访客是否移动端浏览器访问