docker files fixes from liaqat
This commit is contained in:
151
assets/Todo-v1.txt
Normal file
151
assets/Todo-v1.txt
Normal file
@@ -0,0 +1,151 @@
|
||||
Principals features :
|
||||
- Create X bots
|
||||
- Each Trading bot can have multiple strategies
|
||||
- Each Strategy is run for every new candle that the bot read from the database
|
||||
- Use exchange worker to retrieve candles for a ticker
|
||||
- Open one click a long with SL and 2 take profit with defined risk
|
||||
|
||||
V1 :
|
||||
|
||||
Part 1 : Running bot
|
||||
- OK - Create no relationnal database to store all tickers history by exchanges
|
||||
- OK - Feed the database with a Bot
|
||||
- OK - On Bot motherclass, create a method accessible to child to retrieve the last candle since a prompted date
|
||||
- OK - Create 3 Soldiers strategy
|
||||
- OK - Create rule "CloseHigherThanThePreviousHigh"
|
||||
- OK - Create rule "CloseLowerThanThePreviousLow"
|
||||
|
||||
Part 2 : Make a trade
|
||||
- OK - Implement a GetBalance with the value in $
|
||||
- OK - Calculate risk per for a given trade
|
||||
- OK - Open a Long with defined risk level and exchange
|
||||
- OK - Define and Open Stop loss with risk level
|
||||
- OK - Define and open 2 Take Profit with risk level
|
||||
- OK - Register generic candle for every exchanges in database
|
||||
- OK - Create an endpoint to retrieve all order (with a filter class)
|
||||
- OK - Create an endpoint to close an order for a given ExchangeOrderId
|
||||
- OK - Implement OpenMarketTrade for Binance Futures
|
||||
- OK - Implement GetPrice for Binance Futures
|
||||
- OK - Implement GetTrade for Binance Futures
|
||||
- OK - Binance : Handle TimeInForce for limit or market trade
|
||||
|
||||
Part 3 : Bot running RSI
|
||||
- OK - Create RSI for 32period
|
||||
- OK - Handle multiple divergence point for a candle range
|
||||
- OK - Create rule to find a divergence for given RSI -> Confidence.High
|
||||
- OK - Create an identifier for each bot based on name-datetime
|
||||
- OK - Save price into Signal Object
|
||||
|
||||
Part 3.1
|
||||
- OK - Each bot should be a manager keep in memory the trades executed and execute trade by calling openMarketPosition()
|
||||
- OK - Create a mother class call TradeManager
|
||||
- OK - This class should access to the signal return by the Scalping bot
|
||||
- OK - This class should handle the trade management
|
||||
- OK - Save Signals into database
|
||||
|
||||
Part 3.2 :
|
||||
- OK - Create a unit test to backtest the bot execution
|
||||
- OK - Get range candle list for a ticker
|
||||
- OK - Each bot should have a backtest mode. This mode allow the caller to insert his own candles into the list. This mode will be used by the unit tests
|
||||
- OK - Foreach candle, update the candle list of the bot and implicitly run all strategies
|
||||
|
||||
- OK - For each last signal for a ticker check if position is open. If not: Open position.
|
||||
- OK - If an position is already open, update the position and check the price and trigger a close/flip if there is an inversed signal for that position.
|
||||
- OK - If there is a inverted signal, close or flip the position depending of the confidence of the signal
|
||||
- OK - Create a collection for registering the position with pnl, status
|
||||
- OK - Save in trade table a reference to the position id, bot identifier
|
||||
- OK - Create class to calculate PNL
|
||||
- OK - openMarketPosition () should handle a parameter to make paper trading: just return the object that represent the trade executed by the exchange. That parameter will be set by bot in backtest mode
|
||||
- OK - Add function to reopen trade that wasnt filled or whatever
|
||||
- OK - Assert the fact that a list of positions have been created and ending in positive
|
||||
- OK - Fix timestamp unix for getting klines for OneMinutes timeframe
|
||||
- OK - Run bot on past candle
|
||||
- OK - Extract trading logic from Bot class, to create a (TradingBot : Bot) class.
|
||||
|
||||
Part 4:
|
||||
- Ok - Create RSIBearishDivergenceStrategy
|
||||
- OK - Move Risk level config into appsettings to manipulate easily the user preference
|
||||
- OK - Implement multi-timeframe to Define MoneyManagement for everyTimeFrame
|
||||
- OK - Handle little quantity for trade by multiplying the quantity inside pnl object
|
||||
- OK - Set the correct quantity for a trade who take profit #1
|
||||
- OK - Add more tests for ProfitAndLoss object
|
||||
- OK - Setup optionnal second take profit
|
||||
- OK - Create DailyBot and Minutes bot to handle 5 ans 14 periods rsi
|
||||
- OK - Run Bot for little TimeFrame
|
||||
- OK - Implement GetTrade for an OrderId on Binance
|
||||
- OK - Add discord connection
|
||||
- OK - Expose all the API on discord bot
|
||||
- OK - Run instance of bot for ADA, 5 periods, 15min
|
||||
- OK - Refactoring bots unit tests to use same method than discord bot
|
||||
- OK - Create CSV file for backtesting report
|
||||
|
||||
Part 5:
|
||||
- OK - Improve open position from discord
|
||||
- OK - Improve multi-risk levels handling
|
||||
- OK - Improve divergence signal by handeling confidence
|
||||
- OK - Implement ExchangeService.CloseTrade for exchanges
|
||||
|
||||
Part 6: webapp
|
||||
- OK - Build front-end app with react
|
||||
- OK - Build Tradingview component
|
||||
- Update trading bot from signalr for everynew run => pass the BotHubContext to ITradingbot interface
|
||||
- OK - Bots page to manage running bots
|
||||
- - OK - Create a modal to start a bot
|
||||
- - OK - On backtest page, display a button to start a bot based on defined backtest configuration
|
||||
- - Handle stop and restart
|
||||
- OK - Create scanner page to load all the ticker backtest base on a setup (timeframe, risk, day, bottype)
|
||||
- OK - Save backtestResult into database to display it into Scanner page
|
||||
- OK - Display backtest result on scanner page
|
||||
- Scenario builder => A component to build nested trading strategy https://www.kindacode.com/article/react-typescript-drag-and-drop/
|
||||
- - OK - Store scenario into database -> a scenario contain a list of defined strategy
|
||||
- - OK - Dynamically insert scenario into ITradingBot
|
||||
- - OK - Create a modal form to build a scenario that contains a list of strategies
|
||||
- - OK - On backtest page, retrieve scenario list to launch a backtest based on it
|
||||
|
||||
Part 7: Improve trading
|
||||
- OK - Handle fees
|
||||
- OK - Create strategy to send rsi div signal on confirmation only
|
||||
- OK - Make flipping position optionnal
|
||||
- OK - Candle mapped on the wrong time => 18h30 should be 18h15
|
||||
- KO - Enable backtesting on very long time range => No historical data more than 1500ohlc per timeframe on FTX
|
||||
|
||||
Part 8 : enhance front
|
||||
- Settings page =>
|
||||
- OK - Put money management into database to be able to modify it without rebuild/restart the api
|
||||
- OK - Create a tab page on settings page to easily update monymanagement in db
|
||||
- Improve card informations for bots
|
||||
- - OK - Display the signals count for long and short
|
||||
- - OK - Add button to toggle start and stop
|
||||
- - OK - Add a toggle for isWatchingOnly
|
||||
- OK - Add filter checkbox on Backtest/Moneymanagement to filter the list
|
||||
- OK - Create a button to delete all backtests
|
||||
- OK - Implement switch network debug/local
|
||||
|
||||
Part 9: Improve bot usage
|
||||
- Save bot config to database to re-run bot on restart
|
||||
- OK - Create endpoint to restart a bot
|
||||
- Ok - Create endpoint to stop all bots
|
||||
- OK - On signal, if a position is open => Same direction : expired signal | opposition direction : Flip open position
|
||||
- OK - Implement a flipping function on an open position
|
||||
- Ok - Track balance evolution to determine max drawdown
|
||||
- OK - Determine best parameter for a given scenario : https://www.youtube.com/watch?v=jm-UfVPqUQo (Start with a unit test)
|
||||
- OK - When a bot start up for a ticker, clean all limit order
|
||||
- OK - When a bot start up for a ticker, clean open position
|
||||
- OK - Before opening a trade clean limit order
|
||||
- OK - Get status of position before closing it. The position might be already close by the exchange
|
||||
|
||||
Part 10: Improve performance
|
||||
- OK - Calculate the strategies only on the last n*10 period
|
||||
- OK - Merge divergence RSI strategy to calculate rsi only once by run
|
||||
- KO - Prevent Order's notional must be no smaller than 5.0
|
||||
- OK - Don't run update Signal and manage position if no new candle
|
||||
|
||||
Part 11: Extra
|
||||
- OK - Create custom exception to handle error
|
||||
- OK - Add ELK stacks
|
||||
- OK - Display R/R used on backtestResult
|
||||
- OK - Update Exchanges libraries
|
||||
- OK - Integrate FTX exchange
|
||||
- OK - Display wallet evolution
|
||||
- OK - Remove API keys from git
|
||||
- OK - Add seed for moneymanagement and scenario
|
||||
Reference in New Issue
Block a user