{"id":36806085,"url":"https://github.com/milliyang/noise","last_synced_at":"2026-01-12T13:39:50.099Z","repository":{"id":63365310,"uuid":"567326456","full_name":"milliyang/noise","owner":"milliyang","description":"A Backtest or Trading Framework with C++","archived":false,"fork":false,"pushed_at":"2025-10-23T10:28:25.000Z","size":16951,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-23T12:27:39.647Z","etag":null,"topics":["algo-trading","algorithmic-trading","backtest","backtesting","backtesting-engine","backtesting-frameworks","timeseries-analysis","trading","trading-strategies"],"latest_commit_sha":null,"homepage":"https://github.com/milliyang/noise","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/milliyang.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-11-17T14:55:40.000Z","updated_at":"2025-10-23T10:28:31.000Z","dependencies_parsed_at":"2025-10-23T12:16:09.139Z","dependency_job_id":"a7afd267-2351-4cdc-891f-1f8e28c3c3c1","html_url":"https://github.com/milliyang/noise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/milliyang/noise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milliyang%2Fnoise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milliyang%2Fnoise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milliyang%2Fnoise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milliyang%2Fnoise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milliyang","download_url":"https://codeload.github.com/milliyang/noise/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milliyang%2Fnoise/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28339306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["algo-trading","algorithmic-trading","backtest","backtesting","backtesting-engine","backtesting-frameworks","timeseries-analysis","trading","trading-strategies"],"created_at":"2026-01-12T13:39:49.509Z","updated_at":"2026-01-12T13:39:50.086Z","avatar_url":"https://github.com/milliyang.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Noise\n=====\nA Backtest or Trading Framework with C++\n\n\nWhy invent the wheel ?\n------------\n* Inspired by [backtesting.py](https://kernc.github.io/backtesting.py)\n* Not invent, just rewrite it in another way\n* Need a simpler, faster, ease of replace component framework\n\n\nFeatures\n--------\n* Simple, no-documented API / structure\n* Composable Strategies / Broker / Feed / Ploting\n* Support different ways of Backtest (SimpleBroker/BrokerMuxer/EventDriven/PreProcessed)\n* Cheap Backtest Result\n* Cheap Visualization\n* Cheap TA-Lib\n\nRequirements\n------------\n- OpenMP [Optional]     maximize 48+ Cores to run\n- Qt [Optional]         for GUI ploting\n- GCC\n- CMAKE\n- 3rd in: noise/3rd\n    - [fmt](https://github.com/fmtlib/fmt)\n    - [spdlog](https://github.com/gabime/spdlog)\n    - [args](https://github.com/Taywee/args)\n    - [inih](https://github.com/benhoyt/inih)\n    - [Armadillo](https://arma.sourceforge.net)\n    - [glob](https://github.com/p-ranav/glob)\n    - [hdf5](https://github.com/HDFGroup/hdf5) \u0026 [HighFive](https://github.com/BlueBrain/HighFive)\n\n\nBuild on Linux\n--------------\n```sh\n    cd noise\n    mkdir build \u0026\u0026 cd build\n    cmake ..\n    make \u0026\u0026 ./bt\n```\n\nUsage\n-----\n```sh\n    make \u0026\u0026 ./bt\n```\n\nResults in:\n\n```text\n[Stat] summary:\n  Start                      [YYYMMDD] 20180102\n  End                        [YYYMMDD] 20180213\n  Duration                       [days]     112\n  Exposure Time                      [%]  99.11\n  Equity Final                  [$]    +6277.18\n  Equity Peak                   [$]   +10109.52\n  PNL                           [$]    -3722.82\n  Return                             [%] -37.23\n  Buy \u0026 Hold Return                  [%]  -8.54\n  Return (Ann.)                      [%]   0.00 TBD\n  Volatility (Ann.)                  [%]   0.00 TBD\n  Sharpe Ratio                             0.00 TBD\n  Max. Drawdown                      [%]   0.00 TBD\n  Avg. Drawdown                      [%]   0.00 TBD\n  Max. Drawdown Duration         [days]    0.00 TBD\n  Avg. Drawdown Duration         [days]    0.00 TBD\n  Trades                                     57\n  Win Rate                           [%]  35.09\n  Avg. Trade                         [%]  -3.99\n  Best. Trade                        [%]  11.11\n  Wors. Trade                        [%] -17.50\n  Best. Trade on PNL             [$]     +40.85\n  Wors. Trade on PNL             [$]    -246.01\n  Max. Trade Duration           [days]   108.00\n  Avg. Trade Duration           [days]    51.63\n  SQN                                     -5.53\n\n[main] time elapsed: 12.594399 ms\n```\n\nFind more usage examples in dir noise/sample/\n\nBuild on Windows with GUI Ploting\n--------------\n```sh\n    cd noise\n    mkdir build \u0026\u0026 cd build\n    cmake ../sample\n    MSBuild.exe noise.sln           # require VisualStudio\n    .\\Debug\\cd.exe\n```\n![output_image](https://raw.githubusercontent.com/milliyang/noise/main/data/qplot.png)\n\nContibutes\n----------\n- Always welcomed ( Feature or Bugfix or Unitest )\n- Platform Independent\n- Simple is the most important thing. No heavy / fancy code. Not much 3rd library I Hope...\n- Keep less code\n\nFinal\n-----\n* No Lisence, or [UnLisence](https://unlicense.org/)\n* Thanks to [Github](https://github.com/), [kernc](https://github.com/kernc)\n* Again, Inspired by [backtesting.py](https://kernc.github.io/backtesting.py)\n\n\nAdditional Remarks\n------------------\n* I did try not to include too much third-party library. But as project went on, they grows ...\n* Some are just tiny cpp header-only:\n    - [fmt](https://github.com/fmtlib/fmt)\n    - [spdlog](https://github.com/gabime/spdlog)\n    - [args](https://github.com/Taywee/args)\n    - [inih](https://github.com/benhoyt/inih)\n\n* Some made it easier for me to do unitest, math calculation\n    - [Armadillo](https://arma.sourceforge.net)\n    - [Eigen](https://gitlab.com/libeigen/eigen)\n    - [glob](https://github.com/p-ranav/glob) \u0026 [filesystem](https://github.com/gulrak/filesystem)\n\n* Some help to speed up backtesting for large dataset:\n    - [hdf5](https://github.com/HDFGroup/hdf5) \u0026 [HighFive](https://github.com/BlueBrain/HighFive)\n\n* They may have diff Lisences ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilliyang%2Fnoise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilliyang%2Fnoise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilliyang%2Fnoise/lists"}