Postgres (#30)

* Add postgres

* Migrate users

* Migrate geneticRequest

* Try to fix Concurrent call

* Fix asyncawait

* Fix async and concurrent

* Migrate backtests

* Add cache for user by address

* Fix backtest migration

* Fix not open connection

* Fix backtest command error

* Fix concurrent

* Fix all concurrency

* Migrate TradingRepo

* Fix scenarios

* Migrate statistic repo

* Save botbackup

* Add settings et moneymanagement

* Add bot postgres

* fix a bit more backups

* Fix bot model

* Fix loading backup

* Remove cache market for read positions

* Add workers to postgre

* Fix workers api

* Reduce get Accounts for workers

* Migrate synth to postgre

* Fix backtest saved

* Remove mongodb

* botservice decorrelation

* Fix tradingbot scope call

* fix tradingbot

* fix concurrent

* Fix scope for genetics

* Fix account over requesting

* Fix bundle backtest worker

* fix a lot of things

* fix tab backtest

* Remove optimized moneymanagement

* Add light signal to not use User and too much property

* Make money management lighter

* insert indicators to awaitable

* Migrate add strategies to await

* Refactor scenario and indicator retrieval to use asynchronous methods throughout the application

* add more async await

* Add services

* Fix and clean

* Fix bot a bit

* Fix bot and add message for cooldown

* Remove fees

* Add script to deploy db

* Update dfeeploy script

* fix script

* Add idempotent script and backup

* finish script migration

* Fix did user and agent name on start bot
This commit is contained in:
Oda
2025-07-27 15:42:17 +02:00
committed by GitHub
parent 361bfbf6e8
commit 422fecea7b
294 changed files with 23953 additions and 7272 deletions

View File

@@ -1,6 +1,5 @@
using Managing.Application.Abstractions.Services;
using Managing.Domain.Accounts;
using Managing.Domain.Strategies;
using Managing.Domain.Strategies.Signals;
using Managing.Domain.Strategies.Trends;
using Xunit;
@@ -26,7 +25,7 @@ namespace Managing.Application.Tests
// Arrange
var rsiStrategy = new RsiDivergenceIndicator("unittest", 5);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(-50), timeframe).Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -39,7 +38,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(rsiStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}
@@ -60,7 +59,7 @@ namespace Managing.Application.Tests
var account = GetAccount(exchange);
var rsiStrategy = new RsiDivergenceIndicator("unittest", 5);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(-50), timeframe).Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -73,7 +72,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(rsiStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
}
@@ -87,7 +86,7 @@ namespace Managing.Application.Tests
var account = GetAccount(exchange);
var rsiStrategy = new MacdCrossIndicator("unittest", 12, 26, 9);
var candles = await _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(days), timeframe);
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -100,7 +99,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(rsiStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}
@@ -114,7 +113,7 @@ namespace Managing.Application.Tests
var account = GetAccount(exchange);
var superTrendStrategy = new SuperTrendIndicator("unittest", 10, 3);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(days), timeframe).Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -127,7 +126,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(superTrendStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}
@@ -142,7 +141,7 @@ namespace Managing.Application.Tests
var chandelierExitStrategy = new ChandelierExitIndicator("unittest", 22, 3);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(days), timeframe, false)
.Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -155,7 +154,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(chandelierExitStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}
@@ -169,7 +168,7 @@ namespace Managing.Application.Tests
var account = GetAccount(exchange);
var emaTrendSrategy = new EmaTrendIndicator("unittest", 200);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(days), timeframe).Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// Act
foreach (var candle in candles)
@@ -182,7 +181,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(emaTrendSrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}
@@ -197,7 +196,7 @@ namespace Managing.Application.Tests
var account = GetAccount(exchange);
var stochRsiStrategy = new StochRsiTrendIndicator("unittest", 14, 14, 3, 1);
var candles = _exchangeService.GetCandles(account, ticker, DateTime.Now.AddDays(days), timeframe).Result;
var resultSignal = new List<Signal>();
var resultSignal = new List<LightSignal>();
// var json = JsonConvert.SerializeObject(candles);
// File.WriteAllText($"{ticker.ToString()}-{timeframe.ToString()}-candles.json", json);
@@ -214,7 +213,7 @@ namespace Managing.Application.Tests
resultSignal.AddRange(stochRsiStrategy.Signals);
// Assert
Assert.IsType<List<Signal>>(resultSignal);
Assert.IsType<List<LightSignal>>(resultSignal);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Short);
Assert.Contains(resultSignal, s => s.Direction == TradeDirection.Long);
}