资源加载中... loading...

_G

持久化保存数据,该函数实现了一个可保存的全局字典功能。数据结构为KV表,永久保存在托管者本地数据库文件。

持久化保存的k-v键值对中的键值数据。 string、number、bool、object、array、空值

_G() _G(k) _G(k, v)

参数k为保存的键值对中的键名,不区分大小写。 k false string、空值 参数v为保存的键值对中的键值,可以是任何可以JSON序列化的数据。 v false string、number、bool、object、array、空值

// 不使用接口获取数据的测试,就无需使用exchange.IO("status")函数判断连接状态,也不用设置合约代码,因为这里仅仅是测试
function main(){                
    // 设置一个全局变量num,值为1
    _G("num", 1)     
    // 更改一个全局变量num,值为字符串ok
    _G("num", "ok")    
    // 删除全局变量num
    _G("num", null)
    // 返回全局变量num的值
    Log(_G("num"))
    // 删除所有全局变量
    _G(null)
    // 返回实盘ID
    var robotId = _G()
}
def main():
    _G("num", 1)     
    _G("num", "ok")    
    _G("num", None)
    Log(_G("num"))
    _G(None)
    robotId = _G()
void main() {
    _G("num", 1);
    _G("num", "ok");
    _G("num", NULL);
    Log(_G("num"));
    _G(NULL);
    // 不支持 auto robotId = _G();
}

每个实盘单独一个数据库,策略重启或者托管者停止运行,_G()函数保存的数据会一直存在。 如果是回测结束后,_G()函数在回测系统中保存的数据会被清除。 使用_G()函数持久化保存数据时,应当根据硬件设备的内存、硬盘空间合理使用,不可滥用。 在实盘运行中当调用_G()函数并且不传任何参数时,_G()函数返回当前实盘的Id。 调用_G()函数时,参数v传入空值表示删除该k-v键值对。 调用_G()函数时,仅参数k传入字符串,_G()函数返回保存的参数k对应的键值。 调用_G()函数时,仅参数k传入空值,表示删除所有记录的k-v键值对。 当k-v键值对已经持久化保存,再次调用_G()函数,传入已经持久化保存的键名作为参数k, 传入新的键值作为参数v,会更新该k-v键值对。

{@fun/Global/DBExec DBExec}

__Serve _D