enable_proFile(func_list)
释义:
enable_profile是性能分析函数,获取策略中各个函数的运行时间
参数:
参数 | 含义 | 详细内容 |
func_list | 所需分析函数的名称 | 一般根据实际需求填写需要分析的函数名,不填默认分析所有函数 |
1.该函数定义在函数之外,不需要依靠函数.
2.该函数在日志的最后部分显示.
3.func_lisr参数如果不填写,则默认为分析所有函数.
示例:
#将初始双均线策略进行函数性能分析.
#初始化账户
def init(context):
#设置要交易的证券(600519.SH 贵州茅台)
context.security = '600519.SH'
#设置买卖条件,每个交易频率(日/分钟/tick)调用一次
def handle_bar(context,bar_dict):
#获取证券过去20日的收盘价数据
close = history(context.security, ['close'], 20, '1d')
#计算五日均线价格
MA5 = close.values[-5:].mean()
#计算二十日均线价格
MA20 = close.values.mean()
#如果五日均线大于二十日均线
if MA5 > MA20:
#使用所有现金买入证券
order_target_percent(context.security,1)
#如果五日均线小于二十日均线,并且目前有头寸
if MA5 < MA20:
#卖出所有证券
order_target(context.security,0)
#整个策略的函数性能分析
enable_profile()
注:性能分析函数定义在函数之外,只需要最后输入enable_profile(),这行代码即可.
示例返回结果:
Timer unit: 1e-06 s
Total time: 1e-06 s
File: backtest_code.py
Function: initialize at line 2
Line # Hits Time Per Hit % Time Line Contents
==============================================================
2 def init(context):
3 #设置要交易的证券(600519.SH 贵州茅台)
4 1 1 1.0 100.0 context.security = '600519.SH'
Total time: 0.02361 s
File: backtest_code.py
Function: handle_bar at line 6
Line # Hits Time Per Hit % Time Line Contents
==============================================================
6 def handle_bar(context,bar_dict):
7 #获取证券过去20日的收盘价数据
8 1 17895 17895.0 75.8 close = history(context.security, ['close'], 20, '1d')
9 #计算五日均线价格
10 1 68 68.0 0.3 MA5 = close.values[-5:].mean()
11 #计算二十日均线价格
12 1 49 49.0 0.2 MA20 = close.values.mean()
13 #如果五日均线大于二十日均线
14 1 1 1.0 0.0 if MA5 > MA20:
15 #使用所有现金买入证券
16 1 5596 5596.0 23.7 order_target_percent(context.security,1)
17 #如果五日均线小于二十日均线,并且目前有头寸
18 1 1 1.0 0.0 if MA5 < MA20:
19 #卖出所有证券
20 order_target(context.security,0)
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved