Files
managing-apps/README.md
2024-05-03 16:39:25 +05:00

130 lines
4.7 KiB
Markdown

# Introduction
Managing App is a bot management application written using C# and Typescript. First goal was to be able to run an infinite
number of Bot without any limitations (will depend on your server capabilities only)
It is designed to support multiples exchanges and be controlled via webUI or Discord.
It contains bot management, backtesting, scenario management and money management..
---
# Roadmap
## v1 - The base
- [x] Bot management
- [x] Backtesting
- [x] MoneyManagement
- [x] Strategies systems
- [x] WebUI
- [x] Robust trading management
- [x] Adaptive trading
- [x] Account management
- [x] Workers (prices, backtests, volumes)
## v2 - The custody back
- [x] Web3 Authentification
- [x] Hot-wallets management
- [x] Chainlink and Subgraphs feeds
- [x] [GMX Contracts integration](https://gmx.io/)
### v2.1
- [x] Tools : RektFees, Spotlight
- [ ] Address tracking
- [ ] Strategies optimisation
- [ ] Trading desk
- [ ] Metrics (backtests, portofolio)
- [ ] Enhance performances
- [ ] Dockerize everything
### v2.2
- [ ] Hedging Bot with Options [HegicOption](https://www.hegic.co/)
- [ ] Market making
## v3 - The bitcoin protocol
- [ ] Integrate [LNMarkets](https://lnmarkets.com/)
## v4 - The omnipotence
- [ ] Connect to [Blockstream Satellite](https://blockstream.com/satellite/)
# Stack
## Architecture
![alt text](assets/img/Architecture.png)
## Front-end
- [Vite.JS](https://vitejs.dev/)
- [Tailwindcss](https://tailwindcss.com/)
- [Daisy UI](https://daisyui.com/)
- [HeroIcon](https://heroicons.com/)
- [Toastify](https://fkhadra.github.io/react-toastify/introduction)
- [Tradingview Lightweight-charts](https://github.com/tradingview/lightweight-charts)
- [Ploty](https://github.com/plotly/react-plotly.js)
- [SignalR](https://github.com/dotnet/aspnetcore/tree/main/src/SignalR#readme)
- [Wagmi](https://wagmi.sh/)
- [Connectkit](https://github.com/family/connectkit)
## Back-end
- .NET 7
- [SignalR](https://dotnet.microsoft.com/en-us/apps/aspnet/signalr)
- [Discord.Net](https://github.com/discord-net/Discord.Net)
- [CryptoExchange.Net](https://github.com/JKorf/CryptoExchange.Net)
- [Stock Indicators](https://daveskender.github.io/Stock.Indicators/)
- [InfluxDb](https://github.com/influxdata/influxdb-client-csharp)
- [Nethereum](https://github.com/Nethereum/Nethereum)
---
# Features
## Money Management
- Create a defined money management for a given timeframe (StopLoss, TakeProfit, Amount to risk)
- Edit a money management configuration
- Delete a configuration
## Strategies
- Build a strategy
- Delete strategy
Strategies availables :
| Strategy | Description | Recommanded values |
| ----------- | ----------- | ----------- |
| RsiDivergence | Trigger a signal when a divergence occurs on the period | Period : 4 for 6|
| RsiDivergenceConfirm | First, detect a divergence and trigger a signal when the divergence is confirmed. The confirmation happen for a LONG when the price close above the candle in divergence. The loopback period is based on the period parameter. | Period : 4 for 6|
| MACDCross | Trigger a signal when EMAs cross | FastPeriod : 12, SlowPeriods : 26, SignalPeriods : 9|
| SuperTrend | Trigger a SHORT signal when previous candle is above the super trend and the last candle close below the super trend | Period : 10, Multiplier : 3 |
| ChandelierExit | Trigger a SHORT signal when previous candle is above the ChandelierExit and the last candle close below the ChandelierExit | Period : 22, Multiplier : 3 |
| EMACross | Trigger a signal when last candle cross the EMA | Period : 200 |
| EMATrend | Return a Trend signal SHORT when last candle is below the EMA and return a Trend LONG signal when StochRSI < 20% | Period : 200 |
| StochRsiTrend | Return a Trend signal SHORT when Stoch RSI > 80% and return a Trend LONG signal when StochRSI < 20% | Period : 22 |
| STC | Return a signal SHORT when previous STC > 75% and current STC <= 75% | Period : 22 |
## Scenarios
- Build a scenario with multiple strategies
- Delete a scenario
## Backtests
The backtest system works with multiple required parameters :
- Exchange (Binance, Kraken, FTX)
- Ticker (ADAUSDT, BTCUSDT, etc..)
- Days : Since when did you want to start backtest. Should be a negative value
- ScenarioName
- Timeframe (OneDay, FifteenMinutes, etc..)
- BotType (ScalpingBot or FlippingBot)
- Initial balance
## Bots
- Create and run a bot
- Stop / Restart a bot
- Delete a bot
- Stop all bots
- Set bot to watch only (send signal to discord instead of opening a new position)
Bot types availables :
| Type | Description |
| ----------- | ----------- |
| ScalpingBot | This bot will open position and wait before opening a new one |
| FlippingBot | The flipping bot flipping the position only when a strategy trigger an opposite signal |