
Amigos que desenvolvem na Plataforma de Negociação Quantitativa do Inventor podem frequentemente ter as seguintes necessidades:
Ao desenvolver uma estratégia para aluguel, você deseja definir diferentes restrições de fundos para a estratégia, definir diferentes restrições de câmbio para o aluguel da estratégia (limitar a troca da operação da estratégia) ou deseja definir restrições na configuração da conta de câmbio para o aluguel da estratégia (especifique Esta estratégia só pode ser usada com contas que foram acordadas previamente. Quando o usuário da estratégia usa outras contas, a estratégia solicita e não realiza mais transações, etc.).
Obviamente, elas não podem ser codificadas no código, porque se elas forem codificadas no código. Todos os usuários estarão sujeitos a essas restrições e não será possível controlar diferentes permissões de uso para diferentes grupos de usuários.
Com base nos cenários de demanda acima, a Plataforma de Negociação Quantitativa Inventor expandiu novas funções:Configurações de metadados do código de registro de aluguel de política
Ao criar um código de registro, você pode especificar um metadadoMeta, data é uma string. Observação: ao gerar um código de registro, o comprimento do Meta não pode exceder 190 caracteres.
Por exemplo, sou um desenvolvedor de estratégias. Desenvolvi uma estratégia para o par de negociação à vista BTC_USDT. A estratégia é longa apenas (inicialmente apenas a moeda de cotaçãoQuoteCurrencyOu seja, USDT. Depois de comprá-lo, você terá uma moeda de negociação.BaseCurrencyQuero alugar esta estratégia, o nome da estratégia étest1。
Pode-se observar que o desenho das limitações da estratégia precisa ser projetado especificamente em combinação com as circunstâncias específicas da estratégia. Este exemplo é uma demonstração de uma estratégia spot. E se a estratégia for uma estratégia de futuros? Então é necessário limitar as informações de posição futura (com base nos dados de posição retornados por GetPosition). Quando a estratégia descobre que a posição excede o limite, a lógica de abertura de ordens não será mais executada (outras lógicas precisam ser executadas normalmente, como o fechamento de posições).
Portanto, esses designs precisam ser específicos em combinação com a estratégia em si. Este exemplo é apenas um exemplo ilustrativo simples e pode não ter valor prático.
Código fonte da estratégia:
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(), "持仓超过注册码的使用限定,不再执行策略交易逻辑!")
continue
}
// 其它交易逻辑
// 正常输出状态栏信息
LogStatus(_D(), "策略正常运行!ticker数据:\n", ticker)
}
}
Ao criar um código de registro, encontre a política test1 na biblioteca de políticas e clique emItem de ação, cliquevender。

CliqueVenda interna。

Clique na “pequena chave inglesa” para definir os metadados do código de registro.

Em seguida, escreva as informações que você deseja limitar emMetaOs controles, como as diversas estratégias projetadas neste exemplo, usam níveis:

Primeiro definimos o controle Metalevel1, para que o código de registro criado tenha a estratégia test1level1nota.
O código de registro foi criado:
购买地址: https://www.fmz.com/m/s/282900
注册码: 7af0c24404b268812c97b55d073c1867
O locador da estratégia envia este código de registro ao locatário da estratégia.
Por exemplo, neste momento eu uso este código de registro na minha outra conta (locatário da estratégia) para obter o direito de usar a estratégia test1.

Locatário de estratégia, crie uma conta real, use test1 como estratégia, adicione um objeto de troca à vista WexApp (WexApp é uma conta simulada na plataforma FMZ) e execute a conta real.

Você pode ver que a estratégia está funcionando normalmente, indicandolevel1O nível não limita o número de posições mantidas (o número de moedas mantidas na conta à vista).
Quando o código de registro da política for usado, se o desenvolvedor da política precisar ajustar os metadados do código de registro emitido, ele poderá ser modificado.
Na biblioteca de estratégias, venda o registro.

Os metadados podem ser modificados.

Modificamos o código de registro anterior Meta dados paralevel3, então o usuário da estratégia reinicia o teste em tempo real.

Como você pode ver na imagem acima,level3O limite máximo de nível para segurar é 1 moeda.
Ao alugar apólices de acordo com diferentes grupos de usuários e níveis de pagamento, metadados Meta específicos são configurados para obter controle hierárquico de apólices.
É claro que o acima lista apenas os requisitos de limitação e controle mais comuns. Há vários requisitos semelhantes que podem ser atendidos usando esta função.