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.COMO núcleo do projeto de estratégia de rede é na verdade a lógica de compra e venda de rede, por 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).

    img

    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.

    img

    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.

    img

    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 pela imagem anterior.img

    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 de 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.