[Fix] 非当前目录下的strategyXxx.py不会被载入

This commit is contained in:
nanoric 2018-10-31 00:01:38 -04:00
parent 7ece16c914
commit 4c39d4003e

View File

@ -12,6 +12,7 @@ import traceback
# 用来保存策略类的字典
STRATEGY_CLASS = {}
#----------------------------------------------------------------------
def loadStrategyModule(moduleName):
"""使用importlib动态载入模块"""
@ -34,7 +35,7 @@ path = os.path.abspath(os.path.dirname(__file__))
for root, subdirs, files in os.walk(path):
for name in files:
# 只有文件名中包含strategy且以.py结尾的文件才是策略文件
if 'strategy' in name and name[-3:] == '.py':
if 'strategy' in name and name[-3:] == '.py' and '/' not in name and '\\' not in name:
# 模块名称需要模块路径前缀
moduleName = 'vnpy.trader.app.ctaStrategy.strategy.' + name.replace('.py', '')
loadStrategyModule(moduleName)
@ -45,7 +46,7 @@ workingPath = os.getcwd()
for root, subdirs, files in os.walk(workingPath):
for name in files:
# 只有文件名中包含strategy且以.py结尾的文件才是策略文件
if 'strategy' in name and name[-3:] == '.py':
if 'strategy' in name and name[-3:] == '.py' and '/' not in name and '\\' not in name:
# 模块名称无需前缀
moduleName = name.replace('.py', '')
loadStrategyModule(moduleName)