39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
## Purpose:
|
|
The app is designed for automated cryptocurrency trading based on user-defined trading strategies.
|
|
|
|
## Markets:
|
|
The app will focus on trading cryptocurrencies.
|
|
|
|
## Trading Strategies:
|
|
Users will manually define trading strategies using a Domain-Specific Language (DSL) consisting of three parts: input, conditions, and actions.
|
|
- Input: Users can define inputs such as the price of a cryptocurrency or moving averages.
|
|
- Conditions: Users can specify conditions (e.g., "drops below 30000," "raises above 60000") that trigger actions. Conditions can be combined using AND and OR operators.
|
|
- Actions: Actions can include opening/closing positions, pausing/starting a trading strategy, or setting variables.
|
|
|
|
## Web Interface:
|
|
A web interface will allow users to create and manage trading strategies.
|
|
The DSL will be used within the web interface for defining strategies.
|
|
|
|
## Database:
|
|
RethinkDB will be used as the database for storing strategy data.
|
|
|
|
## Backend:
|
|
- Written in Python, with a focus on functional programming using pure functions.
|
|
- Backend will consist of small, manageable parts.
|
|
- No reliance on large frameworks or libraries.
|
|
|
|
## Frontend:
|
|
- The frontend will use simple HTML elements.
|
|
- Business logic will primarily reside in the backend.
|
|
- Minimal JavaScript for display purposes.
|
|
- Styling will be based on FlatUI from Microsoft or MaterialUI.
|
|
|
|
## Security and Authentication:
|
|
- Initially open for local use, with plans to add WebAuthn authentication for access.
|
|
- Exchange API keys will be stored securely in browser sessions.
|
|
|
|
## Communication:
|
|
A stateless REST API will facilitate communication between the frontend and backend.
|
|
|
|
## Modularity and Clean Code:
|
|
The app should be modular and follow clean code guidelines. |