GetMeta

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

Meta数据。 string

GetMeta()

”`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
}

// 鉴于测试代码,不使用商品期货策略一般架构,这里仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
while(!exchange.IO("status")) {
    Sleep(1000)
}

exchange.SetContractType("rb888")

while(true) {
    Sleep(1000)
    var ticker = exchange.GetTicker()

    // 检测资产数值
    var acc = exchange.GetAccount()
    if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Balance + acc.FrozenBalance) {
        // 停止执行策略交易逻辑
        LogStatus(_D(), "level:", level, "持仓超过注册码的使用限制,不再执行策略交易逻辑!")
        continue
    }

    // 其它交易逻辑

    // 正常输出状态栏信息
    LogStatus(_D(), "level:", level, "策略正常运行!ticker数据:\n", ticker)
}

} python def main(): maxBaseCurrency = null level = GetMeta()

if level == "level1":
    maxBaseCurrency = -1
elif level == "level2":
    maxBaseCurrency = 10
elif level == "level3":
    maxBaseCurrency = 1
else:
    maxBaseCurrency = 0.5

while not exchange.IO("status"):
    Sleep(1000)

exchange.SetContractType("rb888")

while True:
    Sleep(1000)
    ticker = exchange.GetTicker()
    acc = exchange.GetAccount()
    if maxBaseCurrency != -1 and maxBaseCurrency < acc["Balance"] + acc["FrozenBalance"]:
        LogStatus(_D(), "level:", level, "持仓超过注册码的使用限制,不再执行策略交易逻辑!")
        continue

    # 其它交易逻辑

    # 正常输出状态栏信息
    LogStatus(_D(), "level:", level, "策略正常运行!ticker数据:\n", ticker)```

”`cpp void main() { auto maxBaseCurrency = 0.0; auto level = GetMeta();

if (level == "level1") {
    maxBaseCurrency = -1;
} else if (level == "level2") {
    maxBaseCurrency = 10;
} else if (level == "level3") {
    maxBaseCurrency = 1;
} else {
    maxBaseCurrency = 0.5;
}

while(exchange.IO("status") == 0) {
    Sleep(1000);
}

exchange.SetContractType("rb888");

while(true) {
    Sleep(1000);
    auto ticker = exchange.GetTicker();
    auto acc = exchange.GetAccount();
    if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Balance + acc.FrozenBalance) {
        // 停止执行策略交易逻辑
        LogStatus(_D(), "level:", level, "持仓超过注册码的使用限制,不再执行策略交易逻辑!");
        continue;
    }

    // 其它交易逻辑

    // 正常输出状态栏信息
    LogStatus(_D(), "level:", level, "策略正常运行!ticker数据:\n", ticker);
}

} 应用场景示例:使用Meta”`限制策略可操作的资产数量。

应用场景:对不同的策略租用者进行资金限制。生成注册码时设置的Meta值长度不能超过190个字符,GetMeta()函数仅支持实盘。

如果生成策略注册码时未设置元数据(Meta),GetMeta()函数将返回空值。 在回测系统中不生效。