README.md aktualisiert

This commit is contained in:
null 2024-02-09 12:29:45 +00:00
parent 93ab9eb092
commit 17b3c46960
1 changed files with 67 additions and 30 deletions

View File

@ -1,39 +1,76 @@
## Purpose:
The app is designed for automated cryptocurrency trading based on user-defined trading strategies.
## Functional Requirements:
## Markets:
The app will focus on trading cryptocurrencies.
### Strategy Configuration:
Users can create trading strategies via a web interface.
Strategies consist of conditions and associated actions.
Condition Configuration:
## 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.
Conditions are triggered based on price movements of specified trading pairs.
Users define target price levels and directions (up to down or down to up) for each condition.
Conditions can enable/disable each other.
## 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.
### Action Configuration:
Actions are executed when conditions are met.
Users specify actions such as placing market orders, enabling/disabling conditions, and closing positions.
Users can specify the exchange where orders will be placed (e.g., Bybit).
## Database:
RethinkDB will be used as the database for storing strategy data.
### Sequence Management:
Define a sequence of conditions and actions to execute a complete trading strategy.
Actions can be triggered based on condition outcomes.
## 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.
### Stop-Loss and Take-Profit:
Specify stop-loss and take-profit percentages for risk management.
Stop-loss triggered upon reaching a specified percentage loss.
Take-profit triggers position closure upon reaching a specified price level.
## 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.
### API Key Management:
Users can input and update their Bybit API keys from the web interface.
Notifications prompt users to update API keys close to expiration.
## 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.
### Real-time Monitoring and Recovery:
Real-time monitoring system tracks the status of running strategies.
Strategies automatically recover and replay missed changes after a temporary connection loss.
Logs record missed events during connection loss for troubleshooting.
## Communication:
A stateless REST API will facilitate communication between the frontend and backend.
### Web Interface:
Intuitive web interface for strategy configuration and management.
Users can view a list of all strategies and their performance metrics.
Secure transmission of sensitive information (e.g., API keys) over the network.
## Modularity and Clean Code:
The app should be modular and follow clean code guidelines.
### Strategy Blueprint Creation:
Users can save trading strategies as blueprints for future use.
Blueprints store the configuration of conditions, actions, and sequence of a strategy.
### Blueprint Instances:
Users can create instances of saved blueprints for different trading pairs or price limits.
Instances inherit the configuration of the blueprint and can be customized as needed.
### Blueprint Management:
Users can view, edit, and delete saved strategy blueprints from the web interface.
Blueprints are organized for easy access and retrieval.
## Non-Functional Requirements:
### Reliability:
The software ensures uninterrupted operation even in the event of temporary connection loss.
Reliable execution of trading strategies based on specified conditions and actions.
### Security:
API keys are securely stored and transmitted using encryption techniques.
Access to sensitive information (e.g., API keys) is restricted to authorized users.
### Scalability:
The software is designed to accommodate future enhancements and scaling as the user base grows.
Performance remains consistent with an increasing number of concurrent users and strategies.
### Usability:
The web interface is user-friendly, allowing for easy strategy creation, configuration, and management.
Clear and intuitive navigation for users of varying levels of expertise.
### Compatibility:
Compatibility with the Bybit exchange API for seamless order execution.
The software supports popular web browsers for optimal accessibility.
### Maintainability:
The software is modular and well-documented, facilitating ease of maintenance and updates.
Codebase adheres to best practices and coding standards for maintainability.