3
focar em
1444
Seguidores

Compartilhamento tardio, o robô de alta frequência Bitcoin que rendeu 5% ao dia em 2014 está disponível publicamente

Criado em: 2017-11-30 14:15:27, atualizado em: 2024-12-26 21:36:00
comments   28
hits   38119

Compartilhamento tardio, o robô de alta frequência Bitcoin que rendeu 5% ao dia em 2014 está disponível publicamente

Introdução à Estratégia

Endereço de compartilhamento de estratégia: https://www.fmz.com/strategy/1088 Esta estratégia tem sido minha estratégia principal desde que comecei a negociar moedas virtuais. Tornou-se muito mais complicada após melhorias e modificações contínuas, mas a ideia principal não mudou. A versão que compartilho é a versão inicial sem bugs óbvios. É a mais simples e a versão mais clara sem gerenciamento de posição. Cada transação é com uma posição completa, sem nenhum congelamento ou reinício, etc., mas é o suficiente para ilustrar o problema. A estratégia foi aplicada de agosto de 2014 até que a bolsa começou a cobrar taxas no início deste ano. O período foi muito bom, com pouquíssimas perdas. Os fundos aumentaram dos 200 yuans iniciais para 80 bitcoins. O processo específico pode ser vistoBlog Sina de XiaocaodentroO caminho para a negociação automatizada de criptomoedasSérie de artigos. A figura a seguir é a curva de lucro da plataforma OKcoin que contei especificamente. O capital inicial é de 1.000 yuans. Você pode ver que o dinheiro inicial aumentou de forma constante. A linha reta no meio é quando minha estratégia parou. Mais tarde, porque o a estratégia foi alterada para uma estratégia de ganho de moedas, o lucro foi denominado em RMB. Os retornos flutuam dramaticamente. O processo específico éResumo de dois anos de negociação estratégicaHá uma descrição no artigo. Compartilhamento tardio, o robô de alta frequência Bitcoin que rendeu 5% ao dia em 2014 está disponível publicamente A figura a seguir é a curva do total de ativos convertidos em moeda: Compartilhamento tardio, o robô de alta frequência Bitcoin que rendeu 5% ao dia em 2014 está disponível publicamente

Por que compartilhar essa estratégia?

  1. Depois que a bolsa cobrou taxas de transação, ela quase acabou com todas as estratégias de alta frequência, incluindo a minha. Mas talvez ainda possa funcionar se a estratégia for modificada, você pode estudá-la.
  2. Faz muito tempo que não compartilho nada e queria escrever este artigo há muito tempo.
  3. Comunique-se e aprenda com todos.

Princípios da estratégia

O princípio desta estratégia é extremamente simples, e pode ser entendido como uma estratégia de criação de mercado de frequência quase alta. Depois de ler isto, você pode querer bater em alguém, porque isto pode render dinheiro e quase qualquer um poderia ter escrito isto naquele momento tempo. Não esperava que fosse tão eficaz no começo. Isso mostra que se você tem uma ideia em mente, você deve colocá-la em prática rapidamente, e você pode ter surpresas inesperadas. Em 2014, quando os robôs Bitcoin surgiram pela primeira vez, era muito fácil escrever estratégias lucrativas. Como todas as estratégias de alta frequência, esta estratégia também é baseada em livro de ordens. A figura a seguir mostra a distribuição de ordens de uma típica exchange de Bitcoin. Compartilhamento tardio, o robô de alta frequência Bitcoin que rendeu 5% ao dia em 2014 está disponível publicamente Você pode ver que à esquerda estão as ordens de compra, mostrando o número de ordens pendentes em diferentes preços, e à direita estão as ordens de venda. É concebível que se uma pessoa quiser comprar Bitcoin, se ela não quiser fazer um pedido e esperar, ela só pode escolher aceitar o pedido. Se ela tiver muitos pedidos, isso causará um grande número de pedidos de venda a ser executado, causando um impacto no preço, mas esse impacto geralmente não durará para sempre. Se continuar, e ainda houver pessoas que queiram pegar a ordem e vender, o preço provavelmente se recuperará em um tempo muito curto. Por outro lado , é semelhante se alguém quiser vender a moeda. Tome a ordem pendente na figura como exemplo. Se você quiser comprar 5 moedas diretamente, o preço chegará a 10377. Neste momento, se alguém quiser vender 5 moedas diretamente, o preço chegará a 10348. Este espaço é o lucro espaço. A estratégia será Colocar uma ordem a um preço ligeiramente inferior a 10377, como 10376,99, e comprar a um preço ligeiramente superior a 10348, como 10348,01. Se a situação de agora acontecer, você obviamente ganhará a diferença. Embora não seja perfeito sempre, devido ao efeito da probabilidade, as chances de ganhar dinheiro são surpreendentemente altas. Vamos explicar as operações específicas com os parâmetros da estratégia atual. Claro, esse parâmetro não pode mais ser usado, é apenas uma explicação. Ele procurará o preço com uma ordem de venda cumulativa de 8 moedas, que é 10377 aqui. O preço de venda neste momento é este preço menos 0,01 (o valor negativo pode ser aleatório). Da mesma forma, ele procurará o preço com uma ordem de compra cumulativa de 8 moedas, aqui é 10348, então o preço de venda neste momento é 10348,01, e a diferença entre os preços de compra e venda é 10376,99-10348,01=28,98, que é maior que a diferença de 1,5 predefinida pela estratégia. Então faça uma ordem a esses dois preços e aguarde a transação. Se a diferença de preço Se for menor que 1,5, também encontraremos um preço para fazer uma ordem, como o preço de mercado mais ou menos 10, esperando um vazamento (seria mais apropriado continuar buscando mais profundidade). Observe também que essa estratégia está relacionada apenas à profundidade atual de ordens pendentes e não se importa com as condições históricas do mercado e suas próprias transações históricas. A estratégia também não tem o conceito de uma única perda. Na verdade, a taxa de vitória única é muito alto.

Explicação adicional

  1. O que fazer se você não tiver dinheiro ou moedas? Essa situação é muito comum quando tenho pouco dinheiro e na maioria das vezes faço o pedido apenas de um lado, mas não é um grande problema. Na verdade, a lógica da moeda e do equilíbrio monetário pode ser adicionada, mas as perdas são inevitáveis ​​no processo de equilíbrio. Afinal, toda transação é favorecida pela probabilidade. Eu escolho continuar esperando pela transação de um lado. Claro, isso também desperdiça a oportunidade de transação do outro lado.
  2. Como as posições são gerenciadas? No começo, todas as transações estavam em modo de compra e venda total. Mais tarde, elas foram divididas em grupos diferentes de acordo com parâmetros diferentes, e as transações não seriam concluídas de uma só vez.
  3. Sem stop loss? A estratégia tem lógica completa para ordens de compra e venda. Não acho que haja necessidade de stop loss (pode ser discutido). Além disso, a probabilidade importa. Uma transação é uma oportunidade, então seria uma pena fazer stop loss.
  4. Como ajustar a estratégia para ganhar moedas? Os parâmetros neste momento são simétricos, ou seja, as ordens de venda cumulativas de 8 moedas para cima e as ordens de compra cumulativas de 8 moedas para baixo. Se estiverem ligeiramente desequilibrados, por exemplo, as ordens de venda cumulativas de 15 moedas para cima fazem a chance de vender moedas mais raras. Há uma chance maior de você recuperá-las por um preço menor, o que lhe renderá moedas e, por sua vez, ganhará dinheiro. De fato, as primeiras estratégias foram tão eficazes que tanto as moedas quanto o dinheiro aumentaram.
  5. Como lidar com perdas flutuantes? Claro, uma única transação resultará em uma perda. Por exemplo, se o preço da moeda sobe após a venda e cai após a compra, essas perdas flutuantes não precisam ser processadas, porque as transações são muito frequentes e é normal tem milhares de transações por dia. Perdas flutuantes são normais, desde que a probabilidade de lucro seja maior.
  6. Como prevenir cisnes negros? Existem muitos eventos cisne negro no Bitcoin. Às vezes, ele simplesmente continua caindo sem nenhuma chance de vender. Nesse caso, não há necessidade de se preocupar muito, porque os eventos cisne negro geralmente trazem alta volatilidade, e essa é a parte que a estratégia ganha dinheiro com. O dinheiro perdido pode ser recuperado rapidamente.

Explicação do código

Para o código completo, você pode ver meu compartilhamento de estratégia em www.fmz.com. Aqui, explicarei apenas as funções lógicas principais. Sem nenhuma alteração, o disco de simulação que vem com o botvs realmente funciona completamente normalmente. Essa é uma estratégia de mais de 3 anos atrás, e a plataforma ainda a suporta até agora. É tão tocante. Primeiro, precisamos usar GetPrice() para obter o preço de compra e venda. Precisamos obter as informações de profundidade do pedido. Observe que os comprimentos das informações de profundidade do pedido de diferentes plataformas são diferentes e, mesmo que todos os pedidos sejam percorridos, ainda há nenhuma quantidade necessária (no estágio posterior, muitas ordens de grade de 0,01 levarão a essa situação), a chamada é GetPrice(‘Buy’) para obter o preço de compra.

function GetPrice(Type) {
   //_C()是平台的容错函数
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //计算买价,获取累计深度达到预设的价格
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //参数floatamountbuy是预设的累计深度
           if (amountBids>floatamountbuy){
               //稍微加0.01,使得订单排在前面
              return depth.Bids[i].Price+0.01;}
        }
    }
    //同理计算卖价
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
    return depth.Asks[0].Price
}

A função principal de cada loop é onTick(). O tempo do loop é definido como 3,5s. Cada loop cancelará o pedido original e fará um novo pedido. Quanto mais simples for, menor a probabilidade de encontrar bugs.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice是预设差价,买卖价差如果小于预设差价,就会挂一个相对更深的价格
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
    CancelPendingOrders() 
    //获取账户信息,确定目前账户存在多少钱和多少币
    var account=_C(exchange.GetAccount);
    //可买的比特币量,_N()是平台的精度函数
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //休眠,进入下一轮循环
    Sleep(sleeptime);
}

Cauda

O programa inteiro tem apenas 40 linhas e parece muito simples, mas levei mais de uma semana para concluí-lo, e isso foi na plataforma botvs. A maior vantagem é que comecei cedo. Em 2014, o mercado era dominado pela arbitragem, e não havia muitas grades de alta frequência e posições de agarramento, o que tornou a estratégia como um pato na água. Mais tarde, a competição inevitavelmente se tornou mais e mais feroz, e meu dinheiro ficou cada vez maior. Há cada vez mais desafios surgindo, e temos que fazer grandes mudanças de vez em quando para lidar com eles, mas no geral está indo bem. Quando a plataforma de negociação não cobra taxas de manuseio, é um paraíso para negociação programática. Investidores de varejo estão inclinados a operar porque não cobram taxas de manuseio, o que fornece espaço para alta frequência e arbitragem. Tudo isso é basicamente alcançado com o 0,1 -0,2% O fim das taxas de transação bidirecionais não é apenas um problema cobrado, mas também um declínio na atividade geral do mercado. Entretanto, ainda há muito espaço para estratégias quantitativas que não exijam altas frequências.