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!
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).
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).
XXX_USDT
, tais comoBTC_USDT
.2.Construir a estrutura de dados da rede:
Para as ideias pouco claras, podemos planejar para analisar no início.
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.
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
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}
]
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.
1 é um tempo, t2 é um tempo após t1; para julgar se a linha C é cruzada ou não, só precisamos julgarP1 < C
eP2 > C
- Não.
Da mesma forma, para julgar se a linha B é cruzada para baixo, só precisamos julgarP1 > B
eP3 < 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: {
Obrigado por ler, e vamos continuar a explicação e estudo no próximo artigo.