exponential_moving_average returns an incorrect second value when window_size=1
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 88/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- fintech-quant
Direção de pesquisa
Comece em financial/exponential_moving_average.py e execute a reprodução relatada com window_size=1. Verifique o ramo de inicialização em torno de i <= window_size e o doctest existente para obter contexto. Está concluído quando exponential_moving_average retornar [10.0, 20.0, 30.0] para essa entrada, preservando o comportamento existente de window_size=3.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Repository commit
7f81fcd68c195ce71534de09d1b69d2b61665902
Python version (python --version)
Python 3.14.7
Dependencies version (pip freeze)
No third-party dependencies are required for this reproduction; the function uses only the Python standard library.
Expected behavior
For window_size=1, the documented smoothing factor is:
alpha = 2 / (1 + window_size) = 1
Therefore, the documented recurrence should return each input value unchanged.
For input [10.0, 20.0, 30.0], the expected output is:
[10.0, 20.0, 30.0]
Actual behavior
The function returns [10.0, 15.0, 30.0], so the second value is incorrect.
Reproduction from the repository root:
from financial.exponential_moving_average import exponential_moving_average
actual = list(
exponential_moving_average(iter([10.0, 20.0, 30.0]), window_size=1)
)
print(actual)
# [10.0, 15.0, 30.0]
assert actual == [10.0, 20.0, 30.0]
# AssertionError
The initialization branch uses if i <= window_size. At i=1 and window_size=1, it calculates (moving_average + stock_price) * 0.5, producing 15.0 instead of applying alpha=1.
The existing doctest uses window_size=3 and passes, but does not cover this case.
The unmodified source file at the reported commit was tested with Python 3.14.7.
- Linguagem predominante
- Python
- Estrelas
- 225k
- Forks
- 51.1k
- Merge médio
- 18h 46min
- PRs com merge (30d)
- 176
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TheAlgorithms/Python
-
enhancement good first issue hacktoberfest tracking issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
TheAlgorithms/Python#15234 · 91 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
TheAlgorithms/Python#15469 ·
Mantenedores costumam responder em até 1 dia
-
TheAlgorithms/python_maintainers: Call for help in preparing for Hacktoberfest 2026Talvez já em andamento @AnupKumarPanwar assumiu há 13 dias. Abertahelp wanted
TheAlgorithms/Python#15351 · 2 responsáveis ·
Mantenedores costumam responder em até 1 dia
-
Open Pull Request File MapAberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
TheAlgorithms/Python#15310 · 23 comentários ·
Mantenedores costumam responder em até 1 dia
-
hacktoberfest help wanted tracking issue
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
TheAlgorithms/Python#15187 · 8 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de TheAlgorithms/Python
Issues semelhantes
-
repo-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
scverse/repo-health#20 ·
Mantenedores costumam responder em até 1 dia
-
/context/prime scope override double-prefixes an entity-ref project and drops its scoped memoriesAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
phasespace-labs/palinode#232 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
collective/icalendar#1858 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
lfx-mcp cannot supply global variables: LangflowClient drops X-LANGFLOW-GLOBAL-VAR-* from envAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
langflow-ai/langflow#15496 ·
Mantenedores costumam responder em até 1 dia