问题描述
趋势线,通常称为最佳拟合线,是用于表示一组数据的行为以确定是否存在某种模式的线。趋势线是一种分析工具,最常与散点图(有序对的二维图)结合使用,以查看两个变量之间是否存在关系。 此代码绘制高趋势线和低趋势线。 我试图检测时间价格何时突破低趋势或高趋势。 请分享您的解决方案。谢谢
import pandas as pd
import quandl as qdl
from scipy.stats import linregress
import matplotlib.pyplot as plt
# get AAPL 10 years data
data = qdl.get("WIKI/AAPL",start_date="2016-01-01",end_date="2016-09-01")
data0 = data.copy()
data0['date_id'] = ((data0.index.date - data0.index.date.min())).astype('timedelta64[D]')
data0['date_id'] = data0['date_id'].dt.days + 1
# high trend line
data1 = data0.copy()
while len(data1)>3:
reg = linregress(
x=data1['date_id'],y=data1['Adj. High'],)
data1 = data1.loc[data1['Adj. High'] > reg[0] * data1['date_id'] + reg[1]]
reg = linregress(
x=data1['date_id'],)
data0['high_trend'] = reg[0] * data0['date_id'] + reg[1]
# low trend line
data1 = data0.copy()
while len(data1)>3:
reg = linregress(
x=data1['date_id'],y=data1['Adj. Low'],)
data1 = data1.loc[data1['Adj. Low'] < reg[0] * data1['date_id'] + reg[1]]
reg = linregress(
x=data1['date_id'],)
data0['low_trend'] = reg[0] * data0['date_id'] + reg[1]
# plot
data0['Adj. Close'].plot()
data0['high_trend'].plot()
data0['low_trend'].plot()
plt.show()
chart 检查这个
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)