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')
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)
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)
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)
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
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()
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)
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)
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)
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)
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)
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()