Discussão do artigo "Testador rápido de estratégias de trading em Python usando Numba"

 

Novo artigo Testador rápido de estratégias de trading em Python usando Numba foi publicado:

O artigo apresenta um testador rápido de estratégias para modelos de aprendizado de máquina com o uso do Numba. Em termos de velocidade, ele supera o testador de estratégias feito em Python puro em 50 vezes. O autor recomenda o uso dessa biblioteca para acelerar cálculos matemáticos, especialmente em casos que envolvem laços.

Ao desenvolver algoritmos de trading baseados em aprendizado de máquina, é importante avaliar corretamente e com rapidez os resultados históricos da estratégia. Se o testador for usado raramente, com intervalos de tempo grandes e com profundidade histórica limitada, o Python pode ser suficiente. No entanto, se a tarefa exige testes repetitivos, incluindo estratégias de alta frequência, a linguagem interpretada pode ser muito lenta.

Suponhamos que não estamos satisfeitos com a velocidade de execução de alguns scripts, mas não queremos abrir mão do ambiente de desenvolvimento familiar do Python. É aí que entra o Numba, que permite a tradução e a compilação instantânea de código Python nativo em código de máquina veloz, cuja velocidade de execução se aproxima à de linguagens como C e FORTRAN.

>


Autor: Maxim Dmitrievsky

 
Não entendi no artigo o que é chamado de testador?
 

O tópico de uso do Numba para Python não é abordado, quase não há explicação do código. A quem se destina esse artigo, aos iniciantes? - então eles não entenderão sem que o código seja mastigado. Para especialistas em Python? - eles não precisam disso, pois já sabem como acelerar os cálculos.

A segunda parte do artigo também não é tão simples. É fornecido um exemplo de otimização com apenas dois parâmetros com uma etapa muito grosseira e é feita uma comparação entre a pesquisa completa e o algoritmo de otimização, enquanto se afirma que a aceleração é até duas vezes mais rápida. Em detrimento do que é obtido? - isso não é explicado. Reduzindo o número de chamadas para o cálculo da função de destino test_model_func? - mas, no caso do AO, esse mesmo número de acessos não é mostrado. Na verdade, como o espaço da tarefa é muito pequeno, é possível obter um aumento de velocidade de 400 vezes, em comparação com uma pesquisa completa nessa tarefa, basta gerar números aleatórios uma vez, mas fazer vários testes e, no artigo, fornecer o melhor resultado dos testes. Em geral, todos os princípios de experimentação são violados.

[Excluído]  
Este artigo é para traders, não para teóricos. Sei que há mais artigos no site sobre tópicos distantes da negociação, portanto, não é uma tendência.
[Excluído]  
fxsaber #:
Não entendi no artigo o que é chamado de Tester?
Um testador é um script para testar MOs treinados no histórico de cotações, aparentemente :)
 
Maxim Dmitrievsky #:
Um testador é um script para testar MOs treinados no histórico de cotações, aparentemente :)

O testador insere dados de preço + ambiente de negociação (ordens atuais) no TS e recebe sinais de negociação do TS.

Tudo é um pouco diferente para você, se entendi corretamente.

[Excluído]  
fxsaber #:

Se eu entendi corretamente, o testador insere dados de preço + ambiente de negociação (ordens atuais) no TS e recebe sinais de negociação do TS.

Se eu entendi corretamente, isso é um pouco diferente para você.

Dados de preço + direções de negociação para cada observação (compra, venda) que o MO previu.

Ou seja, o TS não é executado dentro do testador, as direções das negociações são calculadas e conhecidas antecipadamente.

 
Maxim Dmitrievsky #:

Ou seja, o TS dentro do testador não é executado, as direções das negociações são calculadas e conhecidas antecipadamente.

Entendi. Outro conceito.

 
fxsaber #:

Entendi. Conceito diferente.

Você conseguiu executar os scripts do artigo? Nem um único script do artigo funcionou sem erros no modo pronto para uso.
 
Andrey Dik #:
Você conseguiu executar os scripts do artigo? Nem um único script do artigo funcionou sem erros no modo pronto para uso.

Eu não consegui.

[Excluído]  
Aparentemente, aquela sensação de quando você tenta programar sem conhecer a linguagem. Uma tentativa consciente de desacreditar o artigo ainda não funciona. Preciso de mais mana :)