class Backtest(QA_Backtest): def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() self.portfolio, self.account = self.user.register_account(mastrategy) def after_success(self): QA_util_log_info(self.account.history_table) # check if the history_table is empty list if len(self.account.history_table) == 0: # 没有交易历史记录,直接返回 return risk = QA_Risk(self.account, benchmark_code='000300', benchmark_type=MARKET_TYPE.INDEX_CN) print(risk().T) risk.plot_assets_curve() risk.plot_dailyhold() risk.plot_signal() performance = QA_Performance(self.account) performance.plot_pnlmoney(performance.pnl_fifo) performance.plot_pnlratio(performance.pnl_fifo) self.account.save() risk.save()
class Backtest(QA_Backtest): ''' 多线程模式回测示例 ''' def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() # maminstrategy = MAMINStrategy() # maminstrategy.reset_assets(1000) # self.portfolio, self.account = self.user.register_account(mastrategy) self.user = QA_User(user_cookie='user_admin') self.portfolio = self.user.new_portfolio('folio_admin') self.portfolio, self.account = self.user.register_account(mastrategy) def after_success(self): QA_util_log_info(self.account.history_table) risk = QA_Risk(self.account, benchmark_code='000300', benchmark_type=MARKET_TYPE.INDEX_CN) print(risk().T) self.account.save() risk.save()
class Backtest(QA_Backtest): ''' 多线程模式回测示例 ''' def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() maminstrategy = MAMINStrategy() # maminstrategy.reset_assets(1000) # self.portfolio, self.account = self.user.register_account(mastrategy) self.user = QA_User(user_cookie='user_admin') self.portfolio = self.user.new_portfolio('folio_admin') self.portfolio, self.account = self.user.register_account(mastrategy) def after_success(self): QA_util_log_info(self.account.history_table) risk = QA_Risk(self.account, benchmark_code='000300', benchmark_type=MARKET_TYPE.INDEX_CN) print(risk().T) risk.plot_assets_curve() risk.plot_dailyhold() risk.plot_signal() self.account.save() risk.save()
class Backtest(QA_Backtest): def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) cpsstrategy = CaoPanShouStrategy() self.user = QA_User(user_cookie='user_admin') self.portfolio = self.user.new_portfolio('folio_admin_caopanshou') # self.account = self.portfolio.new_account() # self.portfolio, self.account = self.user.register_account(cpsstrategy, portfolio_cookie='folio_admin') self.portfolio, self.account = self.user.register_account(cpsstrategy) # account = QA_Account(user_cookie='user_admin', # portfolio_cookie='portfolio_admin', # account_cookie='account_admin') # self.user = QA_User.register_account(account) # self.portfolio, self.account = self.user.register_account(cpsstrategy) def after_success(self): QA_util_log_info(self.account.history_table) risk = QA_Risk(self.account, benchmark_code='000300', benchmark_type=MARKET_TYPE.INDEX_CN) print(risk().T) self.account.save() risk.save()
class Backtest(QA_Backtest): def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() self.portfolio, self.account = self.user.register_account(mastrategy) def after_success(self): QA_util_log_info(self.account.history_table)
class Backtest(QA_Backtest): def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() maminstrategy = MAMINStrategy() self.portfolio, self.account = self.user.register_account(mastrategy) def after_success(self): QA_util_log_info(self.account.history_table) risk = QA_Risk(self.account) print(risk.assets) print('annualize_return : {} %'.format(risk.annualize_return)) print('max_dropback : {} %'.format(risk.max_dropback)) print('profit : {} %'.format(risk.profit)) print('volatility : {}'.format(risk.volatility)) self.account.save()
class Backtest(QA_Backtest): def __init__(self, market_type, frequence, start, end, code_list, commission_fee): super().__init__(market_type, frequence, start, end, code_list, commission_fee) self.user = QA_User() mastrategy = MAStrategy() maminstrategy = MAMINStrategy() self.portfolio, self.account = self.user.register_account(mastrategy) self.portfolio.add_account(MAStrategy()) def after_success(self): QA_util_log_info(self.account.history_table) risk = QA_Risk(self.account, benchmark_code='000300', benchmark_type=MARKET_TYPE.INDEX_CN) print(risk().T) self.account.save() risk.save()