用法:通过500次离差相减 表明走势强度
原理:
1、微积分中△y/△x 由于走势中时间变量是常数sum(1,0)
当涉及到△y/△x求导时只涉及到价格这个唯一变量 时间变量被抵消
因此我采用了两两相减求导的方法 可能错误 可能正确 对错他人评
2、从这个角度来看MACD(Moving Average Convergence Divergence)似乎是二阶求导,因此能够拟合走势变化
3、之所以代码中除以2是在于原计算参数太大造成无法正常显示,起调整作用,变量仍是价格

打开网易新闻 查看更多图片

注意:本公式中并不包含未来函数变动
4、虽然引用Refxv这个函数 但最后采用了Ref(x,250)进行抵消
5、两年前的研究成果 现以兹后人

打开网易新闻 查看更多图片

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()

打开网易新闻 查看更多图片