Ganhando Dinheiro com Bitcoin e Python (III) — Estratégias de Investimento

Montar um sistema para guiar seus investimentos e testar estratégias pode ser uma excelente abordagem antes de sair comprando cripto no mercado

Arthur Oliveira
5 min readNov 26, 2021

Esse é o terceiro post de uma série que pretende desenvolver um sistema de trading para Bitcoin usando Python. O artigo 1 (análise de dados) pode ser acessado aqui e o artigo 2 (backtrader) pode ser acessado aqui.

Existem diversas estratégias de investimento utilizadas no mercado de ações. Uma das mais populares é o cruzamento de médias móveis. Embora não seja recomendado utilizar apenas uma estratégia de investimento (é sempre interessante a combinação de diferentes estratégias para um investimento de sucesso), a verificação da sua taxa de sucesso é sempre recomendável.

Recentemente, o Bitcoin teve registrado a sua Golden Cross em 16 de setembro e, desde lá, seu preço passou dos 60 mil dólares (apesar da correção que está sofrendo no exato momento em que escrevo esse post). Mas o que seria a Golden Cross e qual o seu relacionamento com o cruzamento de médias móveis?

De acordo com o site InfoMoney:

Golden Cross acontece quando a linha de uma média móvel de curto prazo cruza de baixo para cima a linha de uma média móvel de longo prazo. A mais clássica delas, que envolve as médias móveis aritméticas de 50 e 200 dias, acaba de ser registrada após nova alta na cotação do ativo, que voltou a ser negociado acima de US$ 48.000.

Portanto, o cruzamento de médias móveis se baseia em, pelo menos, duas médias móveis de prazos diferentes: uma de curto prazo (por ex, 50 períodos) e outra de longo prazo (por ex, 200 períodos). Esse cruzamento dá ao investidor duas informações importantes: o sinal de compra/venda; e a possível tendência do ativo.

Ou seja, graficamente vemos algo nesse sentido:

Note que a média de 50 dias passa acima da média de 200 dias, indicando um sinal de compra e tendência de alta.

Mas aqui fica a pergunta: será que essa é uma estratégia suficientemente boa para conseguir bons ganhos com BTC? Vamos testá-la em Python!

No post anterior (aqui), utilizamos o Backtrader para simular investimentos com BTC.

Nesse post, vamos utilizar esse conhecimento adquirido para simular um investimento com o cruzamento de médias móveis conhecido com Golden Cross. Portanto, vamos precisar calcular duas médias móveis (50 e 200 períodos) e usar a seguinte estratégia:

  • Comprado: quando a MM de 50 períodos cruzar acima da MM de 200 períodos (Golden Cross)
  • Vendido: quando a MM de 200 períodos for acima da MM de 50 períodos (também chamada de Death Cross)

Vamos ao código.

  1. Definição da classe da estratégia e como o log das operações será feito.

2. Construtor da classe, inicializando os parâmetros e já calculando as médias móveis com base nos valores 50 e 200 presentes na imagem anterior. O método start define o valor inicial que forneceremos fora da classe para o investimento.

3. Aqui, temos um método importante. É a definição de como nossas operações no mercado serão notificadas (definido no método log) como compra e venda.

4. Finalmente, temos os métodos mais importantes da classe de investimento. O método next define quando iremos realizar as compras e vendas, ou seja, quando as médias móveis se cruzarem. Note que é exatamente no IF em que há a verificação do cruzamento da média de menor período (sma_low) com a média de maior período (sma_high).

O método stop apenas finaliza calculando os valores finais e o retorno de investimento.

5. Aqui, temos o main, onde tudo é definido. Criamos o Cerebro, elemento do Backtrader que realiza a simulação de investimento, passamos a estratégia e os dados para ele.

Note que não mostramos como os dados do histórico do BTC foram carregados (você pode conferir isso aqui).

Em seguida, são definidos o valor inicial ($1000,00) de investimento e a comissão. Por fim, a estratégia é executada e tem o seu gráfico plotado.

Execução

O retorno obtido é o seguinte.

2021-11-26, (MA Period 50, 200)  
Ending Value 7430.57
ROI: 643.06%

Como os nossos dados compreendem de 2016 ao dia desse post, a valorização para quem usou essa estratégia é incrível! R$1000,00 iniciais levariam a um lucro de 643% e a um resultado final de R$7430!

Portanto, podemos ver como é significativo o resultado obtido com o cruzamento de médias, em especial as identificações da Golden e Death Cross.

Para finalizar, vamos ver o gráfico final do investimento.

Concluindo

Nesse post, vimos uma estratégia de investimento simples e que pode ter profundo impacto em seus ganhos em criptomoedas. Vimos também como implementar a sua simulação em Python.

Abraços,

Referências

--

--

Arthur Oliveira

Professor da área de computação. Doutor pela UNICAMP. Graduado em Ciências da Computação e mestre pela USP.