QUANTAXIS策略运行的回测结果和绩效分析是在 QUANTAXIS.QAARP 的QA_Risk和QA_Performance,包括

from QUANTAXIS.QAARP import QA_Risk,QA_Performance
risk=QA_Risk()
risk = QA_Risk(...)#通常传入策略的账户
perf=QA_Performance(...)#通常传入策略的账户

QA_Risk主要是风险指标,包括:
在这里插入图片描述

QA_Performance是绩效指标,包括:
在这里插入图片描述

通过一个单标的资产回测策略来测试:

from QAStrategy.qastockbase import QAStrategyStockBase
from QUANTAXIS.QAARP import QA_Risk,QA_Performance
from rich import print #用rich包美化打印
class MyStrategy(QAStrategyStockBase):
    def user_init(self):
        self.counter=1
    def on_bar(self,bar):
         if self.counter % 15 == 0:            
                 print('buy')
                 self.send_order(direction='BUY',offset='OPEN',code=bar.name[1],price=bar.open,volume=10000)
         if self.counter % 15== 14:            
                 print('sell')
                 self.send_order(direction='SELL',offset='CLOSE',code=bar.name[1],price=bar.open,volume=10000)
         self.counter+=1
         
if __name__=="__main__":
	code = '000001'
	s = MyStrategy(
	    code=code,
	    frequence="day",
	    start="2020-05-01",
	    end="2021-06-05",
	    strategy_id="test",
	)
	
	s.run_backtest()
	risk = QA_Risk(s.acc)
	perf=QA_Performance(s.acc)
	print('【风险指标】')
	print(risk.message)
	print('【绩效指标】')
	print(perf.base_message(perf.pnl))

运行结果 :

【风险指标】
{
    'account_cookie': 'test',
    'portfolio_cookie': 'default',
    'user_cookie': 'USER_NKWeYEZd',
    'annualize_return': 0.13,
    'profit': 0.14,
    'max_dropback': 0.47,
    'time_gap': 258,
    'volatility': 3.42,
    'benchmark_code': '000300',
    'bm_annualizereturn': 0.3,
    'bm_profit': 0.31,
    'beta': 0,
    'alpha': 0.13,
    'sharpe': 0.02,
    'sortino': -0.29,
    'init_cash': '957726.48',
    'last_assets': '1088020.54',
    'total_tax': -11038.9,
    'total_commission': -5610.92,
    'profit_money': 130294.06,
    'assets': [
        957726.48087871,
        954470.0168438699,
        959451.71357725,
        961218.7176134,
        955085.07339257,
        ...
 }
 【绩效指标】
{
    'total_profit': 162900.0,
    'total_loss': -45000.0,
    'total_pnl': 3.62,
    'trading_amounts': 17,
    'profit_amounts': 11,
    'loss_amounts': 6,
    'even_amounts': 0,
    'profit_precentage': 0.65,
    'loss_precentage': 0.35,
    'even_precentage': 0.0,
    'average_profit': 14809.09,
    'average_loss': -7500.0,
    'average_pnl': 1.97,
    'max_profit': 38300.0,
    'max_loss': -20000.0,
    'max_pnl': 1.92,
    'netprofio_maxloss_ratio': 5.9,
    'continue_profit_amount': 3,
    'continue_loss_amount': 2,
    'average_holdgap': '18 days 18:21:10.588235294',
    'average_profitholdgap': '19 days 00:00:00',
    'average_losssholdgap': '18 days 08:00:00'
}
 
Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐