检测价格何时突破低点或高点趋势图

问题描述

趋势线,通常称为最佳拟合线,是用于表示一组数据的行为以确定是否存在某种模式的线。趋势线是一种分析工具,最常与散点图(有序对的二维图)结合使用,以查看两个变量之间是否存在关系。 此代码绘制高趋势线和低趋势线。 我试图检测时间价格何时突破低趋势或高趋势。 请分享您的解决方案。谢谢

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 (将#修改为@)