Software de Kardex e Estoque

Kardex Tauro

O software de gestão de estoque Kardex Tauro® foi projetado para gerenciar seu armazém ou depósito de forma eficiente e pode ser aprendido em um curto período de tempo.

O Kardex Tauro é gratuito para uso não comercial.
Não requer conexão com a internet e funciona no Windows.

Código Python: sinal combinado de média móvel e sentimento do titular

Código Python: sinal combinado de média móvel e sentimento do titular

Este programa responde a uma pergunta bem específica: como se decide algo com os números à frente, e não com o palpite? Ele junta duas ideias simples -a média móvel de vinte e de cinquenta fechamentos, que é só a média dos últimos fechamentos, e o sentimento do titular do dia, medido pela contagem das palavras positivas e negativas que o texto traz- e escreve uma decisão para cada data com titular: comprar, vender ou esperar. Foi feito para o dono de pequeno negócio que quer ver com os próprios olhos como se mede uma regra, para o contador que desconfia de números que não consegue conferir e para o encarregado de depósito que já sabe ler uma tabela de colunas fixas. Aqui não existe fórmula mágica: existe uma balança e uma folha de papel.

⬇ Baixar o código (ZIP)

Aviso: isto é material educativo para praticar Python e não é uma recomendação de compra nem de venda. Os preços de exemplo e os titulares que vêm com o programa são inventados, e os dados históricos são citados só para praticar. Um resultado passado não garante nada sobre o futuro: antes de investir, consulte um profissional autorizado.

Arquivo dentro do ZIPO que é
senal_combinada.pyO programa, comentado em português e só com a biblioteca padrão
datos/precos.csvCento e oitenta fechamentos diários de exemplo, inventados, de janeiro a junho
datos/titulares.csvTrinta titulares inventados com o seu rótulo manual
salida_ejemplo.txtA saída real que você vai ver na tela, tal como aparece
LEIAME.mdInstruções, o formato dos dados e o aviso por escrito

O que o programa faz

  1. Lê dois arquivos de exemplo que viajam dentro do ZIP: os fechamentos diários e os titulares. Os titulares são inventados e estão ali para praticar; não são notícias reais.
  2. Calcula a média móvel de vinte e a de cinquenta fechamentos em cada data. Cada média usa apenas os fechamentos anteriores: não olha para a frente, porque o futuro não está no arquivo.
  3. Mede o sentimento do titular com um léxico próprio: duas listas curtas de palavras escritas à mão, positivas e negativas, sem inteligência artificial no meio. A vantagem é que você pode ler as listas e discuti-las; a desvantagem é que a ironia passa batida.
  4. Transforma essa nota em um sinal de três valores: positivo quando o titular pesa para cima, negativo quando pesa para baixo e neutro quando fica no meio.
  5. Escreve a decisão de cada data: comprar só se o sinal técnico e o sentimento forem os dois positivos; vender só se os dois forem negativos; esperar em qualquer outro caso.
  6. Salva o diário em salida/diario.csv e conta os dias de cada decisão.
  7. Compara o capital final da regra com comprar e manter e diz quem ganhou, mesmo quando ganha o não fazer nada.

Como executar

Você precisa do Python 3.11 ou superior e de mais nada: o programa usa apenas a biblioteca padrão, então não há pacote para instalar, nem conta para criar, nem plataforma para conectar. Descompacte o ZIP em uma pasta, abra o terminal nessa mesma pasta e digite uma única linha:

python senal_combinada.py

Se o terminal responder que não encontra o arquivo, quase sempre é porque ele está aberto em outra pasta: vá com cd até a pasta que você descompactou e tente de novo. O programa não grava nada fora da própria pasta: ele cria salida/ e guarda ali os dois arquivos CSV.

O código, explicado

Cinco trechos do programa explicam quase todo o resto. O primeiro é o bloco de constantes do início, que fixa o capital inicial e a ideia de comparar as duas estratégias sobre a mesma base:

CAPITAL_INICIAL = Decimal("100.00")                # Capital inicial, para comparar as duas ideias na mesma base

O dinheiro é tratado com Decimal e nunca com decimais binários, porque em uma corrente de multiplicações os erros de centavo se acumulam e a comparação deixa de ser confiável. O arquivo mantém nomes de variáveis em espanhol, como capital_regla e cierres, de propósito, para que as três versões do programa possam ser lidas lado a lado.

O segundo trecho é a regra de decisão inteira: seis linhas. A estratégia toda cabe ali, e é justamente essa a ideia do exercício.

def decidir(tecnica: int, sentimiento: int) -> str:
    """Comprar só se os dois sinais forem positivos; vender se os dois forem negativos."""
    if tecnica == 1 and sentimiento == 1:
        return "comprar"
    if tecnica == -1 and sentimiento == -1:
        return "vender"
    return "esperar"

Existem três resultados possíveis: comprar, vender e esperar. Comprar exige que os dois sinais concordem para cima; vender exige que os dois concordem para baixo; qualquer discordância termina em esperar, que no diário é de longe a decisão mais frequente.

O terceiro trecho é a comparação. Repare que o programa nunca olha o preço do dia seguinte:

def comparar(filas: list[dict]) -> dict:
    """Compara o capital da regra com comprar e manter, sem espiar o futuro."""
    capital_regla = CAPITAL_INICIAL

O capital da regra é atualizado dia a dia, mas só enquanto a posição anterior o mantinha dentro do mercado; esperar conserva a posição que já existia, não inventa uma nova. A referência é comprar e manter, ou seja, não fazer nada, que é o rival mais incômodo que existe.

O quarto trecho é o veredicto, escrito de propósito para dizer quem ganhou. O programa não tem um caminho educado para o caso em que a regra perde:

        imprimir_parrafo("Veredicto: nestes dados a regra combinada PERDE para comprar e manter. É dito com essas palavras: o sinal técnico e o sentimento não conseguiram ficar na alta.")

E o quinto trecho é o aviso, que o programa imprime no começo e outra vez no fim. O aviso vive dentro do código, não escondido em um anexo:

    imprimir_parrafo("AVISO: " + AVISO)

O que você vai ver na tela

Primeiro o resumo de decisões e a comparação de capital. Esta é a saída real com os dados de exemplo do ZIP:

RESUMO DE DECISÕES
  Comprar  :   7  dias
  Vender   :   3  dias
  Esperar  :  15  dias
  Total    :  25  dias

COMPARAÇÃO CONTRA COMPRAR E MANTER
  Capital inicial: 100,00
  Regra combinada: 113,21  (+13,21 %)
  Comprar e manter: 125,45  (+25,45 %)
  Diferença do capital: -12,24

  Veredicto: nestes dados a regra combinada PERDE para comprar e manter. É dito com essas palavras: o sinal
  técnico e o sentimento não conseguiram ficar na alta.

Depois o diário por data, com o sinal técnico, o sentimento e a decisão na última coluna. Repare nas duas primeiras linhas e na última:

Data       Fechamento                            Titular   Média 20   Média 50   Técnica   Sentim.     Decisão
2026-04-06 93,24      O índice sobe com força e marca...      97,00     103,45        -1        +1     esperar
2026-04-09 93,71      A cotação cai por medo de alta ...      96,60     102,50        -1        -1      vender
2026-06-29 116,97     A empresa aprova um plano sólid...     118,11     117,75        +1        +1     comprar

O resultado, sem maquiagem

Aqui está a parte que não dá para enfeitar. Com estes dados a regra combinada termina com um capital de cento e treze vírgula vinte e um, isto é, uma alta de treze vírgula vinte e um por cento. Comprar e manter, que é não fazer absolutamente nada, termina em cento e vinte e cinco vírgula quarenta e cinco, ou seja, vinte e cinco vírgula quarenta e cinco por cento. A diferença é de doze vírgula vinte e quatro e fica a favor de comprar e manter. Falando claro: a regra combinada PERDE, e o programa escreve isso com essas mesmas palavras.

Por que perde? Porque juntar dois sinais não cria bola de cristal. A média móvel é uma média do passado, então por definição chega atrasada às altas; o titular, por sua vez, quase nunca cai no mesmo dia em que o preço se move. Quando os dois sinais finalmente concordam, boa parte do movimento já aconteceu, e no resto do tempo a regra fica esperando fora do mercado. E mais um alerta: uma única medição não prova nada, nem contra nem a favor. Pode ser coincidência destes dados, e é por isso que o honesto é dizer isso com todas as letras e voltar a medir com outros preços antes de tirar conclusões.

Do diário saem os números que realmente servem em um negócio: sete dias diziam comprar, três diziam vender e quinze diziam esperar. Esses quinze dias de espera são o coração do assunto. Cada um tem data, fechamento e motivo escrito, e qualquer pessoa pode abrir o arquivo e discutir com os números na mão. No dia em que o seu contador perguntar por que a mercadoria foi comprada justo naquela semana, a resposta não é um palpite: é uma linha do diário com o sinal técnico e o sentimento que a sustentavam. Se o resultado depois foi bom ou ruim já é outra história, e essa história só se pode julgar com o diário à frente. Deixar por escrito por que cada coisa foi decidida é a ferramenta mais barata e mais subestimada que uma pequena empresa tem.

Como usar os seus próprios preços

O ZIP traz dados de exemplo para que você não precise baixar mais nada, mas o programa foi feito para que você troque a pasta datos/ pelos seus próprios arquivos. O formato é um CSV simples, com cabeçalho e uma linha por dia: abre-se e edita-se em qualquer planilha e salva-se de novo como CSV. Os preços históricos usados nesta oficina vêm do CoinGecko (api.coingecko.com) para o bitcoin e da série SP500 do Federal Reserve Bank de St. Louis, em https://fred.stlouisfed.org/series/SP500; os dois foram baixados em 2026-09-25 e são citados aqui apenas como dados de prática.

ArquivoColunaO que vai nela
datos/precos.csvdataO dia no formato ano-mês-dia, por exemplo 2026-01-02
datos/precos.csvfechamentoO preço de fechamento do dia, com ponto decimal
datos/titulares.csvdataO dia do titular, no mesmo formato
datos/titulares.csvtitularO texto completo, entre aspas se tiver vírgulas
datos/titulares.csvrotuloO que você acha que ele diz: positivo, negativo ou neutro

Dois avisos de formato que economizam uma tarde de irritação: os nomes das colunas não podem ser trocados, e o arquivo precisa usar vírgula como separador, não ponto e vírgula. Se a sua planilha salvar com ponto e vírgula, o programa para com um erro de coluna e você vai saber exatamente onde está o problema.

Erros comuns e dicas

  • Renomear uma coluna do CSV. O programa procura os nomes exatos e para quando não os encontra.
  • Deixar menos de cinquenta fechamentos. Sem cinquenta linhas não existe média longa e o diário sai vazio: isso não é um defeito do programa.
  • Executar de outra pasta. Se o terminal está em outro lugar, o programa acha o ZIP mas não acha os dados.
  • Achar que um dia de esperar é erro de cálculo. Esperar é uma decisão e, neste diário, é a mais comum.
  • Ler o resultado como promessa. Os preços de exemplo são inventados e os históricos são citados só para praticar.
  • Mudar o léxico e esperar que o sentimento melhore. Se você tira ou acrescenta palavras, as decisões mudam: é exatamente isso que o diário deixa visível.

Quando isso não basta

Este programa é um caderno de prática, não um sistema de gestão. Se o que você precisa é organizar o estoque de verdade -entradas e saídas, custos, quantidades por depósito e os relatórios de sempre-, o Kardex Tauro é gratuito e foi feito para isso; aqui se pratica como se mede uma regra, não se administra o negócio. Um script ensina a olhar os números; o sistema organiza o dia a dia, e nenhum dos dois substitui o critério do dono.

Aviso: repito porque importa: isto é material educativo e não uma recomendação de compra nem de venda. A fonte dos dados está citada mais acima neste mesmo artigo, o ZIP traz o aviso por escrito e os preços de exemplo são inventados. Um resultado passado não garante nada sobre o futuro; antes de investir, consulte um profissional autorizado.

⬇ Baixar o código (ZIP)

Baixe o ZIP, troque a pasta de dados pelos seus próprios preços e veja o que o diário diz. Mesmo que a regra perca, você terá aprendido algo que serve para a vida inteira de um negócio: como se mede uma ideia antes de acreditar nela.

Compartilhar
Link copiado
Microsoft Store da Microsoft StoreBaixar grátis
Chatea por WhatsApp