我有几个期货程序化策略,每个策略就是一个函数,其参数各不相同。我另外有一个回测的函数,以策略函数为参数,返回该策略的历史回测结果。要实现这个目的,我就需要以函数作为参数进行调用。
调用函数:func_main(fun, **kwargs)
被调用函数:可以是func(**kwargs)这种形式,也可以是普通的函数定义形式。
例如:

或者:

你还可以自定义一些fun_main其它的参数,如下面所示:

但是fun_main的参数名不可以和被调用函数的参数同名。原因很简单:如果上面的mypara改为k1,那么fun_main(k1 = 3, fun = fun2, k1 = 1, k2 = 2)这样的调用方式显然是不对的。
我最终的回测函数代码如下:
