开拓者期货期权程序化系统交易论坛

标题: 请假一下,当软件重启之前,如何将全局变量写入数据库保存并在下次启动时加载 [打印本页]

作者: yeb55tb    时间: 2019-1-30 10:45:49     标题: 请假一下,当软件重启之前,如何将全局变量写入数据库保存并在下次启动时加载


请假一下,当软件重启之前,如何将全局变量写入数据库保存并在下次启动时加载

假设我有 2个全局变量

SetGlobalVar2(“flag1”,1);
SetGlobalVar2(“flag2”,0);

如何表达,才能在下一次加载时,取到上一次退出时保存的数值???



作者: 小米    时间: 2019-1-30 11:02:26

全局变量只在当前图表的当前策略有效。重启时没法保存原来的值 。。
你可以使用读写数据库函数,这样才有可能重启时取到之前 存放的值 。
作者: yeb55tb    时间: 2019-1-30 16:39:34

可否直接给个代码呀,才接触tb,不慎熟悉
作者: 小米    时间: 2019-1-30 17:04:05

yeb55tb 发表于 2019-1-30 16:39
可否直接给个代码呀,才接触tb,不慎熟悉

或者您先说一下,是什么样的需求要使用到全局变量呢?
有些需求,可能并不一定要使用局变量的呢。。
作者: yeb55tb    时间: 2019-1-30 19:13:04


vars
    numericseries flag;
begin
    ....
    if( flag!=1 && buycon)
    {
            buy;
            flag =1;
    }
    if( flag !=-1 && sellcon)
   {
            sellshort;
            flag =-1;
    }

我想把这个flag保存在数据库里面,当让姐重启的时候,直接读取flag的值

不知道该如何表达?
作者: alantop    时间: 2019-1-31 09:44:19

数据库的键设置为商品代码+时间周期
bigname = Symbol + "_" + Text(bartype)+ "_" + Text(BarInterval);
将值写入数据库
SetTBProfileString(bigname,"flag","1");
从数据库读取值
strValue = GetTBProfileString(bigname,"flag");
作者: 小米    时间: 2019-1-31 13:38:34

yeb55tb 发表于 2019-1-30 19:13
vars
    numericseries flag;
begin

完全不需要使用全局变量,这个flag是序列变量,本来就能记录的呀




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2