我在序列模式下,自定义了一个函数,VBS里面只有一个MSGbox,结果发现会不停的弹出来。即使周期是日周期。
序列模式不是只计算一遍的吗?为什么会不停的弹出来?
有无办法不去重新刷数据?
因为我要去连数据库,通过VBA调用数据库来实现一个非行情交易类的选股策略。
通过金字塔来实现,是因为可以省调界面展示开发和利用选股模块。
断掉行情的确可以解决刷新问题,但我切换代码时,技术分析页就没有行情走势了,无法印证我的非行情类指标的有效性。
我还有另一个策略,是需要行情来配合,又需要连数据库的,但不想通过PEL来实现数据库调用。(未购买专业版是一个原因,但不是全部。我未来一定会购买的,我现在每天的交易佣金就数千元,佣金费率还是按机构来算的。目前还是处于练兵阶段,等我做足准备,就会按正常的程序化交易来进行。)
你可以考虑在VBS外部建立一个全局变量做标记
DIM g_Fign
g_Fign = 0
Function YourTest ....
If g_Fign = 1 Then
Exit Function
End if
g_Fign = 1
End Function
运行一遍后做了标记后,下次刷新就直接从函数中退出了
有道理,非常感谢!
在测试公式当中,发现一个问题,用PLSQL取数据,只要3秒钟就能取出来,也就十条记录。然后用VBS连SQL取数据,同样取到这十条记录,并根据K线日期去匹配这十条记录,然后分别赋值给日期匹配的K线。
整个过程要1分钟之多。
理论上最耗时的是访问数据库,但被证明是时间只要3秒,为何整个过程会这么耗时?匹配记录也只是简单的日期匹配而已。
金字塔用的是ADO,数据库的连接和读取花的时间都要比你直接在数据库操作更加耗时的
这个有无办法缩短时间?例如我想用一台机器去读行情,生成中间数据,写入第二台机器本地数据库,第二台机器再从中间数据库中取数据,判断后进行下单操作。