def main(): findbillion_database = class_findbillion_database(dataset_path) # est_eps = class_est_eps(findbillion_database) est_yield = class_est_yield(findbillion_database) #----------------------------------------- # ground truth of dividend_cash fs_dividendpolicy = class_fs_dividendpolicy(findbillion_database) dividend_cash = fs_dividendpolicy.get_Dividend_Cash(stockid, year_est) #----------------------------------------- # methed 1: average cash dividend dividend_cash_avg = est_yield.get_average_5y_cash_dividend( stockid, year_stat) error_method1 = (dividend_cash_avg - dividend_cash) / dividend_cash * 100 print("Average cash dividend: ") print("cash dividend (true): {:2.2f}".format(dividend_cash)) print("cash dividend (predict): {:2.2f}".format(dividend_cash_avg)) print("error of predict: {:2.2f}%".format(error_method1)) #-------------------------------------------------- # methed 2: average dividend payout ratio print("----------------------------------------") eps_est_last4q = est_eps.est_last_4q_eps_by_netincome_ratio( stockid, year_est, 4) est_dividend_cash = est_yield.est_cash_dividend_by_dividend_payout_ratio( stockid, year_stat, eps_est_last4q) error_method2 = (est_dividend_cash - dividend_cash) / dividend_cash * 100 print("Average cash dividend payout ratio: ") print("cash dividend (true): {:2.2f}".format(dividend_cash)) print("cash dividend (predict): {:2.2f}".format(est_dividend_cash)) print("error of predict: {:2.2f}%".format(error_method2)) #-------------------------------------------------- # methed 3: estimate dividend payout ratio by linear regression print("----------------------------------------") eps_est = est_eps.est_last_4q_eps_by_netincome_ratio(stockid, year_est, 4) est_dividend_cash = est_yield.est_cash_dividend_by_linear_regression_5y( stockid, year_stat, eps_est) error_method3 = (est_dividend_cash - dividend_cash) / dividend_cash * 100 print("Estimate cash dividend payout ratio by linear regression: ") print("cash dividend (true): {:2.2f}".format(dividend_cash)) print("cash dividend (predict): {:2.2f}".format(est_dividend_cash)) print("error of predict: {:2.2f}%".format(error_method3))
def main(): year = 2019 quarter = 4 stockid = 2330 findbillion_database = class_findbillion_database(dataset_path) financial_ratio = class_financial_ratio(findbillion_database) est_eps = class_est_eps(findbillion_database) eps_true = financial_ratio.get_eps_last_4q(stockid, year, quarter) eps_pred = est_eps.est_last_4q_eps_by_netincome_ratio( stockid, year, quarter) err_percentage = (eps_pred - eps_true) / eps_true * 100 print("eps (true): {:2.2f}".format(eps_true)) print("eps (predict): {:2.2f}".format(eps_pred)) print("error of predict: {:2.2f}%".format(err_percentage))
def main(): findbillion_database = class_findbillion_database(dataset_path) for year in year_list: print('----------------------------') print(year) # eps ground truth financial_ratio = class_financial_ratio(findbillion_database) eps_true = financial_ratio.get_eps_last_4q(stockid, year, quarter) # estimated eps est_eps = class_est_eps(findbillion_database) eps_pred = est_eps.est_last_4q_eps_by_netincome_ratio( stockid, year, quarter) # error err_percentage = (eps_pred - eps_true) / eps_true * 100 print("eps (true): {:2.2f}".format(eps_true)) print("eps (predict): {:2.2f}".format(eps_pred)) print("error of predict: {:2.2f}%".format(err_percentage))
dataset_path = r'../../data' save_path = r'../../~result' num_cpu = 4 debug = 0 #year_stat_list = [2012, 2013, 2014, 2015, 2016, 2017] # 2012~2017 #year_est_list = [2013, 2014, 2015, 2016, 2017, 2018] # 2013~2018 #hold_year = 1 year_stat_list = [2012, 2013, 2014, 2015] # 2012~2017 year_est_list = [2013, 2014, 2015, 2016] # 2013~2018 hold_year = 3 num_stock_sel = 10 findbillion_database = class_findbillion_database(dataset_path) yield_buyin = 0.0625 yield_buyin_target = 0.05 np.random.seed(7) def processing_roe_15pa(stockid, year_stat): print(format(stockid) + '...') financial_ratio = class_financial_ratio(findbillion_database) roe_avg = financial_ratio.get_ROE_avg(stockid, year_stat, 4, 5) if roe_avg is not None and roe_avg > 0.15: return stockid else: return None