{"id":20932843,"url":"https://github.com/piotr-yuxuan/welcome-base-api","last_synced_at":"2026-03-07T06:32:00.274Z","repository":{"id":37395846,"uuid":"342065098","full_name":"piotr-yuxuan/welcome-base-api","owner":"piotr-yuxuan","description":"Common idioms, tools, and code structures for an API","archived":false,"fork":false,"pushed_at":"2026-01-28T09:54:40.000Z","size":16148,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-29T01:14:39.415Z","etag":null,"topics":["api","clojure","example","exchange","finance","fintech","market","stock-markets","stock-trading","trading-systems","trading-tasks"],"latest_commit_sha":null,"homepage":"https://github.com/piotr-yuxuan/welcome-base-api","language":"Clojure","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/piotr-yuxuan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS.yml","security":".github/SECURITY.md","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},"funding":{"github":["piotr-yuxuan"]}},"created_at":"2021-02-24T23:32:08.000Z","updated_at":"2026-01-28T19:00:44.000Z","dependencies_parsed_at":"2023-09-29T21:12:13.171Z","dependency_job_id":"61ae20df-156f-4ead-ace3-e7341957cb7a","html_url":"https://github.com/piotr-yuxuan/welcome-base-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/piotr-yuxuan/welcome-base-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotr-yuxuan%2Fwelcome-base-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotr-yuxuan%2Fwelcome-base-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotr-yuxuan%2Fwelcome-base-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotr-yuxuan%2Fwelcome-base-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotr-yuxuan","download_url":"https://codeload.github.com/piotr-yuxuan/welcome-base-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotr-yuxuan%2Fwelcome-base-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30209086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T05:23:27.321Z","status":"ssl_error","status_checked_at":"2026-03-07T05:00:17.256Z","response_time":53,"last_error":"SSL_read: 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":["api","clojure","example","exchange","finance","fintech","market","stock-markets","stock-trading","trading-systems","trading-tasks"],"created_at":"2024-11-18T21:53:32.451Z","updated_at":"2026-03-07T06:32:00.252Z","avatar_url":"https://github.com/piotr-yuxuan.png","language":"Clojure","funding_links":["https://github.com/sponsors/piotr-yuxuan"],"categories":[],"sub_categories":[],"readme":"# welcome-base-api\n\n[![Build status](https://img.shields.io/github/workflow/status/piotr-yuxuan/welcome-base-api/Walter%20CD)](https://github.com/piotr-yuxuan/welcome-base-api/actions/workflows/walter-cd.yml)\n[![GitHub license](https://img.shields.io/github/license/piotr-yuxuan/welcome-base-api)](https://github.com/piotr-yuxuan/welcome-base-api/blob/main/LICENSE)\n[![GitHub issues](https://img.shields.io/github/issues/piotr-yuxuan/welcome-base-api)](https://github.com/piotr-yuxuan/welcome-base-api/issues)\n\n![Non-figurative picture](./doc/social-preview.jpg)\n\nSimple trading market place with arbitrary arithmetic precision\ncomputations, with an emphasis on tooling.\n\n- Build a simple simulation of stock exchanges;\n- Derive metadata such as metrics, indicators, and signals;\n- Use these metadata to inform trade strategies;\n- Show cycles of bank accounts creating artificial transaction volume.\n\nDisclaimer: my financial vocabulary is still very naive. But still, it\nshould allow to express some nice problems to solve :-)\n\n## Features\n\n- System desired features:\n  - Horizontally scalable, and manage up to 20 years worth\n    of data with no issues\n  - Allow time travel\n  - Be reasonably fast and efficient, but not necessary hard real time\n    for analytics\n  - Exposes robust, secure, well-documented RESTful API that is\n    enjoyable to use and unsurprising.\n- [Indicators to\n  compute](https://www.investopedia.com/articles/active-trading/041814/four-most-commonlyused-indicators-trend-trading.asp):\n  - [CAC40 index](https://en.wikipedia.org/wiki/CAC_40)\n  - Moving averages (pre-defined at first, and then any sliding windows)\n  - Exponential moving average (emphasis put on recent prices)\n  - Detect trading range (a more or less narrow price range in which\n    a security trades for some time)\n  - Buy and sell signals (relative position of 200-day and 50-day\n    moving averages)\n  - [Volatility](https://en.wikipedia.org/wiki/Volatility_(finance))\n  - Client sentiment (the proportion selling or buying)\n- Query features:\n  - Historical, Godlike value, knowing everything anyywhere\n  - As with the knowledge of some specific trader as of some (consume)\n    time\n\n# Entities and verbs\n\n- An\n  [exchange](https://en.wikipedia.org/wiki/Exchange_(organized_market))\n  is an organized market where securities are bought and sold.\n- An [order\n  matcher](https://en.wikipedia.org/wiki/Order_matching_system)\n  executes orders, it's the core of the exchange.\n- A [security](https://en.wikipedia.org/wiki/Security_(finance)) is a\n  tradable financial asset.\n- The [spot market](https://en.wikipedia.org/wiki/Spot_market) is\n  exchanges in which securities are traded for immediate delivery, not\n  as options.\n- [Market\n  capitalisation](https://en.wikipedia.org/wiki/Market_capitalization)\n  is the total value of outstanding shares\n- Accounts\n- Dividends\n- A\n  [ticker](https://www.londonstockexchange.com/help/whats-ftse-index-overview#what-is-ticker-)\n- https://medium.com/lgogroup/a-matching-engine-for-our-values-part-1-795a29b400fa\n- https://blog.kaiko.com/tick-level-order-books-technical-overview-and-documentation-56b1ab6e7c10\n- See FIX protocol https://github.com/alexkachanov/simpleFIXClient\n\n# Local definitions\n\n- Companies are listed on some exchanges\n- Companies issues shares and distribute dividends\n- An exchange gets fees on listing and transactions\n- An exchange can suspend listing of a company share if the sell / buy\n  ratio becomes too imbalanced\n- Traders buy or sell shares, and get fees for that\n- Shareholders receive dividends from the company\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotr-yuxuan%2Fwelcome-base-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiotr-yuxuan%2Fwelcome-base-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotr-yuxuan%2Fwelcome-base-api/lists"}