Com o desenvolvimento da negociação quantitativa de ativos blockchain, mais e mais comerciantes de ativos blockchain reconheceram a ferramenta da negociação quantitativa. Mas como um iniciante neste círculo, ele ou ela pode estar muito confuso sobre muitos conceitos, e confuso por vários termos, software, informações, etc. Este artigo irá levá-lo a entender e familiarizar-se com conceitos comuns, e aprender sobre várias informações úteis na transação quantitativa de ativos blockchain de vários aspectos. Este artigo irá resumir primeiro os conceitos básicos e, em seguida, dar exemplos na plataforma de negociação quântica FMZ correspondentes a esses conceitos básicos.
Primeiro de tudo, precisamos entender o conceito de exchanges. Precisamos negociar os ativos blockchain para especulação, investimento, etc. Cada um deles precisa ser feito em uma exchange. Existem muitas exchanges atualmente: seniores, emergentes, grandes e pequenas. Quanto a qual exchange realizar negociação programática e quantitativa, é necessário filtrar as informações por si mesmo com base em várias informações.
Conta de câmbio Conta de troca, é uma conta registrada e aberta nesta troca.SubcontasA criação, o mecanismo e o uso de aplicativos de sub-conta para cada bolsa são diferentes. Então você precisa verificar as informações especificamente no site da bolsa ou consultar o serviço ao cliente da bolsa.
Depois de entrar com uma conta no site da bolsa, geralmente você pode ver que o lugar onde os ativos blockchain podem ser armazenados é dividido em várias
Interface API para o sistema de troca
Muitos utilizadores que não usaram esta função de troca podem perguntar: REST
interface de protocolo eWebSocket
Interface de protocolo. Poucas trocas também fornecem oFIX
Estas são apenas para compreensão, principalmente usamos oREST
Estes documentos de interface podem geralmente ser encontrados no link com a palavraAPINo fundo do site oficial da bolsa. Às vezes é necessário verificar esses documentos para algumas informações de erro de interface. Os sistemas de API de cada bolsa são bastante diferentes, então você precisa verificar a documentação para questões específicas. Se você não é um desenvolvedor de estratégia, estes são apenas para compreensão.
Chave API da conta
A API KEY da conta deve ser compreendida cuidadosamente, porque está relacionada com a segurança dos ativos blockchain armazenados em sua troca.
O acima disse que a interface API é um canal, então a API KEY pode ser entendida como opassagemPor causa do canal de acesso, você não pode permitir o acesso a qualquer programa, o que é muito perigoso. Portanto, a verificação é necessária, e a API KEY é usada para verificar a identidade. Portanto, a API KEY está relacionada à segurança de seus ativos e deve ser mantida adequadamente.
Normalmente, a API KEY de uma troca é criada no canto superior direito da página de troca, na página de gerenciamento de contas (também pode haver uma troca colocada em outro lugar na página da web, encontre o link com a palavra-chave access key
, e a segunda cadeia é geralmente chamadasecret key
Existem também algumas bolsas cuja API KEY tem outras informações, por exemplo, as interfaces OKEX V5 e V3 têm umPassPhrase
, que também é uma cadeia (uma cadeia que precisa ser definida por si mesmo para fortalecer a verificação de segurança).
Ao configurar a API KEY, geralmente é necessário definir as permissões desta API KEY, geralmente, existem permissões como
Objetos de troca O conceito de objecto de troca é o conceito na plataforma de negociação quantitativa FMZ (FMZ.COMEm termos simples, refere-se a um objeto formado pela encapsulamento da interface de troca. Este objeto é a troca no código de estratégia FMZ, que chama a função exchange.GetTicker, na verdade, chama a interface para acessar os dados do mercado de câmbio. Ver a documentação da API da FMZ para mais pormenores:https://www.fmz.com/api#exchangeUma troca pode ter um setor de futuros e um setor de spot. Uma vez que o objeto de troca de futuros e o objeto de troca de spot definidos no FMZ são tipos diferentes de objetos de troca, eles são distinguidos (o objeto de troca de futuros tem várias funções a mais do que o objeto de troca de spot, como definir a função de alavancagem, consultar a função de posição etc., verifique a documentação para obter detalhes). Então, pegue a troca Binance por exemplo, você pode vê-lo ao configurar no FMZ:Há também 2 Huobi.
Se a estratégia é operar em objetos de troca de futuros, adicione futuros e, se você quiser operar spot, adicione spot.
Na plataforma FMZ, a troca é um objeto de troca, que representa uma conta de troca.https://www.fmz.com/api#exchanges
O mercado de negociação mencionado aqui refere-se a um bot de negociação específico (imagine uma página de negociação), geralmente a bolsa tem vários setores, comonegociação de divisas, negociação alavancada em moeda, negociação de contratos etc.
Pais de negociação
O que normalmente chamamos de "pares comerciais" é simplesmente o que compramos e vendemos, por exemplo, vamos ao mercado para comprar repolho.
ManchasNegociação de divisas, negociação alavancada em moeda, são classificados como negociação à vista.par de negociaçãoDescrever em que mercado é negociado.
Tomando o uso da plataforma de negociação Quant FMZ como exemplo, se você quiser fazer um par de negociação de BTC para USDT, a moeda de negociação é BTC, e a moeda denominada é USDT.
Usamos a função da plataforma FMZexchange.SetCurrency("BTC_USDT")
para mudar o par de negociação atual para:BTC_USDT
- Não.
ParaSetCurrency
Para quem não entende, veja:https://www.fmz.com/api#exchange.setcurrency..- Não.
Paraexchange
Para quem não entende, veja:https://www.fmz.com/api#exchange
Contratos (futures, opções)
A diferença entre negociação de contratos e negociação à vista é grande.currency-based contracts
eUSDT-based contracts
Para negociação programática e negociação quantitativa, é necessário determinar não apenas o par de negociação, mas também o contrato. Por exemplo, se quisermos negociar moeda BTC, então existem muitos contratos de moeda BTC, incluindo contratos trimestrais (entrega devida a cada trimestre), contratos semanais (entrega devida a sexta-feira de cada semana), contratos perpétuos (não entrega) e assim por diante. Se apenas um par de transações for usado para identificação, que tipo de contrato é feito?
Desta forma, quando descrevemos em que mercado de contrato negociar, precisamos descrever que moeda (pares de negociação) e que contrato (código de contrato) é.
Contratos baseados em moeda
Os contratos que usam moeda como margem (como os contratos baseados em moeda BTC, que usam BTC como margem, e o lucro também é BTC), o lucro é moeda. Normalmente, a moeda nominal do par de negociação do contrato com margem de moeda é expressa em USD (não há necessidade de entrar em detalhes, a maioria das bolsas usa essa expressão).BTC's currency-based quarterly contract
mercado.
Na plataforma de negociação FMZ Quant,exchange.SetCurrency("BTC_USD")
define o par de negociação, e depoisexchange.SetContractType("quarter")
O contrato trimestral é definido como o contrato trimestral, que estabelece o contrato trimestral.BTC's currency-based quarterly contract
.
Contrato baseado em USDT
Os contratos que usam USDT como margem (como os contratos baseados em USDT do BTCBTC's USDT-based perpetual contract
mercado.
Na plataforma de negociação FMZ Quant,exchange.SetCurrency("BTC_USDT")
define o par de negociação, e depoisexchange.SetContractType("swap")
Esta forma, a variedade de negociação atual éBTC's USDT-based perpetual contract
.
Ordens A que se refere especificamente a ordem? Uma ordem é a ordem que submetemos à bolsa quando compramos ou vendemos na bolsa. As ordens são divididas em ordens de mercado, ordens de limite, ordens condicionais, etc. Os atributos mais básicos de uma ordem são: o objeto da ordem (simplesmente, o que comprar ou vender), a quantidade da ordem (quanto comprar ou vender), e o preço da ordem (a que preço comprar ou vender). Se a ordem seguinte apenas determina a quantidade a comprar e vender e o que comprar ou vender, independentemente de quanto dinheiro é, então tal ordem é chamada de ordem de mercado.
Manchas A lista de preços de mercado de ordens ao instante geralmente precisa prestar atenção às ordens de compra. A quantidade de ordem da lista de preços de mercado de ordens ao instante não é o número de moedas, mas a quantidade. Como a ordem de mercado não determina o preço, apenas a quantidade pode ser usada para determinar quanto comprar. A quantidade da ordem de venda de mercado é o número de moedas, porque mesmo que o preço seja incerto, quantas moedas vender podem ser determinadas.
Contratos A quantidade de ordem de um contrato é especial, geralmente o número de contratos. A interface de ordem de contrato da bolsa é basicamente o número de contratos, e não há interface que tome o número de moedas como a quantidade de ordem. Os contratos perpétuos BTC baseados em USDT da Binance podem encomendar contratos perpétuos BTC em uma quantidade de 0,01, mas não é o número de moedas, é o número de contratos, e um contrato é exatamente um BTC. Em termos gerais, a quantidade de encomendas é o número de contratos, quer se trate de encomendas de mercado ou de encomendas limitadas.
O que é tomador, criador de ordem? Uma ordem de compra é uma ordem que fornece liquidez, simplesmente, significa que o preço de compra atual do mercado é 10 e o preço de venda é 11. Neste momento, eu coloco uma ordem de compra com um preço de compra de 9, ou uma ordem de venda com um preço de venda de 12, neste momento, eu forneci uma ordem para a profundidade do disco, e esta ordem é o fabricante.
Por exemplo, as funções de colocação de ordensexchange.Sell
eexchange.Buy
Quando uma ordem é colocada, se a ordem é classificada como um tomador ou um criador depende do preço da ordem e do mercado naquele momento, e se a nossa ordem fornece liquidez ou reduz liquidez.
Quando o preço é passado em -1 na plataforma de negociação FMZ Quant, é para colocar uma ordem de mercado, note que o valor da ordem da ordem de compra da ordem de mercado à vista é o valor, então a ordem de mercado é certamente uma redução da liquidez, e deve ser uma ordem de tomada.
Mandato de ordem condicional de troca
Muitas bolsas também suportam ordens condicionais, tais comoiceberg order
, stop-loss order
, take-profit order
, post_only: only maker order
, fok: complete the deal or cancel immediately
, ioc: deal immediately and cancel the remaining
, etc.
Estas ordens podem utilizar oexchange.IO
A função no FMZ Quant Trading Platform para aceder diretamente à interface de ordens de troca para especificar os parâmetros (especificar quais ordens condicionais para colocar) para colocar uma ordem.exchange.IO
Função, consulte a documentação da API FMZ:https://www.fmz.com/api#exchange.io…
Uma plataforma de negociação quantitativa pode ser considerada como uma ferramenta de negociação quantitativa, pode ser um sistema de software on-line, pode ser um site, pode ser um programa executável local, ou pode até ser um projeto de código aberto no GITHUB.
Plataforma de negociação quântica FMZ A FMZ Quant Trading Platform é um sistema distribuído on-line.https://www.fmz.com/bbs-topic/9090
Sistemas de backtesting para plataformas de negociação quantitativas O que é um sistema de backtesting? Simplificando, o sistema de backtesting é reproduzir os dados históricos de uma determinada variedade de negociação, e deixar uma determinada estratégia ser incluída na reprodução, e obter o desempenho comercial dessa estratégia ao simular a reprodução de dados históricos. Sistema de backtesting na plataforma de negociação quântica FMZ:
Nome | Tipo | Descrição |
---|---|---|
Bitfinex | Objetos de troca à vista | Suporte a pares de negociação limitados, tais como: BTC_USD, ETH_USD, LTC_USD, etc., observe que a moeda denominada no par de negociação é USD, que é denominada em USD |
Binance | Objetos de troca à vista | Suporte a pares de negociação limitados, tais como: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc. |
OKEX | Objetos de troca à vista | vcomo: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC etc. |
Huobi | Objetos de troca à vista | Suporte a pares de negociação limitados, tais como: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc. |
Futures do OKEX | Objetos de troca de futuros | Suporte para pares de negociação limitados, como: BTC_USD, ETH_USD etc, a moeda denominada do par de negociação é USD. Após definir o código do contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em moeda |
HuobiDM | Objetos de troca de futuros | HuobiDM é Huobi futuros (contratos Huobi), suportando pares de negociação limitados, tais como: BTC_USD,ETH_USD etc, a moeda de denominação do par de negociação é USD. Depois de definir o código de contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em moeda |
BitMEX | Objetos de troca de futuros | O par de negociação é: XBT_USD. Após definir o código do contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em moeda |
Futures da Binance | Objetos de troca de futuros | Suporte a pares de negociação limitados, tais como: BTC_USDT, ETH_USDT etc, a moeda denominada do par de negociação é USDT. Após definir o código do contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em USDT |
Opções de derivados | Objetos de troca de opções | O par de negociação é: BTC_USD, ETH_USD. Após definir o código do contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em moeda |
API KEY da plataforma de negociação quantitativa
A troca tem interfaces API, e a plataforma de negociação quantitativa também tem interfaces API.Extended API
, algumas funções da plataforma FMZ podem ser operadas programaticamente, por exemplo, criar bots reais em lotes, iniciar bots reais em lotes, modificar a configuração de bots reais em lotes, etc., para mais detalhes, consulte:https://www.fmz.com/api#api-extension-of-fmz-platformA extensão API também pode ser usada para fazer algo interessante, comoUtilizando a extensão API da plataforma de negociação FMZ Quant para implementar a negociação de sinais de alarme TradingView
Dito isto, o que é exatamente controlar a minha conta de câmbio para negociação automaticamente? Esta é a encarnação específica de negociação programática e negociação quantitativa - scripts de negociação programática. Estes programas de bots reais podem ser escritos em vários idiomas. Por exemplo, a FMZ Quant Trading Platform suporta a escrita de estratégias de negociação de bots reais em JavaScript, Python e C ++. Estes programas de script realizam várias operações, como compra e venda de uma conta através da interface API da bolsa.
O dispositivo em que o script de negociação programática é executado
O programa de script de bot real deve ter um portador de dispositivo (em suma, o bot real deve ter um lugar onde ele é executado). Transações quantitativas geralmente implantam o programa de bot real no servidor Alibaba Cloud em Hong Kong (é claro, você também pode usar servidores de outros lugares, outros operadores).timeout
serão notificados.
Na plataforma FMZ, você geralmente pode implantar seu próprio programa de software no servidor Alibaba Cloud de Hong Kong (o software de porta bot real da plataforma de negociação quântica FMZ é chamado de [docker], e o bot real de negociação quantitativa é executado com base no software docker).
Escolha da linguagem de script Existem muitas linguagens de programação, e quase todas elas podem ser usadas para escrever programas reais de bot. Aqui também vamos tomar o FMZ Quant Trading Platform como um exemplo para entender as vantagens de várias linguagens.
JavaScript É fácil de usar, e é quase independente do ambiente do dispositivo, suporta o padrão ES6. A velocidade de execução do programa de estratégia é a segunda apenas para a estratégia C ++. (recomendado para iniciantes na FMZ Quant Trading Platform)
Python Depende do ambiente do dispositivo até certo ponto, e várias bibliotecas podem ser instaladas, com uma alta escalabilidade.
C++
A estratégia tem a velocidade de execução mais rápida, a maior eficiência, mas é mais difícil de utilizar.
Depois de familiarizado com ele, outras linguagens de programação sãoso easy!
.
MyLanguage O MyLanguage suportado pela plataforma FMZ é o comando mais básico.
Estratégia de emplaçamento de módulos visuais A estratégia de criação visual só é usada para aumentar o interesse e entender a lógica do programa.