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 metadadosMeta
Atenção: O comprimento do meta não pode exceder 190 caracteres ao gerar o código de registo.
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çosQuoteCurrency
inicialmente, ou seja, USDT; após a compra, há moeda de negociaçãoBaseCurrency
Eu 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
e, em seguida, clique em
Clique em
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.
Primeiro, definimoslevel1
para o controle Meta, de modo que o código de registro criado tem olevel1
ní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.
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.
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
,
Em seguida, o utilizador da estratégia reiniciou o teste.
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.