怎么自己免费创建一个网站,wordpress仿站教学,9377手游交易平台,福州高端建站本文使用Python语言绘制一只股票的CCI#xff08;Commodity channel index#xff09;曲线#xff0c;论文参考《Commodity channel index: Tool for trading cyclic trends》#xff0c;该指标可以用来测量股价、外汇或者贵金属交易是否已超出常态分布范围#xff0c; …本文使用Python语言绘制一只股票的CCICommodity channel index曲线论文参考《Commodity channel index: Tool for trading cyclic trends》该指标可以用来测量股价、外汇或者贵金属交易是否已超出常态分布范围 波动于正无穷大和负无穷大之间 。
参考招商证券软件对CCI指标的应用 参考百度对CCI公式的定义 * CCI(n) (TP MA) ÷MD ÷0.015 * TP (最高价 最低价 收盘价) ÷ 3 * MA 最近n日(TP)价的累计和÷n * MD 最近n日 (TP-MA )的绝对值的累计和 ÷ n * 系统默认n为14 根据公式需要获得一只股票每天的盘口数据可以使用AKShare库获取
import akshare as ak
import datetimedate datetime.datetime.now().strftime(%Y%m%d)
stock_zh_a_spot_em_df ak.stock_zh_a_spot_em()
stock_zh_a_spot_em_df.to_csv(E:\\股票盘口信息\\{}.csv.format(date), encodingutf_8_sig)
这样我们就获得了每一天的盘口数据CSV格式文件内容如下 采用下面的代码绘制CCI曲线股票选择平安银行代码“000001”csv格式的文件中“代码”列是数值所以前面五个0会去掉故下面代码中stock_num为1又如上图“代码”列中的758表示“000758”中色股份。
import math
import os.path
import matplotlib.pyplot as plt
import pandas as pddate []
zg []
zd []
zxj []
TP []
MA []
MD []
CCI []
n 14plt.figure(figsize(10, 5))stock_num 1path E:\\股票盘口信息
name_list os.listdir(path)
for name in name_list:filename E:\\股票盘口信息\\ namedata pd.read_csv(filename, encodingutf_8_sig)for i in range(0, len(data.get(代码))):if data.get(代码)[i] stock_num:zg.append(data.get(最高)[i])zd.append(data.get(最低)[i])zxj.append(data.get(最新价)[i])TP.append((data.get(最高)[i] data.get(最低)[i] data.get(最新价)[i]) / 3)date.append(name)breakfor i in range(0, len(date)):if i (n - 1):count 0for j in range(0, n):count TP[i - j]MA.append(count/n)else:MA.append(0)for i in range(0, len(date)):if i (n - 1):count 0for j in range(0, n):count math.fabs(TP[i - j] - MA[i - j])MD.append(count/n)else:MD.append(0)for i in range(0, len(date)):CCI.append((TP[i] - MA[i])/(MD[i]*0.015))plt.plot(date, CCI, b)
plt.grid()
plt.show()程序运行结果如下 拿证券软件的曲线对应 可能是中间有几天数据缺失的原因形状有些不一样如果是代码问题是留言指正。 抱怨几句去年11月12月项目比较忙加上☀了一个星期年底部门会议又多停更了几个月。说实话年纪确实大了以前在实验室从早上9点整到晚上22点还能开开心心吃个宵夜再回家现在每天7点下班回家后就躺在沙发上起不来感觉消耗特别大借迪迪哥一句“哎~人生啊”。