python 通达信公式函数_通达信zig函数的python实现
通达信zig函数的python实现
代码
# coding: utf-8
"""
Created on Sat Jan 05 18:53:39 2019
http://www.pianshen.com/article/363258879/
@author: duanqs
"""
import numpy as np
import tushare as ts
import matplotlib.pyplot as plt
ZIG_STATE_START = 0
ZIG_STATE_RISE = 1
ZIG_STATE_FALL = 2
def zig(x=0.055):
#ts.set_token("此处放入tushare的token!!!")
#pro = ts.pro_api()
#df = pro.daily(ts_code="603297.SH")
# print(list(df["close"]))
# df = ts.get_hist_data('000069')
# df = df[::-1]
# 获取股票交易数据的Tushare的使用方法 - 蜗牛爬行ing - 博客园
# https://www.cnblogs.com/DreamRJF/p/8660630.html
# posted on 2018-03-28 15:18 蜗牛爬行ing
#df = ts.get_k_data('000069')
# df = ts.get_k_data('600535')
# df = ts.get_k_data('512040') # 富国国信价值 etf 基金
# df = ts.get_h_data('000051', index=True) # 上证180等权指数 index 参数必须指定为True
df = ts.get_k_data('000051', index=True, start='2011-01-01') # 上证180等权指数 index 参数必须指定为True
#df = ts.get_h_data('399106', index=True) # index 参数必须指定为True
#df = ts.get_h_data('399106', index=True) #深圳综合指数
#df = ts.get_k_data('399106', index=True) #深圳综合指数
# df = ts.get_k_data('931052', index=True) # 中证国信价值指数, 不支持的指数
# df = ts.get_k_data('hs300') # 支持主要的几个股票指数的历史行情
# 股票代码,即6位数字代码,或者指数代码
# (sh=上证指数 sz=深圳成指 hs300=沪深300指数
# sz50=上证50 zxb=中小板 cyb=创业板)
#df = df.reset_index(drop=True)
# df = df.iloc[-100:]
#x = 0.055
k = df["close"]
#d = df["trade_date"]
d = df['date']
# d = df.index
#print(k)
#print(d)
# 循环前的变量初始化
# 端点 候选点 扫描点 端点列表 拐点线列表 趋势状态
peer_i = 0
candidate_i = None
scan_i = 0
peers = [0]
z = np.zeros(len(k))
state = ZIG_STATE_START
while True:
#print(peers)
scan_i += 1
if scan_i == len(k) - 1:
# 扫描到尾部
if candidate_i is None:
peer_i = scan_i
peers.append(peer_i)
else:
if state == ZIG_STATE_RISE:
if k[scan_i] >= k[candidate_i]:
peer_i = scan_i
peers.append(peer_i)
else:
peer_i = candidate_i
peers.append(peer_i)
peer_i = scan_i
peers.append(peer_i)
elif state == ZIG_STATE_FALL:
if k[scan_i] <= k[candidate_i]:
peer_i = scan_i
peers.append(peer_i)
else:
peer_i = candidate_i
peers.append(peer_i)
peer_i = scan_i
peers.append(peer_i)
break
if state == ZIG_STATE_START:
if k[scan_i] >= k[peer_i] * (1 + x):
candidate_i = scan_i
state = ZIG_STATE_RISE
elif k[scan_i] <= k[peer_i] * (1 - x):
candidate_i = scan_i
state = ZIG_STATE_FALL
elif state == ZIG_STATE_RISE:
if k[scan_i] >= k[candidate_i]:
candidate_i = scan_i
elif k[scan_i] <= k[candidate_i]*(1-x):
peer_i = candidate_i
peers.append(peer_i)
state = ZIG_STATE_FALL
candidate_i = scan_i
elif state == ZIG_STATE_FALL:
if k[scan_i] <= k[candidate_i]:
candidate_i = scan_i
elif k[scan_i] >= k[candidate_i]*(1+x):
peer_i = candidate_i
peers.append(peer_i)
state = ZIG_STATE_RISE
candidate_i = scan_i
#线性插值, 计算出zig的值
for i in range(len(peers) - 1):
peer_start_i = peers[i]
peer_end_i = peers[i+1]
start_value = k[peer_start_i]
end_value = k[peer_end_i]
a = (end_value - start_value)/(peer_end_i - peer_start_i)# 斜率
for j in range(peer_end_i - peer_start_i +1):
z[j + peer_start_i] = start_value + a*j
print(u'...转向点的阀值、个数、位置和日期...')
print(x, len(peers))
print(peers)
dates = [d[i] for i in peers]
print(dates)
#print([k[i] for i in peers])
#print(list(k))
#print(list(z))
plt.plot(z)
zig(x=0.055)
结果
...转向点的阀值、个数、位置和日期...
(0.055, 71)
[0, 18, 38, 101, 111, 153, 196, 208, 230, 313, 321, 331, 344, 374, 420, 459, 488, 513, 576, 598, 613, 645, 660, 675, 697, 744, 887, 888, 893, 902, 952, 959, 973, 974, 985, 995, 996, 1002, 1005, 1007, 1013, 1016, 1030, 1037, 1045, 1049, 1085, 1097, 1114, 1140, 1154, 1157, 1189, 1220, 1342, 1364, 1429, 1449, 1575, 1607, 1628, 1638, 1654, 1732, 1745, 1784, 1792, 1801, 1823, 1853, 1855]
[u'2011-05-24', u'2011-06-20', u'2011-07-18', u'2011-10-21', u'2011-11-04', u'2012-01-05', u'2012-03-13', u'2012-03-29', u'2012-05-07', u'2012-08-31', u'2012-09-12', u'2012-09-26', u'2012-10-22', u'2012-12-03', u'2013-02-08', u'2013-04-15', u'2013-05-29', u'2013-07-08', u'2013-10-14', u'2013-11-13', u'2013-12-04', u'2014-01-20', u'2014-02-17', u'2014-03-10', u'2014-04-10', u'2014-06-19', u'2015-01-16', u'2015-01-19', u'2015-01-26', u'2015-02-06', u'2015-04-27', u'2015-05-07', u'2015-05-27', u'2015-05-28', u'2015-06-12', u'2015-06-29', u'2015-06-30', u'2015-07-08', u'2015-07-13', u'2015-07-15', u'2015-07-23', u'2015-07-28', u'2015-08-17', u'2015-08-26', u'2015-09-09', u'2015-09-15', u'2015-11-11', u'2015-11-27', u'2015-12-22', u'2016-01-28', u'2016-02-24', u'2016-02-29', u'2016-04-14', u'2016-05-30', u'2016-11-29', u'2016-12-29', u'2017-04-11', u'2017-05-10', u'2017-11-13', u'2017-12-27', u'2018-01-26', u'2018-02-09', u'2018-03-12', u'2018-07-05', u'2018-07-24', u'2018-09-17', u'2018-09-28', u'2018-10-18', u'2018-11-19', u'2019-01-02', u'2019-01-04']
图片:
python 通达信公式函数_通达信zig函数的python实现相关推荐
- 通达信公式大全_通达信MACD金叉的选股公式大全
公式来源于网络,我只是用其中一个,一起复制来了,有需要的自取吧.1.0轴上方第一次金叉选股公式: DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26); DEA := EMA(DIF ...
- 通达信 移动平均算法_通达信线性回归通道主图指标公式;通达信顶底轻松买卖副图指标公式...
作者: 黄老师 发布时间: 06/04 2020 16:00 信线性回归通道主图指标: UR:=6;LR:=6;TC1:=IF(H=HHV(H,8*UR),H,DRAWNULL);TC2:=CONS ...
- 通达信 移动平均算法_通达信洗盘监庄指标副图公式
作者: 黄老师 发布时间: 06/03 2020 08:00 VARC:=LOW;VARD:=REF(LOW,1);VARE:=SMA(ABS(VARC-VARD),3,1)/SMA(MAX(VAR ...
- 通达信 移动平均算法_通达信仓位管理主图指标公式
作者: 黄老师 发布时间: 06/02 2020 15:00 MA10:MA(C,10)COLORWHITE,LINETHICK2;MA30:MA(C,30)COLOR238E23,LINETHIC ...
- 一信通短信接口对接_短信接口对接流程
下面是php开发语言短信接口接入到项目中的demo示例: // ① 该代码仅供接入动力思维乐信短信接口参考使用,客户可根据实际需要自行编写: // ② 支持发送验证码短信.触发通知短信等: // ③ ...
- python中匹配函数_正则表达式以匹配函数名和Python中的所有参数
假设我有一个字符串,如下所示:"func(arg1, arg2, arg3, arg4, ..., argn)" 编辑:此函数不是用某种特定语言编写的.它只有这种格式.如果这样做更 ...
- 一信通短信接口对接_短信接口对接
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- python怎么用gamma函数_不完全gamma函数 python有gamma函数吗
matlab中gammainc(不完全伽马函数)是代表什么运算? 如题,matlab中gammainc函数是什么运算,比如A==gammainc(B/2,C/2) 麻烦问一下,图中的红框的下一步是怎么 ...
- java调用短信验证失败_短信验证码被刷怎么办?java 短信验证码防刷策略
一 事件简述 这是一件发生在前段时间的事情,当时的情况是这样的:一个新的功能模块上线之后,出现短信接口被恶意访问调用的情况,请求数量很大,而且通过查看短信服务商控制台也发现,短信发送量在飙升,看着统计 ...
最新文章
- Linux系统管理学习路线图
- git revert 用法
- atCoder Ants on a Circle(又是蚂蚁问题。。。)
- python reduce函数 day16
- html之元素与元素的形成
- 七大新品集中亮相,腾讯云AI大数据全线升级!
- UVa 10020 (最小区间覆盖) Minimal coverage
- ae缺少效果opticalflares_新版镜头光晕插件来袭,Optical Flares 1.3.5 for Win/Mac,含注册机...
- 【BFS】LeetCode 130. Surrounded Regions
- CAESAR II 5.00 USB加密锁运行稳定完整功能版/
- Mac用Homebrew安装libimobiledevice
- Yii2汉字转拼音类
- win7计算机属性资源管理器停止工作,win7系统windows资源管理器已停止工作一直弹出来的处理方法...
- Cisco Packet Tracer Student的路由器接口配置
- Altium Designer 的PCB中添加图片或logo的方法(附PCB Logo Creator插件)
- android 在状态栏耳机图标显示图标显示图标显示图标,Android 通知栏图标
- 欲望、外界、标签、天才、时间、经历、人生目标、后悔、和现实。转自特种兵—AK47
- 啊哈C——学习2.6一起来找茬
- 怎么理解cpu load?
- The Pragmatic Programmer 读书笔记之一 DRY-Don’t Repeat Youself
热门文章
- 键盘特殊符号输入小技巧
- Java中基本数据类型和包装类型的区别
- 如何批量修改文件名、照片文件名
- Windows与Linux双系统设置默认引导项与删除引导项
- 2022高性价蓝牙耳机排名,500元内真无线蓝牙耳机品牌推荐
- Android 逆向基础
- 基于单片机的RFID考勤刷卡电路设计(#0207)
- 只要两步,用Python将地址标记在地图上!
- mysql 出现撇号 _Navicat使用教程:如何在MySQL中定位和删除有重复意义的值
- 【历史上的今天】3 月 7 日:首条海底光缆开通;VeriSign 收购 Network Solutions;计算机图形学先驱诞生