Compartilhamento tardio: Bitcoin robô de alta frequência com 5% de retornos diários em 2014

Autora:Lydia., Criado: 2023-01-17 16:12:15, Atualizado: 2023-09-20 09:27:14

img

Compartilhamento tardio: Bitcoin robô de alta frequência com 5% de retornos diários em 2014

Introdução da estratégia

A estratégia foi partilhada em:https://www.fmz.com/strategy/1088A estratégia é a minha principal estratégia desde que comecei com moeda digital. Após melhoria e modificação contínuas, tornou-se mais complicada, mas a ideia principal não mudou. A versão compartilhada é a versão original sem bugs óbvios. É a mais simples e clara. Não há gerenciamento de posição. Cada transação está cheia e não há reinicialização, mas é suficiente para explicar o problema. A estratégia foi executada a partir de agosto de 2014 até o início deste ano, quando as taxas de troca. Durante o período, a operação foi bastante boa, e o tempo de perda foi muito pequeno. O capital aumentou de 200 yuans para 80 Bitcoin. O processo específico pode ser visto emO modo de transacção automatizada de moeda virtualsérie de artigos emXiaocao's Sina blog- Não. A figura a seguir é a curva de retorno da plataforma OKcoin que eu contei especificamente. O capital inicial é de 1000 yuans. Você pode ver que o capital inicial aumentou constantemente. A linha do meio é que minha estratégia parou. Mais tarde, porque a estratégia foi alterada para uma estratégia de ganho de moeda, os retornos em RMB flutuam acentuadamente. O processo específico é descrito no artigo do resumo de dois anos de negociação de estratégia.

img

O gráfico a seguir mostra a curva dos activos totais convertidos em moeda:

img

Porquê partilhar esta estratégia?

  1. Após a troca ser carregada, quase todas as estratégias de alta frequência foram eliminadas, e a minha não é exceção.
  2. Há muito tempo que não partilho nada. Há muito que queria escrever este artigo.
  3. Comunicar e aprender com todos vocês.

Princípio de estratégia

O princípio desta estratégia é muito simples. Pode ser entendido como uma estratégia de criação de mercado de quase alta frequência. Você pode querer bater nas pessoas depois de lê-lo, pode ganhar dinheiro?! Naquele momento, quase todos podiam escrever. Eu não esperava que fosse tão eficaz no início. Pode-se ver que devemos prestar atenção à prática assim que temos ideias em mente. Em 2014, quando os robôs Bitcoin surgiram pela primeira vez, era muito fácil escrever estratégias de criação de dinheiro. Como todas as estratégias de alta frequência, esta estratégia também é baseada em livro de pedidos.

img

Podemos ver a ordem de compra à esquerda, mostrando o número de ordens a preços diferentes, e no lado direito é a ordem de venda. Pode-se imaginar que se alguém quiser comprar Bitcoin, se ele não quiser esperar a ordem e esperar, ele pode escolher apenas aceitar a ordem. Se ele tiver um grande número de ordens, isso fará com que um grande número de transações vendam a ordem e a lista, o que afetará o preço. No entanto, esse impacto não continuará. Algumas pessoas querem aceitar a ordem e vender, e o preço provavelmente se recuperará em um tempo muito curto. Por outro lado, é semelhante ao entendimento de que alguém quer vender moedas. Tomemos como exemplo a ordem pendente na figura. 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. A diferença de preço é a margem de lucro. A estratégia pendirá uma ordem a um preço ligeiramente menor que 10377, como 10376.99, e comprará a um preço ligeiramente maior que 10348, como 10348.01. Isso ocorre porque, se a situação acontecer, obviamente, ganhará a diferença. Embora não seja tão perfeito toda vez, as chances de ganhar dinheiro são incrivelmente altas, considerando as probabilidades. Explique a operação específica com os parâmetros da estratégia atual. Este parâmetro, é claro, não está disponível, apenas para ilustração. Ele procurará um preço com uma quantidade acumulada de 8 moedas, aqui é 10377, então o preço de venda neste momento é o preço menos 0,01 (a quantidade pode ser aleatória). Da mesma forma, ele procurará para baixo para uma quantidade acumulada de 8 moedas, aqui é 10348, então o preço de venda neste momento é 10348,01, e a diferença entre o preço de compra e venda neste momento é 10376,99-10348,01 = 28,98, que é maior do que a diferença de preço pré-estabelecida de 1,5, então ele encontrará uma ordem para esperar a transação com esses dois preços, se a diferença de preço for menor que 1,5, ele também encontrará um preço para procurar uma ordem, como o preço de abertura mais ou menos 10, e esperar mais (é apropriado continuar a seguir a profundidade pendente). Além disso, observa-se que esta estratégia está relacionada apenas com as ordens pendentes profundas atuais e não se importa com o mercado histórico e sua própria transação histórica. A estratégia também não tem conceito de perda única. Na verdade, a taxa de ganho de uma única transação é muito alta.

Explicações adicionais

    1. O que devo fazer se eu ficar sem dinheiro ou moeda? Essa situação é muito comum quando eu tenho menos dinheiro. Na maioria das vezes, eu só espero um lado da ordem, mas não é um grande problema. Na verdade, podemos adicionar a lógica de equilibrar moeda e dinheiro, mas é inevitável perder no processo de equilíbrio. Afinal, cada transação é uma questão de probabilidade. Eu escolho esperar a transação de um lado. Claro, isso também desperdiça a oportunidade de transação do outro lado.
    1. Como são geridas as posições? No início, todos estavam em plena posição de compra e venda. Mais tarde, eles foram divididos em diferentes grupos de acordo com diferentes parâmetros, e eles não seriam completamente fechados de uma só vez.
    1. Há um stop-loss? A estratégia tem uma lógica completa de compra e venda de ordens. Eu acho que não há necessidade de parar a perda (o que pode ser discutido), e há também a preferência da probabilidade. A transação é uma oportunidade, e a perda de parada é uma pena.
    1. Como se ajustar à estratégia de ganhar dinheiro? Neste momento, os parâmetros são simétricos, ou seja, as ordens de venda acumuladas de 8 moedas para cima e as ordens de compra acumuladas de 8 moedas para baixo são ligeiramente desequilibradas.
    1. Como lidar com perdas flutuantes? Naturalmente, haverá perdas em uma única transação, como o aumento do preço da moeda após a venda e a queda do preço da moeda após a compra. Tais perdas flutuantes não precisam ser tratadas, porque as transações são freqüentes e é normal por milhares de vezes todos os dias. As perdas flutuantes são normais, desde que a probabilidade de lucro seja maior.
    1. Como prevenir cisnes negros? O Bitcoin tem muito tempo de Cisne Negro, às vezes ele simplesmente desce todo o caminho, e não há chance de vendê-lo. Esta situação não deve ser muito preocupado, porque o tempo de Cisne Negro muitas vezes traz alta volatilidade, ea estratégia faz exatamente esta parte do dinheiro, ea perda também pode ser ganha de volta rapidamente.

Explicação do código

O código completo pode ser visto no meu compartilhamento de estratégia emwww.fmz.com. Aqui, apenas as funções lógicas principais são explicadas. Sem quaisquer alterações, o bot de simulação que vem com botvs realmente funciona perfeitamente. Esta é uma estratégia de mais de três anos atrás, e a plataforma ainda a suporta agora. É muito emocionante. Primeiro de tudo, para obter a função GetPrice (GetPrice), você precisa obter as informações de profundidade da ordem. Observe que o comprimento da informação de profundidade da ordem de diferentes plataformas é diferente, e mesmo se todas as ordens forem percorridas, ainda não há quantidade necessária (esta situação será causada por muitas ordens de rede de 0,01 na fase posterior).

function GetPrice(Type) {
   //_C() is the fault-tolerant function of the platform
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //Calculate the buy price and get the cumulative depth to a preset price
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //The parameter floatamountbuy is the preset accumulated depth
           if (amountBids>floatamountbuy){
               //Add 0.01 to make the order in the front
              return depth.Bids[i].Price+0.01;}
        }
    }
    //Calculate the selling price similarly
    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;}
        }
    }
    //After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
    return depth.Asks[0].Price
}

A função principal de cada loop é onTick(). O tempo de loop definido aqui é de 3,5 s. Cada loop cancelará a ordem original e re-penderá a ordem. Quanto mais simples for, menos encontrará um bug.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
    CancelPendingOrders() 
    //Get account information to determine how much money and how many currencies are currently in the account.
    var account=_C(exchange.GetAccount);
    //The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //Sleep and enter the next loop
    Sleep(sleeptime);
}

Fim

O programa inteiro é de apenas mais de 40 linhas, o que parece muito simples, mas também me levou mais de uma semana naquele momento, que era na plataforma botvs. A maior vantagem é que começou cedo. Em 2014, o mercado era dominado por tijolos em movimento, e a estratégia de alta frequência de rede e captura de estoque não era demais, o que tornou a estratégia como um peixe na água. Mais tarde, a concorrência tornou-se cada vez mais feroz, e eu tinha mais dinheiro e enfrentei muitos desafios. Eu tive que fazer grandes mudanças a cada outra vez para lidar com isso, mas foi geralmente suave. Sob a condição de que a plataforma de negociação não cobra, é um paraíso para a negociação programada. Porque os investidores de varejo tendem a operar se não houver cobrança, fornece oportunidade para taxas de alta frequência e arbitragem. Tudo isso basicamente termina com a taxa de frequência de 0,1-0,2%. No entanto, ainda há muito espaço para estratégias quantitativas de alta frequência.


Relacionados

Mais.