【中金固收·可转债】简易的转债策略测试框架——以及python实现方法 20190519( 六 )

# 如果get_loc能解决,就交给它吧

if date in obj.DB['Amt'].index:

i= obj.DB['Amt'].index.get_loc(date)

else:

# 如果解决不了,要先把index转化成datetime型,而非原本的字符型,这样get_loc就能万用了

fakeIndex = obj.DB['Amt'].index.map(str2dt)

i= fakeIndex.get_loc(str2dt(date),method='ffill')

return i

接下来是定义个券大致范围的defineCodes:一般要剔除因股改而退市的那些转债,有时候我们也希望剔除EB。投资者也可以设定其他的规则,这就需要用到一个python特性:函数可以作为参数传入另一个函数。这样的话,投资者可以自行编写一个函数,作为定义范围的方法。实现如下:

def defineCodes(obj,method='default'):

if method== 'default':

推荐阅读