订阅问题

现在的问题我描述一下,目前我订阅是在ONINIT里面订阅10个期权合约,OnReady里面去取数据,然后ReStart再返回到oninit里面做一个判断,退订10个合约,然后再判断应该定哪一个合约,然后每天晚上开盘之前登录账户的时候ReStart重启工作区。因为晚上是同时重启工作区的情况下,200个订阅是不太够的,但是真实的情况下我不需要晚上重启那一瞬间的订阅量。现在有几个问题, 第一,在OnAccountStatus(AccountStatusRef antStatus) 这个域能否设置分时间段重启(以代码的方式),比如20.45-20.48为一个时间段,20.48-20.50为一个时间段,以此类推。 第二,OnAccountStatus(AccountStatusRef antStatus) 这个域能否区别日盘和夜盘。 第三,如果上面两种都没法,那有没有更好的方式能减少那一瞬间的订阅量。

”然后再判断应该定哪一个合约“,需要什么数据来判断选哪个合约呢,必须要用到价格数据吗,从这个维度是不是缩减一下订阅。

回复:肯定是以期权价格为第一判断标准的。但是最开始订阅10个期权这里是没法缩减的。

直接买订阅 简单粗暴

回复:这个只是最后的办法

回复:好像实盘积分直接兑换?

回复:看一下最下面这样分交易所重启可以吗,但是我昨晚看又是同时重启的,但是他又没报超过200的权限错误

回复:按理说没问题啊写文件看看执行流程调试一下

回复:定时器那里写错了,应该是这样写CreateTimer(0,SystemDateTime+60*1000*5, 1);因为只触发一次。

学习了

回复:1 自己代码控制啊 登录的时候 启动定时器 根据你设置的时间切片(比如45分重启,集合竞价是到49分 可以切2个 定时间间隔一个是60*1000 ,一个是60*1000*2)2 可以 用TrueDate(0)对比 可以区别日盘还是夜盘

回复:1 自己代码控制啊 登录的时候 启动定时器 根据你设置的时间切片(比如48分重启,集合竞价是到59分 可以切2个 定时间间隔一个是立即,一个是60*1000*5)2 可以 用TrueDate(0)对比 可以区别日盘还是夜盘

回复:这个域里面能用TrueDate(0)判断是日盘品种还是夜盘品种吗?日盘的话,我就写成早上8.45左右启动,夜盘还是写成晚上20.45左右启动,这样是否可行?

回复:那就重启的时候,判断系统时间,>18:30 & <20:59就是夜盘

回复:OnAccountStatus(AccountStatusRef antStatus) ////////////每天收盘且没有持仓重启工作区////////////////// { If(antStatus.status == "Logined" &&SystemDateTime > CurrentDate + 0.2045 &&SystemDateTime < CurrentDate + 0.2054 ) { id1 = CreateTimer(1, 0, 1); } }OnTimer(Integer id,Integer millsecs){ If(id1>0) { if(str1[1]=="SHFE") { id2= CreateTimer(60*1000, 0, 1); } Else IF(str1[1]=="DCE") { id2= CreateTimer(60*1000*2, 0, 1); } Else IF(str1[1]=="CZCE") { id2= CreateTimer(60*1000*3, 0, 1); } Else IF(str1[1]=="CFFEX") { id2= CreateTimer(60*1000*4, 0, 1); } Else IF(str1[1]=="INE") { id2= CreateTimer(60*1000*5, 0, 1); } } If(id2>0) { StopTimer(id1); StopTimer(id2); ReStart(False); }}

回复:您看一下这样是否能重启,且同时减少同时间订阅量呢