O recurso está a ser carregado... Carregamento...

Novato, confira Leva-o ao Comércio Quantitativo de Criptomoedas (4)

Autora:Ninabadass, Criado: 2022-04-18 14:16:06, Atualizado: 2022-04-18 15:39:07

Novato, confira Leva-o ao Comércio Quantitativo de Criptomoedas (4)

Nos primeiros artigos, eu aprendi muitos conceitos básicos do círculo de criptomoedas, bem como negociação programática e quantitativa. Finalmente, podemos cortar para o tópico principal e falar sobre a própria estratégia. Para [Grid Strategy], os estudantes que fazem negociação devem ter ouvido falar dele, mas não importa se você não tem.plataformasA estratégia mais comum e mais fácil de utilizar é a deEstratégia de redeNo entanto, as funções da estratégia de rede e os detalhes fornecidos por cada plataforma são diferentes.

Então, alguns alunos podem dizer: Não sei escrever códigos! Os códigos fazem-me ansioso!

Isso é verdade. É realmente bastante difícil para os estudantes que não se especializam em software de computador e não estão envolvidos em trabalho de programação para desenvolver uma estratégia de negociação completa por si mesmos. Porque você tem que fazer uma série de pré-trabalho de acoplamento da interface da plataforma (talvez o seu programa de lógica de negociação é apenas 100 linhas, mas o outro trabalho de codificação a ser feito é muito, e é mais difícil do que escrever lógica de negociação.)

Neste momento, se você tiver uma ferramenta muito útil, será bastante simples, pelo menos a dificuldade é reduzida em 70%. Você pode imaginar, se você apenas escrever a lógica de negociação, outros trabalhos, incluindo interface de plataforma de acoplamento, verificação de assinatura, arquivos de configuração, construção de ambiente operacional, escrita de interface de interface, escrita interativa e outras funções, está tudo pronto, como é conveniente e rápido.

Não acredita? Vamos tentar!

Realize uma estratégia de rede de pontos simples

A ferramenta que usamos é: FMZ Quant Trading Platform (FMZ.COM). O núcleo do projeto de estratégia de rede é na verdade a lógica de compra e venda de rede, então isso é algo que deve ser esclarecido antes de projetar uma estratégia.

Os procedimentos básicos de conceção de uma estratégia são os seguintes:

  • 1.Resumo das exigências da estratégia

Simplificando, elas são o que sua estratégia fará, como fazer e quais as funções que ela tem. Essa informação pode ser escrita em um documento (algo como um caderno) antes de você realmente escrever o código da estratégia. É muito simples desenvolver estratégias no FMZ. A plataforma fornece soluções para esses requisitos, e você não precisa escrever esses requisitos em algum caderno (o que não é muito conveniente de gerenciar).

Novice, Check it Out —— Take You to Cryptocurrency Quantitative Trading (4)

Lembre-se de salvar a estratégia quando terminar de escrever, e então continuaremos a escrever os requisitos da estratégia (esses requisitos não são inalterados; você pode gravar e desenvolver ao mesmo tempo).

  • A estratégia é concebida como uma estratégia de taring spot; o par de negociação éXXX_USDT, tais comoBTC_USDT.

  • A grelha é concebida para ser um intervalo de diferença igual; para ser simples, o intervalo entre os dois pontos adjacentes na grelha é uma propagação fixa.

  • A grelha é projetada para ser uma grelha infinita que pode se estender sem limites.

  • A forma de ordenar usa a ordem do mercado.

  • 2.Construir a estrutura de dados da rede:

    Para as ideias pouco claras, podemos planejar para analisar no início.

    Novice, Check it Out —— Take You to Cryptocurrency Quantitative Trading (4)

    As grades podem ser construídas em direções ascendentes e descendentes a partir do ponto de base, o preço inicial no início.

    1. Aumentar o preço;
    2. - Desça o preço.
      Subindo o preço significa que o preço está ficando alto; precisamos vender, e depois comprar quando o preço cai após o aumento, para fazer um lucro. Descendo o preço significa que o preço está ficando baixo; precisamos comprar, e depois vender quando o preço sobe após a queda, para fazer um lucro. Portanto, cada linha de grade tem duas maneiras de negociação: comprar (oferta) e vender (peça). Além disso, cada linha de grade tem um atributo fixo, que é o preço marcado com a linha, como A, B, C, D mostrado na imagem. Ao desenhar uma estratégia, devemos primeiro descobrir- O quê?Nós realmente queremos, e então será conveniente fazê-lo.

    Codificação de uma função de construção da estrutura de dados da rede:

    function createNet(begin, diff) {   // begin and diff are parameters; begin is the initial price, and diff is the grid interval (the interval of the equal difference grid is a price)
        var oneSideNums = 10            // The grid generates 10 lines on both upward and downward sides. The above image only shows the situation of generating 2 lines on both sides (A and B on on side; C and D on the other side), and you can imagine the situation of generating 10 lines.
        var up = []                     // used to store the data structure of the upward "grid lines"
        var down = []                   // used to store the data structure of the downward "grid lines"
        for (var i = 0 ; i < oneSideNums ; i++) {    // determine the number of times according to the number of oneSideNums; construct the "grid line" data structure by loop 
            var upObj = {                            // construct the data structure of a upward "grid line"
                buy : false,                         // buy mark; the initial mark is false, which means no buying 
                sell : false,                        // sell mark ...
                price : begin + diff / 2 + i * diff, // the price position represented by the "grid line", which can be observed and processed according to the loop; the price position is getting higher successively
            }
            up.push(upObj)                           // put the constructed "grid line" data structure into the up array 
    
    
            var j = (oneSideNums - 1) - i            // when in the loop, j changes from 9 to 0 
            var downObj = {
                buy : false,
                sell : false,
                price : begin - diff / 2 - j * diff,
            }
            if (downObj.price <= 0) {                // the price cannot be less than or equal to 0 
                continue
            }
            down.push(downObj)                       // put the constructed "grid line" data structure into the down array 
        }    
    
    
        return down.concat(up)                       // add "up" after "down", forming a grid array structure with grid line prices from low to high 
    }
    

    Você pode executar individualmente a função para ver o resultado. a Debug tool no FMZ ou Backtest system são todos muito convenientes para depurar este tipo de códigos curtos.

    Novice, Check it Out —— Take You to Cryptocurrency Quantitative Trading (4)

    Os dados construídos podem ser observados.

    [
        {"buy":false,"sell":false,"price":5},
        {"buy":false,"sell":false,"price":15},
        {"buy":false,"sell":false,"price":25},
        {"buy":false,"sell":false,"price":35},
        {"buy":false,"sell":false,"price":45},
        {"buy":false,"sell":false,"price":55},
        {"buy":false,"sell":false,"price":65},
        {"buy":false,"sell":false,"price":75},
        {"buy":false,"sell":false,"price":85},
        {"buy":false,"sell":false,"price":95},
        {"buy":false,"sell":false,"price":105},  // 100 is the initial price, the first line goes up is from 105, and the interval is 10 
        {"buy":false,"sell":false,"price":115},  // ... 
        {"buy":false,"sell":false,"price":125},
        {"buy":false,"sell":false,"price":135},
        {"buy":false,"sell":false,"price":145},
        {"buy":false,"sell":false,"price":155},
        {"buy":false,"sell":false,"price":165},
        {"buy":false,"sell":false,"price":175},
        {"buy":false,"sell":false,"price":185},
        {"buy":false,"sell":false,"price":195}
    ]
    
    1. Análise da lógica de negociação

Depois de analisar a estrutura de dados da grade, precisamos considerar a lógica de negociação específica da estratégia da grade. Na verdade, a lógica de compra e venda também é muito simples. Já o desenhamos na imagem acima. Comprar significa descrever uma determinada linha e vender significa ascender uma determinada linha. Então, como expressar ascensão e descensão? Também é muito simples, só precisamos comparar as posições de preço de dois momentos para julgar.

Vou mostrar-vos a imagem anterior.Novice, Check it Out —— Take You to Cryptocurrency Quantitative Trading (4)

1 é um tempo, t2 é um tempo após t1; para julgar se a linha C é cruzada ou não, só precisamos julgarP1 < CeP2 > C- Não. Da mesma forma, para julgar se a linha B é cruzada para baixo, só precisamos julgarP1 > BeP3 < B- Não. Naquele momento, nós só precisamos atravessar cada linha na matriz de grade (correndo é comumente dito serVerificando um por um), e julgar se é para cima ou para baixo.

Eu captei a ação do preço de upcrossing e downcrossing. Posso fazer uma ordem quando estas ações são acionadas? Obviamente, não é possível. Se o preço subir e descer repetidamente em uma linha, não desperdiçaria a taxa de manipulação para negociações repetidas no mesmo preço? Portanto, ainda há uma série de condições de julgamento após o desencadeamento do upcross e downcross, o que requer o uso da marca de compra/venda na estrutura de dados da linha de grade que acabamos de construir (por exemplo: {buy:false,sell :false,price:5}).

Obrigado por ler, e vamos continuar a explicação e estudo no próximo artigo.


Mais informações