avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

Novatos em negociação quantitativa nos círculos de criptomoedas, dêem uma olhada nisso - Levando você mais perto da negociação quantitativa nos círculos de criptomoedas (parte 1)

Criado em: 2021-04-12 10:17:12, atualizado em: 2024-12-04 21:22:42
comments   9
hits   5684

Novatos em negociação quantitativa nos círculos de criptomoedas, dêem uma olhada nisso - Levando você mais perto da negociação quantitativa nos círculos de criptomoedas (parte 1)

Novatos em negociação quantitativa nos círculos de criptomoedas, dêem uma olhada nisso - Levando você mais perto da negociação quantitativa nos círculos de criptomoedas (parte 1)

Com o desenvolvimento da negociação quantitativa de ativos de blockchain, cada vez mais traders de ativos de blockchain se conscientizaram da ferramenta de negociação quantitativa. Entretanto, como novo membro deste círculo, estou confuso sobre muitos conceitos. Estou confuso com todos os termos, software, informações, etc. Este artigo ajudará você a entender e se familiarizar com conceitos comuns e aprender sobre diversas informações úteis na negociação quantitativa de ativos de blockchain sob diversos aspectos. Este artigo primeiro resume os conceitos básicos e depois dá exemplos correspondentes a esses conceitos básicos na plataforma de negociação quantitativa FMZ.

  • ### Trocas

Primeiro, precisamos entender o conceito de troca. Precisamos negociar os ativos de blockchain em nossas mãos por especulação, investimento, etc. na troca. Existem muitas bolsas atualmente, algumas estabelecidas, algumas emergentes, algumas grandes e algumas pequenas. Quanto à bolsa para conduzir negociações programadas e quantitativas, você precisa selecioná-la com base em todos os tipos de informações.

  • Conta de câmbio Uma conta de câmbio é uma conta registrada e aberta nesta bolsa. Ativos de blockchain podem ser armazenados nesta conta para negociação. Algumas bolsas podem criar e configurar uma conta principalSubcontasÉ conveniente separar ativos para negociação e especulação. A criação, o mecanismo e o uso da subconta de cada exchange são diferentes, então você precisa acessar o site da exchange para verificar essas informações. Ou consulte o serviço de atendimento ao cliente da bolsa.

    Depois de fazer login com uma conta no site da exchange, você normalmente pode ver que os locais onde os ativos de blockchain podem ser armazenados são divididos em várias “contas” (essas são contas lógicas, não contas de exchange). Geralmente dividido emConta WalletConta de negociação moeda a moedaContas financeirasConta de negociação de contrato espere. Os detalhes podem variar de bolsa para bolsa. Normalmente, depois que os ativos do blockchain (moedas) são cobrados, eles ficam em uma determinada conta (pode ser em uma conta de carteira ou diretamente em uma conta de negociação de moeda para moeda). Portanto, após a recarga, você deve verificar onde estão os ativos e transferi-los quando necessário (por exemplo, ao negociar futuros).

  • Interface API do sistema de câmbio Muitos alunos que não usaram essa função de troca podem perguntar: “O que é a interface da API?” A interface API é a interface fornecida pelo sistema de troca que permite operações de programa. Simplificando, a bolsa fornece um canal para permitir que programas (script real) façam pedidos, cancelem pedidos, verifiquem pedidos e verifiquem contas no sistema de bolsa (um certo par de negociação no site da bolsa, você pode imaginar) Ativos, verificar posições e outras operações. As APIs de troca são divididas em vários tipos de interfaces, geralmenteRESTInterface de protocolo,WebSocketInterface de protocolo. Poucas bolsas também oferecemFIXInterface de protocolo. Estes são apenas para compreensão, os mais comumente usados ​​sãoRESTA interface do protocolo. Esses documentos de interface geralmente estão disponíveis na parte inferior do site oficial da exchange.APIEncontrado no link. Às vezes, quando você deseja consultar alguma informação sobre erro de interface, ainda é necessário verificar esses documentos. Os sistemas de API de cada exchange são diferentes e variam muito. Para problemas específicos, você precisa verificar a documentação. Se você não é um desenvolvedor de estratégias, este conteúdo pode ser usado apenas para referência.

  • CHAVE API da sua conta Você deve entender cuidadosamente a CHAVE DA API da conta, porque ela está relacionada à segurança dos ativos de blockchain armazenados na sua exchange. Como mencionado acima, a interface da API é um canal, então a CHAVE da API pode ser entendida como o canal.Passar. Como existe um canal de acesso, nem todos os programas podem ter acesso, pois isso seria 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 dos seus ativos e deve ser mantida adequadamente. Normalmente, a API KEY de uma exchange é criada na página de gerenciamento de contas no canto superior direito da página da exchange (algumas exchanges podem colocá-la em outro lugar na página da web, encontre um link com a palavra-chave “API” e clique nele para encontre-o). API KEY consiste em duas strings. A primeira string é geralmente chamadaaccess key, a segunda string é geralmente chamadasecret key. Também existem trocas com API KEY que possuem outras informações, como as interfaces OKEX V5 e V3 que possuem umaPassPhrase, que também é uma string (uma string que precisa ser definida por você para fortalecer a verificação de segurança). Ao definir a API KEY, você geralmente também precisa definir as permissões desta API KEY, que geralmente incluem permissões como “negociação” e “retirada de moedas”. Você precisa defini-las de acordo com o propósito da API KEY. A retirada a permissão precisa ser usada com cautela. Além das permissões, a API KEY também pode definir uma lista de permissões de endereços IP. Se você usar um IP fora da lista de permissões de endereços IP (se não entender o conceito de endereços IP, você pode pesquisar no Baidu) para acessar a interface, acesse será negado (ou seja, IP fora da lista de permissões de IP). A rede não pode acessar ou operar sua conta).

  • Objeto de troca O conceito de objeto de troca é um conceito na plataforma de negociação quantitativa do inventor (FMZ.COM). Simplificando, refere-se a um objeto formado pelo encapsulamento da interface de troca. Este objeto é trocado no código de estratégia FMZ. Chamar a função exchange.GetTicker na verdade chama a interface para acessar dados de mercado de câmbio. Para obter detalhes, consulte a documentação da API FMZ: https://www.fmz.com/api#exchange Uma bolsa pode ter uma seção de futuros e uma seção à vista. Como os objetos de bolsa de futuros e os objetos de bolsa à vista definidos no FMZ são tipos diferentes de objetos de bolsa, eles são diferenciados (os objetos de bolsa de futuros têm muito mais funções do que os objetos de bolsa à vista, como a função de configuração de alavancagem e a função de consulta de posição). etc., consulte a documentação para obter detalhes). Então, por exemplo, quando você configura a Binance Exchange na FMZ, você pode ver: Novatos em negociação quantitativa nos círculos de criptomoedas, dêem uma olhada nisso - Levando você mais perto da negociação quantitativa nos círculos de criptomoedas (parte 1) Huobi também tem 2. Novatos em negociação quantitativa nos círculos de criptomoedas, dêem uma olhada nisso - Levando você mais perto da negociação quantitativa nos círculos de criptomoedas (parte 1)

    Se a estratégia for operar em objetos de bolsa de futuros, adicione futuros; se for operar à vista, adicione à vista. O motivo desse design é que as interfaces de futuros e à vista da bolsa podem ser completamente diferentes, e até mesmo os endereços base da interface podem ser diferentes, por isso eles são encapsulados separadamente.

    Na plataforma FMZ, exchange é um objeto de exchange, que representa uma conta de exchange. Para detalhes, veja: https://www.fmz.com/api#exchanges

  • Mercado de Negociação

O mercado de negociação mencionado aqui se refere à superfície de negociação específica (imagine uma determinada página de negociação) e geralmente a bolsa tem várias seções. Por exemplo:Negociação de moeda para moedaNegociação alavancada de moeda para moedaNegociação por contratoespere.

  • Pares de negociação O que normalmente chamamos de “pares de negociação” pode ser entendido simplesmente como as coisas que compramos e vendemos, como quando vamos ao mercado comprar repolho. Então “Repolho_Dinheiro” É uma transação que é certa (sublinhe _ para separar) o comprador paga e recebe repolho, e o vendedor paga e recebe dinheiro. Acesse a bolsa de valores para pares de negociação específicos, por exemplo:BTC_USDTQuando compramos esse par de negociação, queremos dizer pagar USDT para obter BTC. A operação de venda é pagar BTC e receber USDT. porBTC_USDTPor exemplo, normalmente chamamos BTC de moeda de negociação e USDT de moeda de precificação.

    • Moeda de transação, BaseCurrency.
    • A moeda de precificação, QuoteCurrency.
  • Produtos Spot Negociação de moeda para moedaNegociação alavancada de moeda para moeda, classificada como negociação à vista. A negociação à vista requer apenas uma visão claraPares de negociaçãoEle pode descrever em qual mercado a transação está ocorrendo.
    Tomando a plataforma de negociação quantitativa FMZ como exemplo, se você quiser fazer um par de negociação BTC para USDT. A moeda da transação é BTC e a moeda de liquidação é USDT. Utilizamos a função da plataforma FMZexchange.SetCurrency("BTC_USDT")Troque o par de negociação atual para:BTC_USDT. paraSetCurrencySe você não entendeu, pode ler: https://www.fmz.com/api#exchange.setcurrency... paraexchangeSe você não entendeu, pode ler: https://www.fmz.com/api#exchange

  • Contratos (futuros, opções) A negociação por contrato é bem diferente da negociação à vista. Atualmente, os contratos de câmbio são divididos em币本位合约USDT本位合约Para negociação programada e negociação quantitativa, é necessário não apenas determinar o par de negociação, mas também o contrato. Por exemplo, se você quiser negociar BTC, há muitos contratos de BTC, incluindo contratos trimestrais (que expiram e são entregues a cada trimestre), contratos semanais (que expiram e são entregues toda sexta-feira) e contratos perpétuos (sem entrega). Espere. Então, se usarmos apenas um identificador de par de negociação, que tipo de contrato devemos usar? Portanto, é necessário um código de contrato específico para descrevê-lo e confirmá-lo. Dessa forma, quando descrevemos em qual mercado de contratos estamos negociando, precisamos descrever qual moeda (par de negociação) e qual contrato (código do contrato) é.

    • Contratos baseados em moeda Para contratos que usam moedas como margem (como contratos baseados em moedas BTC, que usam BTC como margem e a renda também é BTC), a renda também está em moedas. Normalmente, a moeda denominada dos pares de negociação dos contratos de margem de moeda é expressa em USD (não há necessidade de entrar em detalhes, a maioria das bolsas usa essa expressão). Então o par de negociação é BTC_USD e o contrato é trimestral. Isso significa que o mercado de negociação do qual estamos falando éBTC的币本位季度合约mercado. Na plataforma de negociação quantitativa FMZ,exchange.SetCurrency("BTC_USD")Defina o par de negociação e entãoexchange.SetContractType("quarter")Estabeleça contratos trimestrais. Então o tipo de negociação atual éBTC的币本位季度合约.

    • Contratos com margem USDT Para contratos que usam USDT como margem (como o contrato com margem USDT do BTC, que usa USDT como margem e a renda também é USDT), a renda também é USDT. Normalmente, a moeda denominada do par de negociação de contratos com margem USDT é expressa em USDT. Então o par de negociação é BTC_USDT e o contrato é perpétuo. Isso significa que o mercado de negociação do qual estamos falando éBTC的USDT本位永续合约mercado. Na plataforma de negociação quantitativa FMZ,exchange.SetCurrency("BTC_USDT")Defina o par de negociação e entãoexchange.SetContractType("swap")Estabeleça um contrato perpétuo. Então o tipo de negociação atual éBTC的USDT本位永续合约.

  • Ordem A que exatamente uma ordem se refere? Uma ordem é a lista que enviamos à bolsa quando compramos ou vendemos na bolsa. As ordens são divididas em ordens de mercado, ordens limitadas, ordens condicionais, etc. Os atributos mais básicos de uma ordem são: o objeto da ordem (em termos simples, 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 próxima ordem não se importar com a quantidade de dinheiro, mas apenas determinar a quantidade de compra e venda e o que comprar e vender, então essa ordem é chamada de ordem de mercado. Claro, também há ordens condicionais (ordens stop-loss, ordens iceberg, etc.), que são relacionadas às bolsas específicas. Algumas bolsas as fornecem, e outras não. Você pode verificar os documentos da API da bolsa para obter detalhes.

    • Produtos Spot Ordens de mercado spot geralmente requerem atenção para ordens de compra. A quantidade de ordens de compra de mercado spot não é o número de moedas, mas a quantia. Como a ordem de mercado não determina o preço, o valor da compra só pode ser determinado pelo valor. A quantidade de uma ordem de venda de mercado é o número de moedas, porque mesmo que o preço seja incerto, o número de moedas a serem vendidas é certo.

    • contrato A quantidade de ordem de um contrato é bem especial, geralmente o número de contratos. A interface de ordem de contrato da exchange é basicamente o número de contratos, e não há interface que use o número de moedas como a quantidade de ordem. O contrato perpétuo de BTC baseado em USDT da Binance pode fazer uma ordem para um contrato perpétuo de BTC no valor de 0,01, mas não é o número de moedas, e sim o número de contratos, exceto que um contrato passa a ser um BTC. Em termos gerais, independentemente de ser uma ordem de mercado ou uma ordem limitada, a quantidade da ordem é o número de contratos.

    • O que são ordens taker e maker? Uma ordem taker é uma ordem que fornece liquidez. Em termos simples, o preço de compra atual é 10 e o preço de venda é 11. Neste momento, coloco uma ordem de compra com um preço de compra de 9, ou coloco uma ordem de venda com um preço de venda de Uma ordem de venda de 12. Neste momento, eu forneço uma ordem para a profundidade no tabuleiro. Minha ordem é o maker. Neste exemplo, se eu colocar uma ordem de compra a um preço de 11, minha ordem será negociada com a ordem de venda a um preço de 11. Neste momento, eu pego uma ordem do mercado. A ordem de compra que eu coloquei naquele o tempo era um tomador de ordens.

    Por exemplo, a função de ordem encapsulada na Plataforma de Negociação Quantitativa do Inventorexchange.Sellexchange.BuyEle encapsula interfaces comuns de ordens de limite e ordens de mercado. Ao fazer uma ordem, a classificação da ordem como taker ou maker depende do preço da ordem e do preço de mercado no momento, e se nossa ordem fornece liquidez ou reduz a liquidez. Na Plataforma de Negociação Quantitativa do Inventor, se o preço for passado como -1, significa colocar uma ordem de mercado. Observe que a quantidade da ordem da ordem de mercado à vista é o valor, então a ordem de mercado definitivamente reduzirá a liquidez e é definitivamente uma pedido do tomador.

    • Ordem condicional de troca Muitas bolsas também oferecem suporte a ordens condicionais.比如冰山委托止损单, 止盈单, post_only:只做maker单fok:全部成交或立即取消ioc:立即成交并取消剩余espere. Essas ordens podem ser usadas na plataforma de negociação quantitativa Inventorexchange.IOA função acessa diretamente a interface de ordem de câmbio para especificar os parâmetros a serem definidos (especificar qual ordem condicional colocar) para colocar uma ordem. paraexchange.IOPara uso da função, consulte a documentação da API FMZ: https://www.fmz.com/api#exchange.io...
  • Plataforma de negociação quantitativa

Uma plataforma de negociação quantitativa pode ser considerada uma ferramenta de negociação quantitativa, que pode ser um sistema de software online, um site, um programa executável local ou até mesmo um projeto de código aberto no GITHUB. Simplificando, você pode pensar nisso como uma ferramenta para negociação quantitativa.

  • Plataforma de negociação quantitativa FMZ A Inventor Quantitative Trading Platform é um sistema distribuído online. Para uma introdução à plataforma e tutoriais, consulte: https://www.fmz.com/bbs-topic/4145

  • Sistema de backtesting de plataforma de negociação quantitativa O que é um sistema de backtesting? Simplificando, o sistema de backtesting consiste em reproduzir os dados históricos de um determinado produto de negociação e, durante a reprodução, envolver uma determinada estratégia para obter o desempenho de negociação dessa estratégia ao simular a reprodução dos dados históricos. Então o sistema de backtesting é apenas um ambiente sandbox (pense no sandbox com que as crianças brincam, onde você pode criar todos os tipos de coisas, mas elas são apenas modelos e não têm nada a ver com coisas reais). Então é impossível para o backtesting sistema para ter transações reais. Qualquer função.

    Sistema de backtesting da plataforma de negociação quantitativa Inventor:

    Nome Tipo Descrição
    Bitfinex Objeto de troca à vista Suporta pares de negociação limitados, como: BTC_USD, ETH_USD, LTC_USD, etc. Observe que o par de negociação é denominado em USD.
    Binance Objeto de troca à vista Suporte a pares de negociação limitados, como: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc.
    OKEX Objeto de troca à vista Suporte a pares de negociação limitados, como: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc.
    Huobi Objeto de troca à vista Suporte a pares de negociação limitados, como: BTC_USDT, ETH_USDT, ETH_BTC, LTC_BTC, etc.
    OKEX Futures Objeto de Bolsa de Futuros Suporta pares de negociação limitados, como BTC_USD, ETH_USD, etc. O par de negociação é denominado em USD. Após definir o código de contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em moeda
    HuobiDM Objeto de troca de futuros HuobiDM é Huobi Futures (contrato Huobi), que suporta pares de negociação limitados, como BTC_USD, ETH_USD, etc. O par de negociação é denominado em USD. Defina o código de contrato específico (consulte a função exchange.SetContractType) Após que o contrato é um contrato baseado em moeda
    BitMEX Objeto de bolsa de futuros O par de negociação é: XBT_USD. Após definir o código de contrato específico (veja a função exchange.SetContractType), o contrato é um contrato baseado em moeda
    Binance Futures Objeto de troca de futuros Suporta pares de negociação limitados, como BTC_USDT, ETH_USDT, etc. O par de negociação é denominado em USDT. Após definir o código de contrato específico (consulte a função exchange.SetContractType), o contrato é um contrato baseado em USDT
    Opções Deribit Objeto de troca de opções Pares de negociação: BTC_USD, ETH_USD. Após definir o código de contrato específico (veja a função exchange.SetContractType), o contrato é um contrato baseado em moeda
  • API KEY para plataforma de negociação quantitativa A bolsa tem uma interface API, e a plataforma de negociação quantitativa também tem uma interface API. Tomando como exemplo a plataforma de negociação quantitativa FMZ, a interface API da FMZ é chamada扩展API. Algumas funções da plataforma FMZ podem ser operadas programaticamente. Por exemplo, criar discos reais em lote, iniciar discos reais em lote, modificar configurações de discos reais em lote, etc. Para obter detalhes, consulte: https://www.fmz.com/api#fmz%E5%B9%B3%E5% 8F%B0%E6% 89%A9%E5%B1%95api A API de extensão também pode ser usada para fazer algumas coisas interessantes, comoUse a API de extensão da plataforma de negociação quantitativa do Inventor para implementar a negociação de sinais de alerta do TradingView

  • Scripts de negociação programática

Dito isto, o que exatamente está controlando automaticamente minha conta de câmbio para negociar? Esta é a manifestação concreta da negociação programática e da negociação quantitativa - script de negociação programática. Esses programas em tempo real podem ser escritos em várias linguagens. Por exemplo, a plataforma de negociação quantitativa FMZ suporta a escrita de estratégias de negociação em tempo real em JavaScript, Python e C++. Esses programas de script usam a interface de API da exchange para executar várias operações em uma conta, como compra e venda.

  • O dispositivo onde o script de negociação programática é executado O programa de script em tempo real deve ter um dispositivo portador (em termos simples, o script em tempo real deve ter um lugar para ser executado). A negociação quantitativa no mundo das criptomoedas geralmente envolve a implantação de programas em tempo real nos servidores do Alibaba Cloud em Hong Kong (claro, você também pode usar servidores em outros lugares ou de outras operadoras). Dado que muitas exchanges atualmente exigem acesso à rede internacional, muitas interfaces de API de exchanges não podem ser acessadas usando servidores nacionais. Em geral, um erro será relatado se o acesso à interface não estiver disponíveltimeout。 No FMZ Quantitative, você normalmente pode usar o servidor Alibaba Cloud de Hong Kong para implantar seus próprios programas de software (o software de operadora em tempo real da Inventor Quantitative Trading Platform é chamado de [Trustee], e a negociação quantitativa em tempo real é baseada no Software fiduciário).

    • Sistema de Equipamentos Vários sistemas operacionais: Windows/Linux/MAX OS/ARM Linux, etc., selecione de acordo com o script atual. No FMZ Quantitative, geralmente usamos o servidor do sistema Linux. O uso do sistema Linux não é realmente complicado. O uso simples requer apenas dominar alguns comandos, que são explicados no tutorial do FMZ.
  • Escolha da linguagem de script Existem muitas linguagens de programação e, basicamente, todas elas podem ser usadas para escrever programas de script em disco real. Aqui também usaremos a plataforma de negociação quantitativa FMZ como exemplo para entender as vantagens de vários idiomas. No FMZ Quant, podemos escrever estratégias (programas de script de robôs) nas seguintes linguagens de programação:

    • JavaScript É simples e fácil de usar, quase não depende do ambiente do dispositivo e suporta o padrão ES6. A velocidade de execução do programa de estratégia só perde para a estratégia C++. (Recomendado para iniciantes em negociação quantitativa FMZ)

    • Python Depende do ambiente do dispositivo até certo ponto, várias bibliotecas podem ser instaladas e tem forte escalabilidade. (Recomendado para alunos familiarizados com a plataforma FMZ e Python)

    • C++ Essa estratégia tem a maior velocidade de execução e a maior eficiência, mas é mais difícil de usar. Brinque, outros sentimentosso easy!

    • Língua Mai Os idiomas de microfone suportados pelo FMZ são apenas os comandos mais básicos.

      • A linguagem Mai é adequada para escrever algumas estratégias de tendências
      • Quando um sinal de negociação aparece no idioma Mai, ao executar instruções de negociação, somente ordens podem ser aceitas, e ordens pendentes não são suportadas.
      • A linguagem Mai é adequada para estratégias para objetos de troca única (ela pode controlar apenas um objeto de troca. Embora a linguagem Mai da FMZ suporte a incorporação de código JS, é um pouco difícil para iniciantes e não será estudada por enquanto)
      • A linguagem Mai é adequada apenas para estratégias de variedade única. É recomendado usar JavaScript, Python e C++ para design de estratégia de variedade múltipla.
      • Informações relacionadas ao uso da linguagem no palco da FMZ: https://www.fmz.com/digest-topic/5789 https://www.fmz.com/digest-topic/5768
    • Estratégia de emenda de módulo visual Criar estratégias de forma visual serve apenas para aumentar o interesse e a compreensão da lógica do programa. Não há problema em criar alguma lógica simples, mas não é adequado projetar estratégias dessa maneira se a estratégia for um pouco complicada, porque é difícil de manter e expandir, e é ainda mais difícil projetar uma lógica complexa.