
Ao estudar os capítulos anteriores desta série, você basicamente dominou o uso de vários tipos de módulos de visualização. Neste capítulo, usamos uma estratégia simples, mas interessante, construída usando módulos de visualização.
O cerne da estratégia é perseguir a alta e vender a queda, e o mercado é o mercado à vista de moedas digitais, como o BTC._USDT, com base no preço atual quando a estratégia está em execução, se o preço subir em uma certa porcentagem, uma certa porcentagem do ativo atual (moeda denominadora) será comprada. Da mesma forma, se o preço cair em uma certa porcentagem, uma certa porcentagem do ativo atual (moeda) será vendida. Assunto.
Antes de começar a construir, vamos adicionar alguns módulos reutilizáveis.

Conforme mostrado na figura acima:
Na coluna da biblioteca de classes há algumas bibliotecas de classes empacotadas e reutilizáveis, que podem ser usadas após a verificação. A “Cryptocurrency Spot Trading Library” selecionada é uma biblioteca de negociação para o mercado spot de criptomoedas. Ela lida com lógica complexa de detecção e repetição após colocar uma ordem (por exemplo, como lidar com uma ordem que não é executada após colocá-la, etc.) ). Ao construir estratégias, muita lógica de processamento complicada é omitida, o que é muito conveniente.

Como a ideia da estratégia é muito simples, os módulos de estratégia não são muito grandes quando colocados juntos. Nosso backtesting começou em outubro de 2018. Em menos de um ano, choques grandes e pequenos e mercados de tendência apareceram, o que forneceu um teste preliminar da estratégia. Parâmetros de backtesting:

Dê uma olhada no desempenho do backtest desta estratégia:

A estratégia equivalente da linguagem JavaScript também é lançada aqui, e os alunos interessados podem estudá-la. Ao aprender a criar estratégias usando módulos visuais e como conceber estratégias e usar diversas interfaces, consegui começar a usar negociação programática com muita facilidade.
A estratégia não tem outros parâmetros de interface, e os alunos interessados podem otimizá-la e expandi-la.
function main() {
var basePrice = -1
var addRatio = 0.02
while (true) {
var ticker = exchange.GetTicker()
if (basePrice == -1) {
basePrice = ticker.Last
}
if ((ticker.Last - basePrice) > 0 && ((ticker.Last - basePrice) / basePrice > addRatio)) {
var acc = exchange.GetAccount()
var amount = acc.Balance * addRatio / ticker.Last
$.Buy(amount)
basePrice = ticker.Last
}
if ((ticker.Last - basePrice) < 0 && ((basePrice - ticker.Last) / basePrice > addRatio)) {
var acc = exchange.GetAccount()
var amount = acc.Stocks * addRatio
$.Sell(amount)
basePrice = ticker.Last
}
}
}
Um ponto interessante sobre essa estratégia é que os ativos da conta são inicialmente definidos para serem iguais ao valor da moeda, como BTC._Par de negociação USDT, o preço atual do BTC é 10.000, a moeda da conta é alocada 5, então USDT é alocado 50.000
A estratégia adota uma atitude neutra em relação às condições de mercado e às flutuações de preços. Tente alocar menos USDT e mais moedas. Por exemplo:

Houve uma mudança notável no backtesting.
Você também pode definir mais USDT e menos moedas.

Junte os módulos e experimente suas próprias ideias de negociação programada.
Exemplo de estratégia de visualização:
Mais estratégias estão disponíveis em: https://www.fmz.com/square
Outros artigos desta série
Programação chata pode ser facilmente concluída usando blocos de construção. Experimente, é muito interessante!