Package: trendet
trendet - Trend detection on stock time series dataIntroductiontrendetis a Python package to detect trends on the market so to analyze its behaviour. So on, this package
has been created to supportinvestpyfeatures when it comes to data retrieval
from different financial products such as stocks, funds or ETFs; and it is intended to be combined with it,
but also with everypandas.DataFrame, formatted as OHLC.Anyways,trendetcan also be used to identify trends from anypandas.DataFramewhich contains any column withint64orfloat64values, even though it is intended to be used with stock data; it can also be used for anypandas.DataFrame.InstallationIn order to get this package working you will need to install it using pip by typing on the terminal:$ python -m pip install trendet --upgradeOr just install the current release or a specific release version such as:$ python -m pip install trendet==0.7UsageAstrendetis intended to be combined withinvestpy, the main functionality is to
detect trends on stock time series data so to analyse the market and which behaviour does it have
in certain date ranges.In the example presented below, theidentify_all_trendsfunction will be used to detect every bearish/bullish trend
with a time window above 5 days, which, for example, implies that every bearish (decreasing) trend with a longer
length than 5 days will be identified as a down trend and so on added to apandas.DataFramewhich already contains
OHLC values, in new columns calledUp TrendandDown Trendwhich will be labeled as specified, with letters
from A to Z by default.importtrendetimportmatplotlib.pyplotaspltimportseabornassnssns.set(style='darkgrid')df=trendet.identify_all_trends(stock='BBVA',country='Spain',from_date='01/01/2018',to_date='01/01/2019',window_size=5,identify='both')df.reset_index(inplace=True)plt.figure(figsize=(20,10))ax=sns.lineplot(x=df.index,y=df['Close'])ax.set(xlabel='Date')labels=df['Up Trend'].dropna().unique().tolist()forlabelinlabels:sns.lineplot(x=df[df['Up Trend']==label].index,y=df[df['Up Trend']==label]['Close'],color='green')ax.axvspan(df[df['Up Trend']==label].index[0],df[df['Up Trend']==label].index[-1],alpha=0.2,color='green')labels=df['Down Trend'].dropna().unique().tolist()forlabelinlabels:sns.lineplot(x=df[df['Down Trend']==label].index,y=df[df['Down Trend']==label]['Close'],color='red')ax.axvspan(df[df['Down Trend']==label].index[0],df[df['Down Trend']==label].index[-1],alpha=0.2,color='red')locs,_=plt.xticks()labels=[]forpositioninlocs[1:-1]:labels.append(str(df['Date'].loc[position])[:-9])plt.xticks(locs[1:-1],labels)plt.show()Further usage insights can be found on thedocsor on the followinggist. Anyways,
feel free to create your own scripts on how you usetrendetor how can it be used in order to improve its features.ContributeAs this is an open source project it is open to contributions, bug reports, bug fixes, documentation improvements,
enhancements and ideas.Also there is an open tab ofissueswhere anyone can contribute opening
new issues if needed or navigate through them in order to solve them or contribute to its solving.DisclaimerThis package has been created so to identify market trends based on stock historical data retrieved viainvestpyso to determine which trends have been prevailing on the market
based on a single stock OHLC values.Conclude that this is the result of a research project, so this package has been developed with research purposes and
no profit is intended.Plots have been generated with bothmatplotlibandseaborn.