GetMeta
获取在生成策略注册码时写入的Meta值。
GetMeta()示例
-
读取生成注册码时写入的Meta。
javascriptfunction main() { var meta = GetMeta() Log("Meta", meta) // 输出:Meta level1(生成注册码时写入的值;没有设置时为null) }pythondef main(): meta = GetMeta() Log("Meta", meta) # 输出:Meta level1(生成注册码时写入的值;没有设置时为null)rustfn main() { let meta = GetMeta(); Log!("Meta", meta); // 输出:Meta level1(生成注册码时写入的值;没有设置时为null) } -
应用场景范例:使用
Meta限制策略可操作的资产数量。javascriptfunction main() { // 策略允许的计价币最大资产数值 var maxBaseCurrency = null // 获取创建注册码时的元数据 var level = GetMeta() // 检测Meta对应的条件 if (level == "level1") { // -1为不限制 maxBaseCurrency = -1 } else if (level == "level2") { maxBaseCurrency = 10 } else if (level == "level3") { maxBaseCurrency = 1 } else { maxBaseCurrency = 0.5 } while(1) { Sleep(1000) var ticker = exchange.GetTicker() // 检测资产数值 var acc = exchange.GetAccount() if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) { // 停止执行策略交易逻辑 LogStatus(_D(), "level:", level, "Position exceeds registration code limit, strategy trading logic will not execute!") continue } // 其它交易逻辑 // 正常输出状态栏信息 LogStatus(_D(), "level:", level, "Strategy running normally! ticker data:\n", ticker) } }pythondef main(): maxBaseCurrency = None level = GetMeta() if level == "level1": maxBaseCurrency = -1 elif level == "level2": maxBaseCurrency = 10 elif level == "level3": maxBaseCurrency = 1 else: maxBaseCurrency = 0.5 while True: Sleep(1000) ticker = exchange.GetTicker() acc = exchange.GetAccount() if maxBaseCurrency != -1 and maxBaseCurrency < acc["Stocks"] + acc["FrozenStocks"]: LogStatus(_D(), "level:", level, "Position exceeds registration code limit, strategy trading logic will not execute!") continue # 其它交易逻辑 # 正常输出状态栏信息 LogStatus(_D(), "level:", level, "Strategy running normally! ticker data:\n", ticker)rustfn main() { // 策略允许的计价币最大资产数值 let maxBaseCurrency; // 获取创建注册码时的元数据,Rust 的 GetMeta() 返回 JsonValue 类型 let meta = GetMeta(); let level = meta.as_str().unwrap_or(""); // 检测Meta对应的条件 if level == "level1" { // -1为不限制 maxBaseCurrency = -1.0; } else if level == "level2" { maxBaseCurrency = 10.0; } else if level == "level3" { maxBaseCurrency = 1.0; } else { maxBaseCurrency = 0.5; } loop { Sleep(1000); let ticker = exchange.GetTicker(None).unwrap(); // 检测资产数值 let acc = exchange.GetAccount().unwrap(); if maxBaseCurrency != -1.0 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks { // 停止执行策略交易逻辑 LogStatus!(_D(None), "level:", level, "Position exceeds registration code limit, strategy trading logic will not execute!"); continue; } // 其它交易逻辑 // 正常输出状态栏信息 LogStatus!(_D(None), "level:", level, "Strategy running normally! ticker data:\n", ticker); } }
返回值
| 类型 | 描述 |
string |
|
参考
备注
应用场景:需要对不同的策略租用者进行资金限制。生成注册码时设置的Meta值长度不能超过190个字符。GetMeta()函数仅支持实盘,在回测系统中不起作用。如果生成策略注册码时未设置元数据(Meta),GetMeta()函数将返回空值。