def __plot_min_max__(self): wave_tick_list = WaveTickList(self.pdh.pattern_data.df_min_max) width, height = PlotterInterface.get_ellipse_width_height_for_plot_min_max(self.sys_config, wave_tick_list) for ticks in wave_tick_list.tick_list: x = MyDate.get_date_as_number_from_epoch_seconds(ticks.f_var) if ticks.is_min: self.axes_for_candlesticks.add_patch(Ellipse((x, ticks.low), width, height, color='r')) else: self.axes_for_candlesticks.add_patch(Ellipse((x, ticks.high), width, height, color='g')) # fill some ellipses with color white width, height = width/2, height/2 for ticks in self.pdh.pattern_data.tick_list_min_without_hidden_ticks: self.axes_for_candlesticks.add_patch(Ellipse((ticks.f_var, ticks.low), width, height, color='w')) for ticks in self.pdh.pattern_data.tick_list_max_without_hidden_ticks: self.axes_for_candlesticks.add_patch(Ellipse((ticks.f_var, ticks.high), width, height, color='w'))
def get_arrow_for_wave_peak(self, tick: WaveTick, wave_type: str): number_waves = tick.get_wave_number_for_wave_type(wave_type) height, head_length, head_width = self.get_arrow_size_parameter_for_wave_peaks( wave_type, number_waves) x = MyDate.get_date_as_number_from_epoch_seconds(tick.f_var) kwargs = self.__get_kw_args_for_arrows__(wave_type) if wave_type == WAVEST.DAILY_ASC: return Arrow(x=x, y=tick.high + height, dx=0, dy=-height, width=1, **kwargs) elif wave_type == WAVEST.DAILY_DESC: return Arrow(x=x, y=tick.low - height, dx=0, dy=height, width=1, **kwargs)
def get_xy_from_timestamp_to_date_number(xy): # print('get_xy_from_timestamp_to_date_number={}'.format(xy)) if type(xy) is list: return [(MyDate.get_date_as_number_from_epoch_seconds(t_val[0]), t_val[1]) for t_val in xy] return MyDate.get_date_as_number_from_epoch_seconds(xy[0]), xy[1]