README.md aktualisiert
This commit is contained in:
parent
93ab9eb092
commit
17b3c46960
97
README.md
97
README.md
|
|
@ -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.
|
||||
Loading…
Reference in New Issue