Uma mudança na visão | Building Stocksimpy (DevLog 4)
Imagine ser capaz de testar sua estratégia em menos de 10 linhas de código Python, em vez de passar horas com outras bibliotecas. É isso que tornará o Stocksimpy útil. Este é o 4º (tecnicamente 5º) post na minha série DevLog sobre o Building Stocksimpy, uma biblioteca leve do Python Backtesting. Leia o resto da série aqui. Estou desenvolvendo estoques há cerca de um mês. Ao longo do caminho, aprendi muito, desde como documentar adequadamente uma biblioteca até como escrever um código reutilizável. Esses eram meus objetivos originais: eu queria aprender. Mas se eu for honesto, aprender por mim mesmo não é suficiente – quero construir algo realmente útil para os outros também. Essa mudança me fez revisitar a origem do Stocksimpy. A ideia veio quando eu estava construindo um script simples de previsão de ações. Eu poderia gerar números e lotes, mas tudo o que vi foi apenas um monte de dados fluindo e nenhum senso real de se o modelo estava “funcionando”. Foi realmente bem -sucedido ou apenas ruído? Naturalmente, procurei as ferramentas existentes de teste de python. O que eu achei foi esmagador: bibliotecas que exigiam a configuração de contas, o gerenciamento de APIs e a me perdendo entre as linhas de configuração. Essas são ferramentas poderosas, mas para experimentação rápida, eles pareciam exagerados. Eu não queria complexidade-eu queria algo leve, intuitivo e bem documentado. Foi assim que nasceu a ideia de estoques. Uma biblioteca Python projetada para ser simples o suficiente para um experimento de fim de semana, mas estruturado o suficiente para escalar à medida que as estratégias se tornam mais avançadas. Desde o início, escolhi construir em público, atualizando o repositório do GitHub à medida que o projeto crescia. Mas, recentemente, percebi que estava apenas reimplementando a mesma lógica indicadora que as principais bibliotecas como o TA-Lib já fornecem. Esse nunca foi o objetivo do Stocksimpy. Então, estou fazendo alguma reconfiguração no esqueleto da biblioteca. Aqui está o que será: Indicadores.py: contém alguns indicadores comuns simples para testes e desenvolvimento rápido. StockData: mantém o quadro de dados do Pandas relacionado aos dados de estoque. Portfólio: contém o histórico de compra/venda, atualmente mantidos ações e gerencia operações de compra/venda. BackTester: onde o usuário insere sua estratégia e um data de Stock para testar, onde ocorre o loop principal. Visualize: visualiza o resultado e a mudança do valor total. Terminei a codificação de um rascunho de trabalho para os três primeiros e publicarei um post sobre o portfólio em breve. Como estas são as principais classes da minha biblioteca, pretendo um fluxo de trabalho semelhante ao seguinte: Def Strategy (): # É aqui que o usuário constrói sua própria estratégia pular a partir de estoque de estoque de estoque, visualize, backtester # 1 # Import the Data, suporta sqlite, pd.dataframe, ditt, yfinance e mais dados sqlite, pd. backtest = backTester (dados, estratégia, inicial_cap = 100000) # 3 # o executa backtest.run_backtest () # 4 # visualiza a alteração da tampa Visualize.Visualize (backtest) # 5 Digite o modo de tela cheia para executar um modo de tela completa para que isso funcione, se isso eu esperava, com apenas 5 linhas de código é possível para executar um teste de interrupção. Se houver algo que você queira acrescentar ou qualquer sugestão, entre em contato comigo em meus sociais ou comente abaixo 👇. Realmente ajuda a melhorar a biblioteca. Se você gostaria de me apoiar: obrigado pela leitura – deixe -me saber o que mais você quer que eu acrescente.
Fonte