Пример #1
0
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()
        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()
Пример #3
0
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()
Пример #4
0
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()
Пример #5
0
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()
Пример #6
0
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)
Пример #7
0
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()
Пример #8
0
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()