输入/搜索内容
内置函数
Global
Version
IsVirtual
GetOS
GetPid
GetMeta
Sleep
Unix
UnixNano
_D
GetCommand
GetLastError
SetErrorFilter
_N
_C
_Cross
JSON.parse
JSON.stringify
Encode
MD5
UUID
Log
Market
Trade
Account
Futures
Exchange
IO
Network
Storage
Threads
TA
Talib
OS
结构体
内置变量与常量
通用约定
交易所

获取在生成策略注册码时写入的Meta值。

GetMeta()

示例

  • 读取生成注册码时写入的Meta。

    javascript
    function main() { var meta = GetMeta() Log("Meta", meta) // 输出:Meta level1(生成注册码时写入的值;没有设置时为null) }
    python
    def main(): meta = GetMeta() Log("Meta", meta) # 输出:Meta level1(生成注册码时写入的值;没有设置时为null)
    rust
    fn main() { let meta = GetMeta(); Log!("Meta", meta); // 输出:Meta level1(生成注册码时写入的值;没有设置时为null) }
  • 应用场景范例:使用Meta限制策略可操作的资产数量。

    javascript
    function 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) } }
    python
    def 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)
    rust
    fn 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数据。

参考

备注

应用场景:需要对不同的策略租用者进行资金限制。生成注册码时设置的Meta值长度不能超过190个字符。GetMeta()函数仅支持实盘,在回测系统中不起作用。如果生成策略注册码时未设置元数据(Meta),GetMeta()函数将返回空值。