关于Onstart登录代码的一个修正
目前的新建策略和各个默认策略模板的OnStart中的初始登录代码是这样的
#开始时间,用于初始化一些参数
def OnStart(context) :
print("I\'m starting...")
#登录交易账号,需在主页用户管理中设置账号,并把期货测试替换成您的账户名称
context.myacc = None
if "回测期货" in context.accounts :
print("登录交易账号[回测期货]")
if context.accounts["回测期货"].Login() :
context.myacc = context.accounts["回测期货"]
这样在回测时没有问题
但是很多人在把回测代码迁移到模拟或者实盘上就会出现各种报错
会提示context.myacc是None导致策略崩溃
这里是因为这份代码中的
if context.accounts["回测期货"].Login() :
这个条件导致的,回测中不会存在账号登录失败的问题,而模拟实盘可能因为各种原因(账号密码错误/柜台关闭)等原因登录失败,导致没有执行
context.myacc = context.accounts["回测期货"]
这一句,导致的问题
建议修改成
#开始时间,用于初始化一些参数
def OnStart(context) :
print("I\'m starting...")
#登录交易账号,需在主页用户管理中设置账号,并把期货测试替换成您的账户名称
context.myacc = None
if "回测期货" in context.accounts :
context.myacc = context.accounts["回测期货"]
print("登录交易账号[回测期货]")
context.accounts["回测期货"].Login()
else:
print("该账号未配置")
回复 0:
按时间排序
您尚未登录,请 登录 真格量化发表回复