{"id":25929821,"url":"https://github.com/jozefrudy/trading-rule-parser","last_synced_at":"2026-05-12T19:36:38.365Z","repository":{"id":280201023,"uuid":"940706038","full_name":"jozefRudy/trading-rule-parser","owner":"jozefRudy","description":"Trading DSL with real-time TypeScript validation and AST parsing","archived":false,"fork":false,"pushed_at":"2025-03-01T23:01:57.000Z","size":253,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T23:26:06.699Z","etag":null,"topics":["angular","ast-parser","codemirror6","f-sharp","fparsec","strategy-validation","trading-dsl","trading-strategies","typescript"],"latest_commit_sha":null,"homepage":"https://cryptoquant.dev","language":"TypeScript","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/jozefRudy.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}},"created_at":"2025-02-28T16:40:52.000Z","updated_at":"2025-03-01T23:02:00.000Z","dependencies_parsed_at":"2025-03-01T23:37:40.612Z","dependency_job_id":null,"html_url":"https://github.com/jozefRudy/trading-rule-parser","commit_stats":null,"previous_names":["jozefrudy/trading-rule-parser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jozefRudy%2Ftrading-rule-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jozefRudy%2Ftrading-rule-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jozefRudy%2Ftrading-rule-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jozefRudy%2Ftrading-rule-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jozefRudy","download_url":"https://codeload.github.com/jozefRudy/trading-rule-parser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241753170,"owners_count":20014251,"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":["angular","ast-parser","codemirror6","f-sharp","fparsec","strategy-validation","trading-dsl","trading-strategies","typescript"],"created_at":"2025-03-03T23:00:15.764Z","updated_at":"2026-05-12T19:36:38.318Z","avatar_url":"https://github.com/jozefRudy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Code parser example used by [cryptoquant](https://cryptoquant.dev) in v1.\n\nIt consists of `angular` frontend app with `codemirror6` code editor with live `typescript` intellisense served on frontend.\nTrading DSL is a subset of typescript. Only valid typescript after validating on frontend is sent to backend.\n\nBackend contains AST and AST parser in `f#` that validates strategy received from frontend. \nThere is an indication below code editor on frontend showing if strategy is valid (it is valid only if it's valid typescript and was validated by backend as well).\n\nTo run this, you need both `pnpm` and `dotnet 9`. Ports are pre-configured in both services `3000` for frontend and `3001` for backend.\n\n```bash frontend\ncd frontent-angular\npnpm start\n```\n\n```bash backend\ncd backend-parser/api\ndotnet run\n```\n\n![output](https://github.com/user-attachments/assets/f59fa372-2483-48ce-b166-659f23c4922d)\n\nEditor expects these variables to be defined: `entry`, `exit`, `universe`, `name`, `start`, `mode`.\n\nFor development I recommend opening both projects in the same editor, jetbrains rider works well for this.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjozefrudy%2Ftrading-rule-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjozefrudy%2Ftrading-rule-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjozefrudy%2Ftrading-rule-parser/lists"}