用法:通过500次离差相减 表明走势强度
原理:
1、微积分中△y/△x 由于走势中时间变量是常数sum(1,0)
当涉及到△y/△x求导时只涉及到价格这个唯一变量 时间变量被抵消
因此我采用了两两相减求导的方法 可能错误 可能正确 对错他人评
2、从这个角度来看MACD(Moving Average Convergence Divergence)似乎是二阶求导,因此能够拟合走势变化
3、之所以代码中除以2是在于原计算参数太大造成无法正常显示,起调整作用,变量仍是价格
![](https://static.ws.126.net/163/frontend/images/2022/empty.png)
打开网易新闻 查看更多图片
注意:本公式中并不包含未来函数变动
4、虽然引用Refxv这个函数 但最后采用了Ref(x,250)进行抵消
5、两年前的研究成果 现以兹后人
![](https://static.ws.126.net/163/frontend/images/2022/empty.png)
打开网易新闻 查看更多图片
Python获取股票数据源代码
import json
import pandas as pd
import matplotlib.pyplot as plt
import requests
import numpy as np
from finta import TA
import mplfinance as mpf
import schedule
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
def get_stock_hist_data_em(stock='399300',start_date='20210101',end_date='20500101',data_type='15'):
data_dict = {'1': '1', '5': '5', '15': '15', '30': '30', '60': '60', 'D': '101', 'W': '102', 'M': '103'}
klt = data_dict[data_type]
fq='1'
if stock[0] == '6':
stock = '1.' + stock
else:
stock = '0.' + stock
url = ''
params = {
'': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13',
'fields2': 'f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61',
'beg': start_date,
'end': end_date,
'ut': 'fa5fd1943c7b386f172d6893dbfba10b',
'rtntype': end_date,
'secid': stock,
'klt': klt,
'fqt': fq,
'cb': 'jsonp1668432946680'
}
res = requests.get(url=url, params=params)
text = res.text[19:len(res.text) - 2]
json_text = json.loads(text)
try:
df = pd.DataFrame(json_text['data']['klines'])
df.columns = ['数据']
data_list = []
for i in df['数据']:
data_list.append(i.split(','))
data = pd.DataFrame(data_list)
columns = ['date', 'open', 'close', 'high', 'low', 'volume', '成交额', '振幅', '涨跌幅', '涨跌额', '换手率']
data.columns = columns
for m in columns[1:]:
data[m] = pd.to_numeric(data[m])
data.sort_index(ascending=True,ignore_index=True,inplace=True)
return data
except:
pass
def plot_kline_figure(stock='399905',start_date='20210101',end_date='20500101',data_type='1'):
df1=get_stock_hist_data_em(stock=stock,start_date=start_date,end_date=end_date)
df1.rename(columns={'date': 'Date', 'open': 'Open', 'close': 'Close', 'high': 'High', 'low': 'Low',
'volume': 'Volume'}, inplace=True)
df1['Date'] = pd.to_datetime(df1['Date'])
df1.set_index(['Date'], inplace=True)
mpf.plot(df1, type='candle')
plt.show()
a=plot_kline_figure()
print(a)
if __name__=='__main__':
while True:
a=plot_kline_figure()
print(a)
schedule.run_pending()
![](https://static.ws.126.net/163/frontend/images/2022/empty.png)
打开网易新闻 查看更多图片