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: ## Functional Requirements:
The app is designed for automated cryptocurrency trading based on user-defined trading strategies.
## Markets: ### Strategy Configuration:
The app will focus on trading cryptocurrencies. Users can create trading strategies via a web interface.
Strategies consist of conditions and associated actions.
Condition Configuration:
## Trading Strategies: Conditions are triggered based on price movements of specified trading pairs.
Users will manually define trading strategies using a Domain-Specific Language (DSL) consisting of three parts: input, conditions, and actions. Users define target price levels and directions (up to down or down to up) for each condition.
- Input: Users can define inputs such as the price of a cryptocurrency or moving averages. Conditions can enable/disable each other.
- 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: ### Action Configuration:
A web interface will allow users to create and manage trading strategies. Actions are executed when conditions are met.
The DSL will be used within the web interface for defining strategies. 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: ### Sequence Management:
RethinkDB will be used as the database for storing strategy data. Define a sequence of conditions and actions to execute a complete trading strategy.
Actions can be triggered based on condition outcomes.
## Backend: ### Stop-Loss and Take-Profit:
- Written in Python, with a focus on functional programming using pure functions. Specify stop-loss and take-profit percentages for risk management.
- Backend will consist of small, manageable parts. Stop-loss triggered upon reaching a specified percentage loss.
- No reliance on large frameworks or libraries. Take-profit triggers position closure upon reaching a specified price level.
## Frontend: ### API Key Management:
- The frontend will use simple HTML elements. Users can input and update their Bybit API keys from the web interface.
- Business logic will primarily reside in the backend. Notifications prompt users to update API keys close to expiration.
- Minimal JavaScript for display purposes.
- Styling will be based on FlatUI from Microsoft or MaterialUI.
## Security and Authentication: ### Real-time Monitoring and Recovery:
- Initially open for local use, with plans to add WebAuthn authentication for access. Real-time monitoring system tracks the status of running strategies.
- Exchange API keys will be stored securely in browser sessions. Strategies automatically recover and replay missed changes after a temporary connection loss.
Logs record missed events during connection loss for troubleshooting.
## Communication: ### Web Interface:
A stateless REST API will facilitate communication between the frontend and backend. 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: ### Strategy Blueprint Creation:
The app should be modular and follow clean code guidelines. 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.