Como atribuir dados de versões diferentes a uma estratégia alugada por meio de metadados de código de aluguel de estratégia

Autora:Lydia., Criado: 2022-11-09 10:34:37, Atualizado: 2023-09-20 10:59:17

img

Aplicação dos metadados do código de aluguer da estratégia

Os parceiros que trabalham como desenvolvedores na Plataforma de Negociação Quant FMZ podem muitas vezes ter necessidades como:

Ao desenvolver uma estratégia para aluguer, pode ser desejável ter restrições de capital diferentes para a estratégia e restrições de câmbio diferentes para o contrato de arrendamento da estratégia (a bolsa que restringe a operação da estratégia) ou restrições para a configuração da conta de câmbio quando quiser alugar a estratégia (especifique que esta estratégia só pode operar a conta acordada antecipadamente e que o utilizador da estratégia não fará nenhuma negociação quando utilizar outras contas).

Estes, obviamente, não podem ser escritos no código, porque se forem escritos no código, todos os utilizadores estariam sujeitos a estas condições, e não seria possível fazer controles para diferentes grupos de utilizadores com diferentes direitos de utilização.

Com base no cenário de demanda acima, a plataforma de negociação de quantidade FMZ é ampliada com uma nova função: configuração de metadados de código de registro de aluguel de estratégia

Ao criar um código de registro, você pode especificar um metadadosMetaAtenção: O comprimento do meta não pode exceder 190 caracteres ao gerar o código de registo.

· Limitar a estratégia utilizando metadados do código de registo da FMZ

Por exemplo, se eu sou uma estratégia desenvolver hotshot e eu desenvolvi um par de negociação spot para BTC_USDT, e ele vai longo apenas (há apenas a moeda de preçosQuoteCurrencyinicialmente, ou seja, USDT; após a compra, há moeda de negociaçãoBaseCurrencyEu quero alugar esta estratégia, que é nomeado comotest1.

Pode-se ver que o design limitado da estratégia precisa ser projetado de acordo com a situação específica da estratégia. O exemplo é uma demonstração da 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 de futuros (de acordo com os dados de posição retornados pelo GetPosition). Quando a estratégia descobre que a posição excede o limite, ela não executará a lógica de abrir a posição (outra lógica precisa ser executada normalmente, como fechar a posição).

Por conseguinte, estes projetos precisam ser específicos para a própria estratégia.

Código fonte da estratégia:

function main() {
    // The maximum asset value of the denominated currency allowed by the strategy
    var maxBaseCurrency = null
    
    //Obtain the metadata when creating the registration code
    var level = GetMeta()
    
    // Detecting the conditions corresponding to Meta
    if (level == "level1") {
        // -1 is not limited
        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()
        
        // Detect asset values
        var acc = exchange.GetAccount()
        if (maxBaseCurrency != -1 && maxBaseCurrency < acc.Stocks + acc.FrozenStocks) {
            // Stop executing strategic trading logic
            LogStatus(_D(), "Positions exceeding the usage limit of the registration code will no longer execute the strategy trading logic!")
            continue
        }
        
        // Other trading logic
        
        // Output the status bar information normally
        LogStatus(_D(), "The strategy is running properly! ticker data:\n", ticker)
    }
}

Ao criar um código de registo, procure o teste de estratégia1 na biblioteca de estratégias, clique no elemento de acção à direita, clique em Rent,

img

e, em seguida, clique em Venda interna.

img

Clique em Little Wrench para definir os metadados do código de registo.

img

Em seguida, escreva as informações a serem qualificadas no controle Meta, como vários níveis de uso de estratégia projetados neste exemplo:

· nível 1: não há limite ao número de posições. · nível2: Limitar o número máximo de posições a 10 moedas. · nível3: Limitar o número máximo de posições a 1 moeda. · Nenhuma configuração Meta: quando não há configuração Meta, o limite máximo de posição por defeito é de 0,5 moedas.

img

Primeiro, definimoslevel1para o controle Meta, de modo que o código de registro criado tem olevel1nível da estratégia de ensaio1. Código de registo criado:

Purchase address: https://www.fmz.com/m/s/282900
Registration code: 7af0c24404b268812c97b55d073c1867

O arrendador da estratégia envia o código de registo ao locatário da estratégia.

· A estratégia de utilização para os inquilinos de estratégia

Strategy Renter criar um bot real, usar estratégia test1, adicionar um objeto WexApp Spot Exchange (WexApp é uma demonstração da plataforma FMZ), executá-lo.

· Modificar os metadados

Quando o código de registo da estratégia tiver sido utilizado, pode também ser modificado se o desenvolvedor da estratégia precisar ajustar os dados meta do código de registo emitido.

Os metadados podem ser modificados na Biblioteca de Estratégias, Registro de Vendas.

Nós mudamos os dados Meta do código de registro anterior paralevel3,

img

Em seguida, o utilizador da estratégia reiniciou o teste.

· Resumo

Quando as estratégias de leasing se baseiam em diferentes grupos de utilizadores e níveis de pagamento diferentes, os metadados são configurados especificamente para obter um controlo hierárquico da estratégia.

Naturalmente, o acima apenas lista os requisitos de limitação e controle mais comuns.


Mais.