def _add_up_and_down_trend_strength(self, prices_df: QFDataFrame): def _down_trend_fun(df): return down_trend_strength(df, self.use_next_open_instead_of_close) def _up_trend_fun(df): return up_trend_strength(df, self.use_next_open_instead_of_close) up_trend_strength_tms = prices_df.rolling_time_window(window_length=self.window_len, step=1, func=_down_trend_fun) down_trend_strength_tms = prices_df.rolling_time_window(window_length=self.window_len, step=1, func=_up_trend_fun) chart = LineChart() up_trend_elem = DataElementDecorator(up_trend_strength_tms) down_trend_elem = DataElementDecorator(down_trend_strength_tms) chart.add_decorator(up_trend_elem) chart.add_decorator(down_trend_elem) legend = LegendDecorator(legend_placement=Location.BEST, key='legend') legend.add_entry(up_trend_elem, 'Up trend strength') legend.add_entry(down_trend_elem, 'Down trend strength') chart.add_decorator(legend) title = "Strength of the up and down trend - rolling {} days".format(self.window_len) title_decorator = TitleDecorator(title, key="title") chart.add_decorator(title_decorator) self._add_axes_position_decorator(chart) self.document.add_element(ChartElement(chart, figsize=self.image_size, dpi=self.dpi))
def _add_trend_strength_chart(self, prices_df: QFDataFrame): def _fun(df): return trend_strength(df, self.use_next_open_instead_of_close) trend_strength_tms = prices_df.rolling_time_window(window_length=self.window_len, step=1, func=_fun) chart = LineChart() trend_elem = DataElementDecorator(trend_strength_tms, color='black') chart.add_decorator(trend_elem) legend = LegendDecorator(legend_placement=Location.BEST, key='legend') legend.add_entry(trend_elem, 'Trend strength') chart.add_decorator(legend) title_decorator = TitleDecorator("Strength of the trend - rolling {} days".format(self.window_len), key="title") chart.add_decorator(title_decorator) self._add_axes_position_decorator(chart) self.document.add_element(ChartElement(chart, figsize=self.image_size, dpi=self.dpi))