[Fix] 非当前目录下的strategyXxx.py不会被载入
This commit is contained in:
parent
7ece16c914
commit
4c39d4003e
@ -12,6 +12,7 @@ import traceback
|
|||||||
# 用来保存策略类的字典
|
# 用来保存策略类的字典
|
||||||
STRATEGY_CLASS = {}
|
STRATEGY_CLASS = {}
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
def loadStrategyModule(moduleName):
|
def loadStrategyModule(moduleName):
|
||||||
"""使用importlib动态载入模块"""
|
"""使用importlib动态载入模块"""
|
||||||
@ -34,7 +35,7 @@ path = os.path.abspath(os.path.dirname(__file__))
|
|||||||
for root, subdirs, files in os.walk(path):
|
for root, subdirs, files in os.walk(path):
|
||||||
for name in files:
|
for name in files:
|
||||||
# 只有文件名中包含strategy且以.py结尾的文件,才是策略文件
|
# 只有文件名中包含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', '')
|
moduleName = 'vnpy.trader.app.ctaStrategy.strategy.' + name.replace('.py', '')
|
||||||
loadStrategyModule(moduleName)
|
loadStrategyModule(moduleName)
|
||||||
@ -45,7 +46,7 @@ workingPath = os.getcwd()
|
|||||||
for root, subdirs, files in os.walk(workingPath):
|
for root, subdirs, files in os.walk(workingPath):
|
||||||
for name in files:
|
for name in files:
|
||||||
# 只有文件名中包含strategy且以.py结尾的文件,才是策略文件
|
# 只有文件名中包含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', '')
|
moduleName = name.replace('.py', '')
|
||||||
loadStrategyModule(moduleName)
|
loadStrategyModule(moduleName)
|
||||||
|
Loading…
Reference in New Issue
Block a user