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'))
예제 #2
0
 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]