예제 #1
0
 def test_close_pb_relation(self):
     start_date = dt.datetime(2006, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     mean_reversion.close_finance_relation(show_pb_border_line=True,
                                           column='pb')
예제 #2
0
 def test_show_price_only(self):
     symbol, alias = '399610', 'XSHE'
     now = dt.datetime(2020, 5, 28)
     start_date = dt.datetime(2010, 1, 1)
     mean_reversion = MeanReversion(start_date,
                                    now,
                                    symbol + "." + alias,
                                    'broad',
                                    load_finance=False)
     mean_reversion.append_poly_line(show=True)
예제 #3
0
 def test_poly(self):
     # start_date = dt.datetime(2005, 1, 1)
     # end_date = dt.datetime(2020, 5, 22)
     # mean_reversion = MeanReversion(start_date, end_date, '000001.XSHG', 'broad', load_finance=False)
     # mean_reversion.append_poly_line(show=True)
     start_date = dt.datetime(2016, 1, 1)
     end_date = dt.datetime(2020, 5, 1)
     mean_reversion = MeanReversion(start_date,
                                    end_date,
                                    '000300.XSHG',
                                    load_finance=False)
     mean_reversion.append_poly_line(show=True)
예제 #4
0
 def test_append_pos(self):
     start_date = dt.datetime(2015, 1, 1)
     end_date = dt.datetime(2016, 4, 1)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     mean_reversion.append_finance(n=1)
     mean_reversion.append_pos(show=True)
예제 #5
0
 def test_annual_return(self):
     mean_reversion = MeanReversion(dt.datetime(2005, 1, 1),
                                    dt.datetime.now(),
                                    '000012.XSHG',
                                    load_finance=False)
     pre_date = ''
     pre_year = 0
     pre_close = 0
     for index, row in mean_reversion.df.iterrows():
         if pre_year == 0 and pre_close == 0:
             pre_year = index.year
             pre_close = row.close
             pre_date = dt.datetime.strftime(index, "%Y-%m-%d")
         if index.year != pre_year:
             cur_date = dt.datetime.strftime(index, "%Y-%m-%d")
             print('date:%s -> date:%s, rate:%s%s, pre:%s, cur:%s' %
                   (pre_date, cur_date,
                    round(100 * (row.close - pre_close) / pre_close, 3),
                    '%', round(pre_close, 3), round(row.close, 3)))
             pre_year = index.year
             pre_close = row.close
             pre_date = cur_date
예제 #6
0
 def test_all(self):
     start_date = dt.datetime(2010, 1, 1)
     end_date = dt.datetime(2020, 5, 21)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     # 财务相关
     mean_reversion.append_expected_profit()
     mean_reversion.append_finance(n=7)
     mean_reversion.append_pos(show=False)
     # 价格相关
     mean_reversion.append_poly_line()
     mean_reversion.print_detail()
     mean_reversion.draw_reference()
예제 #7
0
 def test_ema(self):
     start_date = dt.datetime(2006, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     mean_reversion.__append_ema(show=True)
예제 #8
0
 def test_rolling_pe_percentile(self):
     start_date = dt.datetime(2006, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     mean_reversion.rolling_pe_percentile(show=True, show_p_hist=True)
예제 #9
0
 def test_append_poly_line(self):
     start_date = dt.datetime(2010, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion = MeanReversion(start_date, end_date, '000300.XSHG',
                                    'broad')
     mean_reversion.append_poly_line(show=True)
예제 #10
0
 def test_close_pe_relation(self):
     start_date = dt.datetime(2006, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion_cy = MeanReversion(start_date, end_date, '399006.XSHE',
                                       'broad')
     mean_reversion_cy.close_finance_relation(show_pe_percentile=True)
예제 #11
0
 def test_multi_rolling_pe_percentile(self):
     """
     000300.XSHG
     399006.XSHE
     000016.XSHG
     """
     start_date = dt.datetime(2006, 1, 1)
     end_date = dt.datetime(2020, 4, 1)
     mean_reversion_300 = MeanReversion(start_date, end_date, '000300.XSHG',
                                        'broad')
     mean_reversion_300.rolling_pe_percentile(show=True, show_p_hist=True)
     mean_reversion_50 = MeanReversion(start_date, end_date, '000016.XSHG',
                                       'broad')
     mean_reversion_50.rolling_pe_percentile(show=True, show_p_hist=True)
     mean_reversion_cy = MeanReversion(start_date, end_date, '399006.XSHE',
                                       'broad')
     mean_reversion_cy.rolling_pe_percentile(show=True, show_p_hist=True)
예제 #12
0
 def main(self, index_info: IndexInfo):
     self.data_step(index_info)
     if index_info.cal_sr:
         # 1、最近1年的k线数据
         ds = DataSource()
         df = ds.load_bar_data(index_info.symbol,
                               index_info.alias,
                               start_date=datetime.now() - timedelta(365),
                               end_data=datetime.now())
         mv = MainView(df)
         mv.draw_main()
     # 2、历史数据分析
     mean_reversion = MeanReversion(datetime(2010, 1, 1),
                                    datetime.now(),
                                    index_info.index_code,
                                    load_finance=index_info.cal_finance)
     if index_info.cal_close:
         # 价格相关
         mean_reversion.append_poly_line()
         mean_reversion.draw_close()
     if index_info.cal_finance:
         # 财务相关
         mean_reversion.append_expected_profit()
         mean_reversion.append_finance(n=index_info.rolling_gap_year)
         mean_reversion.append_pos(show=False)
         mean_reversion.print_detail()
         mean_reversion.draw_reference()