怎么学网站建设,linux 如何做网站,网站调用优酷视频去除广告,doku做网站目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介
将这两个指标放在一起#xff0c;一方面是因为这两个指标都属于摆动指数#xff0c;可以反应市场的活跃度。
另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘… 目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介
将这两个指标放在一起一方面是因为这两个指标都属于摆动指数可以反应市场的活跃度。
另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘价作为计算基础而CCI和ATR是以收盘价、最高价、最低价三个价格最为计算基础。
下面分别进行介绍。
CCI
CCI 指标Commodity Channel Index / CCI全称为商品通道指数,是一种用于衡量价格趋势强弱的震荡类指标。
CCI 旨在更全面地分析一定时间段内的综合价格走势更好地反映价格的变化和波动。与其他震荡指标不同CCI 不仅以收盘价为参考还使用了最高价、最低价和收盘价的平均值作为计算基础。
计算公式
计算典型价格TPTP 最高价 最低价 收盘价/ 3计算典型价格移动平均线TPSMATPSMA TP1 TP2 TP3 … TPn / n计算均值偏差Mean DeviationMD ( |TP1 - TPSMA1| … |TPn - TPSMAn| ) / n计算CCI指数CCI TPt - TPSMAt / 0.015 X MDt 其中t代表当前K线上的数据0.015用于将70%到80%的CCI数据归纳在100和-100之间.
ATR
ATR指标Average True Range / ATR是一种用于衡量资产价格波动的指标。
ATR指标的计算方法
计算波动幅度TRTrue Rangemax(当天最高价和最低价之间的距离,前一天收盘价和当天最高价之间的距离,前一天收盘价和当天最低价之间的距离)。取一定时间周期内通常默认为14个交易日TR的平均值即可得到平均真实波动幅度ATR。
ATR的波动幅度概念可以显示出交易者的期望和市场交易的活跃程度。波动率越高ATR值越高反之波动率越低ATR值也越低。
2. 程序编写
由俭入奢由易奢入俭难。自从用了 AI就不想自己写代码了。
关门放 DevChat。
对程序进行修改除了地址、用户名密码、数据库、SQL外需要调整REstful查询方式。
response requests.post(query_url, dataquery, auth(user, password))
data json.loads(response.content.decode())TDengine 查询方面需要做出几项修改
Restful 需要使用 POST 方式Body 中的内容是 SQL 明文返回的结果是 json 格式。
为方便图形查看添加收盘价图形并在 CCI 图形上添加趋势线来区分超买超卖区域。
import requests
import pandas as pd
import numpy as np
import json
from matplotlib import pyplot as plt# 设置TDengine数据库的连接信息
host http://10.7.7.14
port 6041
user root
password taosdata
database trade_data_c# 从TDengine查询一段时间内的收盘价
query_url f{host}:{port}/rest/sql/{database}
query select tdate,close,high,low from trade_data_c.tdata where fcode000001 and tdate 2022-03-01 AND tdate 2023-02-28
response requests.post(query_url, dataquery, auth(user, password))
data json.loads(response.content.decode())
df pd.DataFrame(data[data], columns[tdate, close,high,low])
df[tdate] pd.to_datetime(df[tdate])
df.set_index(tdate, inplaceTrue)# 计算ATR
df[high - low] df[close].diff().abs()
df[high - close_pre] (df[high] - df[close].shift()).abs()
df[low - close_pre] (df[low] - df[close].shift()).abs()
df[TR] df[[high - low, high - close_pre, low - close_pre]].max(axis1)
df[ATR] df[TR].rolling(window14).mean()# 计算CCI
tp (df[high] df[low] df[close]) / 3
ma tp.rolling(window20).mean()
md tp.rolling(window20).std()
df[CCI] (tp - ma) / (0.015 * md)# 绘制ATR和CCI图形
plt.figure(figsize(12, 8))
plt.subplot(3, 1, 1)
plt.plot(df.index, df[close])
plt.title(CLOSE)
plt.xlabel(Date)
plt.ylabel(Value)plt.subplot(3, 1, 2)
plt.plot(df.index, df[ATR]*10)
plt.title(ATR)
plt.xlabel(Date)
plt.ylabel(Value(x10))plt.subplot(3, 1, 3)
plt.plot(df.index, df[CCI])
plt.axhline(y0,colorred,linestyle--)
plt.axhline(y100,colorred,linestyle--)
plt.axhline(y-100,colorred,linestyle--)
plt.title(CCI)
plt.xlabel(Date)
plt.ylabel(Value)plt.tight_layout()
plt.show()仔细想了想我做的这些修改是否都可以由AI自动完成呢
题外话
相比于只使用收盘价采用更多的价格理论上应该更能贴近真实的市场。
但事实却不一定如此有时最高价、最低价只是市场上的噪音不应该考虑在内。