Programa de otimização de desempenho
Para resolver o problema do backtesting lento, a eficiência pode ser aprimorada pelos seguintes métodos:
- Pré-processamento de dados::
1. pré-importar os dados históricos CSV para o MongoDB/MySQL.
2. estabelecimento de índices de registro de data e horadb.bar_data.create_index([("datetime", ASCENDING)]) - backtest em lotes::
- fazer uso deoptimize()Defina um tamanho de etapa razoável para a função
- Resultados consolidados após testes fragmentados por ano/trimestre - aceleração de hardware::
- Ativar o modo multiprocessos (requer modificação)backtesting.py)
- Uso de bibliotecas de aceleração de GPU, como a Numba, para modificar as funções principais da política - Otimização em nível de código::
- Evitar a execução de consultas ao banco de dados dentro de loops
- Substituição de operações de lista nativas do Python pelo NumPy
- Desativar a saída do gráfico em tempo real (configuração)output=False)
Programa de avanço:
- Usando o componente de backtesting distribuído vnpy_portfoliostrategy
- Alugue um servidor em nuvem para melhorar o desempenho autônomo (configuração recomendada de 16 núcleos + 32 GB)
Essa resposta foi extraída do artigoVeighNa: uma estrutura de negociação quantitativa de código aberto popular na ChinaO































