Skip to content

Commit 1da83bf

Browse files
committed
docs: add README, CONTRIBUTING, LICENSE
1 parent d2bc14d commit 1da83bf

File tree

3 files changed

+117
-48
lines changed

3 files changed

+117
-48
lines changed

CONTRIBUTING.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Contributing to Stochastix
2+
3+
First off, thank you for considering contributing to Stochastix! It's people like you that make open source such a great community.
4+
5+
## How Can I Contribute?
6+
7+
### Reporting Bugs
8+
9+
If you find a bug, please ensure the bug was not already reported by searching on GitHub under [Issues](https://github.com/phpquant/stochastix-ui/issues).
10+
11+
If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/phpquant/stochastix-ui/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample or an executable test case** demonstrating the expected behavior that is not occurring.
12+
13+
### Suggesting Enhancements
14+
15+
Enhancement suggestions are tracked as [GitHub issues](https://github.com/phpquant/stochastix-ui/issues). Create an issue on that repository and describe the enhancement you would like to see, why it would be useful, and any implementation ideas you may have.
16+
17+
### Pull Request Process
18+
19+
1. Fork the repository and create your branch from `master`.
20+
2. If you've added code that should be tested, add new tests.
21+
3. Issue that pull request!
22+
23+
## Coding Standards
24+
25+
This project doesn't enforce coding standards yet. However, here are some general guidelines to follow:
26+
- use only the composition API syntax in components or pinia stores
27+
- use `script setup` syntax in components
28+
- the template tag should be the first tag in a component, followed by the script tag
29+
- use PascalCase for component names and filenames

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 William Arin
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 67 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,94 @@
1-
# Nuxt Minimal Starter
1+
# Stochastix UI
22

3-
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
3+
**Stochastix UI** is the official frontend for the [Stochastix](https://github.com/phpquant/stochastix-core) quantitative trading backtesting framework. It is a modern, fully-featured Single Page Application (SPA) built with Nuxt 3, providing a rich, interactive graphical user interface to configure, launch, and analyze backtesting results generated by the core engine.
44

5-
## Setup
5+
This application is designed to run locally, communicating with a running instance of the `stochastix-core` backend via its REST API.
66

7-
Make sure to install dependencies:
7+
## Features
88

9-
```bash
10-
# npm
11-
npm install
12-
13-
# pnpm
14-
pnpm install
9+
- **Dynamic Backtest Configuration**: Launch new backtests by selecting from available strategies and configuring their unique parameters through a dynamically generated form.
10+
- **Comprehensive Results Visualization**: Dive deep into backtest performance with detailed reports and visualizations.
11+
- **Performance Summaries**: At-a-glance overview of key metrics like PnL, win rate, and total trades.
12+
- **Detailed Statistics**: In-depth tables for pair-by-pair performance, entry/exit tag analysis, and a full breakdown of over 20 summary metrics (Sharpe, Sortino, Drawdown, etc.).
13+
- **Visual Analysis Plots**: Interactive charts for Equity/Drawdown curves, and rolling Alpha/Beta plots against the benchmark.
14+
- **Interactive Candlestick Charts**: Visualize trades and open positions directly on the price chart, complete with overlay and pane-based indicators.
15+
- **Full Trade History**: A complete log of all closed and open positions for granular review.
16+
- **Real-Time Progress**: Monitor backtest and data download progress in real-time with progress bars connected to the backend via Mercure streams.
17+
- **Data Management**:
18+
- **Local Data Overview**: View all locally available market data, sorted by symbol and timeframe.
19+
- **Data Downloader**: An interface to queue new market data downloads from supported exchanges, with sequential processing to respect rate limits.
20+
- **Dataset Inspector**: Validate data integrity by inspecting files for gaps, duplicates, or out-of-order records, and view file metadata and data samples.
21+
- **Responsive Design**: A clean, modern UI that works seamlessly on both desktop and mobile devices.
1522

16-
# yarn
17-
yarn install
23+
## Documentation
1824

19-
# bun
20-
bun install
21-
```
25+
For the latest official documentation, visit the [Stochastix Documentation](https://phpquant.github.io/stochastix-docs).
2226

23-
## Development Server
27+
## Tech Stack
2428

25-
Start the development server on `http://localhost:3000`:
29+
- **Framework**: [Nuxt 3](https://nuxt.com/)
30+
- **Language**: [TypeScript](https://www.typescriptlang.org/)
31+
- **UI Library**: [Nuxt UI](https://ui.nuxt.com/)
32+
- **State Management**: [Pinia](https://pinia.vuejs.org/)
33+
- **Charting**: [TradingView Lightweight Charts](https://www.tradingview.com/lightweight-charts/)
34+
- **Validation**: [Zod](https://zod.dev/)
35+
- **Internationalization**: [@nuxtjs/i18n](https://i18n.nuxtjs.org/)
36+
- **Icons**: [@nuxt/icon](https://icon.nuxt.com/)
2637

27-
```bash
28-
# npm
29-
npm run dev
38+
## Prerequisites
3039

31-
# pnpm
32-
pnpm dev
40+
1. **Node.js**: Version 24 or higher.
41+
2. **Stochastix Core Backend**: A running instance of the `stochastix-core` application is required for the UI to function.
42+
## Installation
3343

34-
# yarn
35-
yarn dev
44+
1. Clone the repository:
3645

37-
# bun
38-
bun run dev
39-
```
46+
```bash
47+
git clone https://github.com/phpquant/stochastix-ui.git
48+
cd stochastix-ui
49+
```
4050

41-
## Production
51+
2. Install the dependencies:
4252

43-
Build the application for production:
53+
```bash
54+
npm install
55+
```
4456

45-
```bash
46-
# npm
47-
npm run build
57+
## Configuration
4858

49-
# pnpm
50-
pnpm build
59+
The Nuxt UI needs to know the location of the `stochastix-core` API. This is configured via an environment variable.
5160

52-
# yarn
53-
yarn build
61+
Create a `.env` file in the root of the project:
5462

55-
# bun
56-
bun run build
63+
```env
64+
# Example: If your backend is running on http://localhost:8000
65+
NUXT_API_BASE_SERVER=http://localhost:8000
5766
```
5867

59-
Locally preview production build:
68+
When using the provided Docker setup, this variable is automatically set in the `compose.yaml` file to point to the `php` service container.
69+
70+
## Development
71+
72+
To start the development server with hot-reloading on `http://localhost:3000`:
6073

6174
```bash
62-
# npm
63-
npm run preview
75+
npm run dev
76+
```
6477

65-
# pnpm
66-
pnpm preview
78+
The application will proxy API requests from `/api` to the backend URL specified in `NUXT_API_BASE_SERVER`.
6779

68-
# yarn
69-
yarn preview
80+
## Production
7081

71-
# bun
72-
bun run preview
82+
To build the application for production:
83+
84+
```bash
85+
npm run generate
86+
```
87+
88+
To preview the production build locally:
89+
90+
```bash
91+
npx serve ./output/public
7392
```
7493

75-
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
94+
For more information, see the [Nuxt Deployment Documentation](https://nuxt.com/docs/getting-started/deployment).

0 commit comments

Comments
 (0)