Negociação financeira com bt

Negociação Financeira em Python

Chelsea Yang

Data Science Instructor

O pacote bt

Um framework flexível para definir e fazer backtesting de estratégias de negociação

  • Estratégia: método de comprar e vender ativos financeiros com regras pré-definidas
  • Backtesting de estratégia: forma de avaliar a eficácia testando em dados históricos
import bt
Negociação Financeira em Python

O processo do bt

  • Etapa 1: Obter os dados históricos de preços
  • Etapa 2: Definir a estratégia
  • Etapa 3: Fazer o backtesting com os dados
  • Etapa 4: Avaliar o resultado
Negociação Financeira em Python

Obter os dados

# Download historical prices
bt_data = bt.get('goog, amzn, tsla', 
                 start='2020-6-1', end='2020-12-1')

print(bt_data.head())
                   goog         amzn        tsla
Date                                            
2020-06-01  1431.819946  2471.040039  179.619995
2020-06-02  1439.219971  2472.409912  176.311996
2020-06-03  1436.380005  2478.399902  176.591995
2020-06-04  1412.180054  2460.600098  172.876007
2020-06-05  1438.390015  2483.000000  177.132004
Negociação Financeira em Python

Definir a estratégia

# Define the strategy
bt_strategy = bt.Strategy('Trade_Weekly',

[bt.algos.RunWeekly(), # Executar semanalmente
bt.algos.SelectAll(), # Usar todos os dados
bt.algos.WeighEqually(), # Manter pesos iguais
bt.algos.Rebalance()]) # Rebalancear
Negociação Financeira em Python

Backtesting

# Create a backtest
bt_test = bt.Backtest(bt_strategy, bt_data)

# Run the backtest bt_res = bt.run(bt_test)
Negociação Financeira em Python

Avaliar o resultado

# Plot the result
bt_res.plot(title="Backtest result")

Gráfico do resultado do backtest

# Get trade details
bt_res.get_transactions()

Exibir uma lista de transações

Negociação Financeira em Python

Vamos praticar!

Negociação Financeira em Python

Preparing Video For Download...