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

Negociação quantitativa de criptomoedas para iniciantes - aproximando-o da negociação quantitativa de criptomoedas (4)

Autora:FMZ~Lydia, Criado: 2022-07-29 16:32:47, Atualizado: 2023-09-21 21:05:29

img

Negociação quantitativa de criptomoedas para iniciantes - aproximando-o da negociação quantitativa de criptomoedas (4)

Nos artigos anteriores, aprendemos os conceitos básicos de muitas criptomoedas, programação e negociação quantitativa. Finalmente, podemos passar ao tópico e falar sobre a própria estratégia. Para Grid Strategy, alguém que tenha feito negociação quantitativa deveria ter ouvido falar dela, mas não importa se não o tenha feito.intercâmbiosA estratégia mais fácil de utilizar é a de negociar com o mercado interno.Estratégia de redeNo entanto, as funções da estratégia de rede e os detalhes fornecidos por cada exchange são diferentes, já que planejamos mudar para a negociação quantitativa de criptomoedas, por que não implementamos uma estratégia de rede por nós mesmos?

Neste momento, alguém pode ter dito: Não sei escrever código! Eu ficava com dor de cabeça quando via o código!

Isso é verdade. É realmente bastante difícil para alguém que não é importante em software de computador ou não esteve envolvido 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 desde o início de acoplamento da interface de troca (talvez seu programa de lógica de negociação é apenas 100 linhas, mas outro trabalho de codificação a ser feito é bastante, e é mais difícil do que escrever lógica de negociação.)

Neste momento, se você tiver uma ferramenta útil, é bastante simples, pelo menos a dificuldade é reduzida em 70%. Você pode imaginar como é conveniente e rápido se você apenas escrever a própria lógica de negociação, e todas as outras conexões de interface de troca, verificação de assinatura, arquivos de configuração, construção de ambiente operacional, escrita de interface de interface, escrita interativa e assim por diante estão todos prontos.

Não acredita? Vamos experimentar!

Implementar 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 é realmente a lógica de compra e venda de rede, por isso isso é algo que deve ser esclarecido antes de projetar uma estratégia.

O seguinte é o fluxo básico da concepção de uma estratégia:

    1. Resumo das necessidades estratégicas

    Para simplificar, é o que, como e que funções sua estratégia vai fazer. Essa informação pode ser escrita em um documento (bloco de notas ou algo assim) antes de escrever o código da estratégia. É muito simples desenvolver estratégias no FMZ, A plataforma preparou soluções para esses requisitos para você, e eu não preciso escrever esses requisitos em um bloco de notas (que não é muito conveniente de gerenciar). Eu escrevo os requisitos da estratégia nas notas da estratégia diretamente.

    img

    Apenas lembre-se de salvar a estratégia depois de terminar, e então vamos escrever os requisitos de estratégia (os requisitos de estratégia não são estáticos, e também é possível gravar enquanto se desenvolve).

    • A estratégia é concebida como uma estratégia de negociação à vista com o par de negociaçãoXXX_USDT, tais comoBTC_USDT.
    • A grade é projetada para ser igualmente espaçada, o que significa simplesmente que a distância entre dois pontos adjacentes na grade é uma propagação fixa.
    • A grelha é projetada como uma grelha infinita que pode ser expandida infinitamente.
    • Usar ordens de mercado para a colocação de ordens.
    1. Construir a estrutura de dados da grade:

    Para ideias pouco claras, podemos desenhar e analisar no início.

    img

    Uma grade pode ser construída em direções ascendentes e descendentes a partir do preço inicial como ponto de base.

    1. O preço cruzou acima da SMA.
    2. O preço cruzou abaixo da SMA. Quando o preço cruza acima da SMA, significa que o preço está subindo e precisa ser vendido, e depois esperar que o preço caia e comprar para fazer um lucro. Quando o preço cruza abaixo da SMA, significa que o preço está a descer, você precisa comprá-lo, e depois esperar que o preço suba e vendê-lo para fazer um lucro. Então cada linha da grade tem duas maneiras de negociar: comprar e vender. e cada linha da grade tem uma propriedade inerente, que é o preço marcado por esta linha. um exemplo é a representação de A / B / C / D no gráfico. Ao desenhar uma estratégia, descubra- O quê?Queremos fazer primeiro, e depois é fácil fazê-lo.

    Escreva uma função que construa a estrutura de dados da grade:

    function createNet(begin, diff) {   // begin, diff are parameters, begin is the initial price, diff is the grid spacing (the spacing of the equal difference grid is the price)
        var oneSideNums = 10            // The grid generates 10 bars on the upward and downward sides. The above chart is a side of the generation of 2 bars (AB side, CD side) and the generation of 10 bars, you can imagine them by yourself.
        var up = []                     // Used to store the upward "grid line" data structure
        var down = []                   // Used to store the downward "grid line" data structure
        for (var i = 0 ; i < oneSideNums ; i++) {    // Determine the number of times according to the size of oneSideNums, and construct the "grid line" data structure cyclically
            var upObj = {                            // Construct an upward "gridline" data structure
                buy : false,                         // Buy marker, initial marker is false, meaning no buy
                sell : false,                        // Sell marker ...
                price : begin + diff / 2 + i * diff, // The price level represented by this "grid line" can be observed according to the cycle, and the price level is rising in turn.
            }
            up.push(upObj)                           // The constructed "gridline" data structure is placed into the up array
    
            var j = (oneSideNums - 1) - i            // The change in j during the loop is: 9 ~ 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)                       // The constructed "gridline" data structure is placed in down array
        }    
    
        return down.concat(up)                       // Add up after down to form a grid array structure with grid line prices from small to large
    }
    

    Você pode executar esta função separadamente para ver o efeito. [Debugging Tools] ou [Backtesting System] no FMZ são muito convenientes para depurar códigos tão pequenos.

    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 starting price, starting from 105 and going up the first line, with an interval of 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 é muito simples. Já o desenhamos no gráfico acima, comprar significa cruzar uma certa linha abaixo e vender significa cruzar uma certa linha acima. Então, como você mostra a travessia acima e abaixo? Também é muito simples, podemos julgar apenas comparando as posições de preço de dois momentos.

    Ainda estou a usar o gráfico anterior.

    img

t1 é um momento, t2 é um momento após t1, para julgar a linha C cruzada acima, só precisamos julgarP1 < CeP2 > C- Não. Da mesma forma, para julgar o cruzado abaixo da linha B, só precisamos determinarP1 > BeP3 < B- Não. Nesse momento, só precisamos atravessar (a travessia é comumente referida comoOlhem um por um.) cada linha na matriz da grade, e julgar se a cruzar acima ou abaixo.

Tendo captado o cruzamento do preço acima e abaixo, é possível fazer uma ordem quando estas ações são desencadeadas? Obviamente, isso não é possível. Se o preço cruzar acima e abaixo repetidamente em uma linha, não desperdiçaria a taxa por trending repetido no mesmo nível de preço? Portanto, ainda há uma série de condições de julgamento para desencadear o cruzamento de preços acima e abaixo, o que requer o uso dos marcadores 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, continuaremos explicando e aprendendo na próxima edição.


Relacionados

Mais.