{"id":28717413,"url":"https://github.com/amccairel/moving_average_cli","last_synced_at":"2025-06-15T03:15:39.589Z","repository":{"id":297363452,"uuid":"985410459","full_name":"amccairel/moving_average_cli","owner":"amccairel","description":"A C++ CLI tool for computing and visualizing moving averages over stock OHLC data.","archived":false,"fork":false,"pushed_at":"2025-06-05T04:22:52.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T07:05:08.745Z","etag":null,"topics":["cli-app","cpp20","csv","moving-average","ohlcv-data"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amccairel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-17T17:50:18.000Z","updated_at":"2025-06-05T04:22:54.000Z","dependencies_parsed_at":"2025-06-05T07:05:10.776Z","dependency_job_id":"d5fe5127-fc8d-4211-b7a1-f08e384346e4","html_url":"https://github.com/amccairel/moving_average_cli","commit_stats":null,"previous_names":["amccairel/moving_average_cli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amccairel/moving_average_cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccairel%2Fmoving_average_cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccairel%2Fmoving_average_cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccairel%2Fmoving_average_cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccairel%2Fmoving_average_cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amccairel","download_url":"https://codeload.github.com/amccairel/moving_average_cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amccairel%2Fmoving_average_cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259914924,"owners_count":22931334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","cpp20","csv","moving-average","ohlcv-data"],"created_at":"2025-06-15T03:15:38.934Z","updated_at":"2025-06-15T03:15:39.573Z","avatar_url":"https://github.com/amccairel.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moving Average CLI\n\nA high-performance command-line application written in C++ for processing historical stock price data (Open High Low Close format) and computing various types of moving averages. Designed with modularity and extensibility in mind, this project supports flexible user input, multiple moving average types, and future enhancements like terminal indicators.\n\n---\n\n## 🚀 Features\n\n- ⚙️ **Flexible CLI Configuration**: Use `cxxopts` to specify input/output files, window sizes, and moving average types.\n- 📈 **Supports Multiple Moving Averages**:\n    - Simple Moving Average (SMA)\n    - Exponential Moving Average (EMA)\n    - Weighted Moving Average (WMA)\n    - Additional indicators in progress \n- 🗃️ **Clean CSV I/O**: Read and write stock data in standard CSV format for easy interoperability.\n- 🧠 **Extensible Design**: Add new technical indicators with minimal changes to core logic.\n---\n\n## 🛠️ Tech Stack\n\n- **C++20**: Core language\n- **cxxopts**: Command-line argument parsing\n- **CMake**: Build system\n- **CSV**: Input/output format\n\n---\n\n## 📦 Usage\n\n### Compile the app:\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n```\n### Run the CLI tool:\n\n```bash\n./moving_average_cli --input path/to/stock-history.csv --output path/to/output.csv --type ema --window 12 --type ema --window 26\n```\nOr you can use shorthand notation:\n```bash\n./moving_average_cli -i path/to/stock-history.csv -o path/to/output.csv -t ema -w 12 -t ema -w 26 -t sma -w 10 -t sma -w 20\n```\n\n### Example Input (CSV)\n```csv\nDate,Open,High,Low,Close,Volume,Dividends,Stock Splits\n2024-05-17 00:00:00-04:00,188.62783545187153,189.92178705781208,188.29936976198016,188.9861602783203,41282900,0.0,0.0\n2024-05-20 00:00:00-04:00,188.44869465688268,191.02663488992152,188.1301769262196,190.15072631835938,44361300,0.0,0.0\n2024-05-21 00:00:00-04:00,190.20049107683238,191.83285642957057,190.03128423275254,191.4546356201172,42309400,0.0,0.0\n2024-05-22 00:00:00-04:00,191.37501623979523,191.92245910983817,189.38432593982932,190.01138305664062,34648500,0.0,0.0\n2024-05-23 00:00:00-04:00,190.09099161364105,190.11090276702717,185.76124979940406,186.0100860595703,51005900,0.0,0.0\n2024-05-24 00:00:00-04:00,187.94106857836448,189.6928704821682,187.16468542966413,189.0956573486328,36294600,0.0,0.0\n```\n\n### Example Output\n```csv\nDate,ema_12,ema_26,sma_10,sma_20\n2024-05-17 00:00:00-04:00,188.986,188.986,188.986,188.986\n2024-05-20 00:00:00-04:00,189.165,189.072,189.568,189.568\n2024-05-21 00:00:00-04:00,189.518,189.249,190.197,190.197\n2024-05-22 00:00:00-04:00,189.594,189.305,190.151,190.151\n2024-05-23 00:00:00-04:00,189.042,189.061,189.323,189.323\n2024-05-24 00:00:00-04:00,189.05,189.064,189.285,189.285\n```\n\n## Contributing\nSuggestions, pull requests, and bug reports are welcome.\n\n## License\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccairel%2Fmoving_average_cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famccairel%2Fmoving_average_cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famccairel%2Fmoving_average_cli/lists"}