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,5 +1,5 @@
using System.ComponentModel.DataAnnotations;
using Managing.Domain.MoneyManagements;
using System.Text.Json.Serialization;
using Managing.Domain.Users;
using static Managing.Common.Enums;
@@ -8,29 +8,37 @@ namespace Managing.Domain.Trades
public class Position
{
public Position(string identifier, string accountName, TradeDirection originDirection, Ticker ticker,
MoneyManagement moneyManagement, PositionInitiator positionInitiator, DateTime date, User user)
LightMoneyManagement moneyManagement, PositionInitiator initiator, DateTime date, User user)
{
Identifier = identifier;
AccountName = accountName;
OriginDirection = originDirection;
Ticker = ticker;
MoneyManagement = moneyManagement;
Initiator = positionInitiator;
Initiator = initiator;
Date = date;
Status = Initiator == PositionInitiator.PaperTrading ? PositionStatus.Filled : PositionStatus.New;
User = user;
}
[Required] public string AccountName { get; }
[Required] public string AccountName { get; set; }
[Required] public DateTime Date { get; set; }
[Required] public TradeDirection OriginDirection { get; }
[Required] public Ticker Ticker { get; }
[Required] public MoneyManagement MoneyManagement { get; }
[Required] public Trade Open { get; set; }
[Required] public Trade StopLoss { get; set; }
[Required] public Trade TakeProfit1 { get; set; }
public Trade TakeProfit2 { get; set; }
public ProfitAndLoss ProfitAndLoss { get; set; }
[Required] public TradeDirection OriginDirection { get; set; }
[Required] public Ticker Ticker { get; set; }
[Required] public LightMoneyManagement MoneyManagement { get; set; }
[Required] [JsonPropertyName("Open")] public Trade Open { get; set; }
[Required]
[JsonPropertyName("StopLoss")]
public Trade StopLoss { get; set; }
[Required]
[JsonPropertyName("TakeProfit1")]
public Trade TakeProfit1 { get; set; }
[JsonPropertyName("TakeProfit2")] public Trade TakeProfit2 { get; set; }
[JsonPropertyName("ProfitAndLoss")] public ProfitAndLoss ProfitAndLoss { get; set; }
[Required] public PositionStatus Status { get; set; }
public string SignalIdentifier { get; set; }
[Required] public string Identifier { get; set; }

View File

@@ -5,7 +5,7 @@ namespace Managing.Domain.Trades
{
public class Trade
{
public Trade(DateTime date, TradeDirection direction, TradeStatus status, TradeType tradeType, Ticker ticker,
public Trade(DateTime date, TradeDirection direction, TradeStatus status, TradeType tradeType, Ticker ticker,
decimal quantity, decimal price, decimal? leverage, string exchangeOrderId, string message)
{
Date = date;
@@ -21,25 +21,17 @@ namespace Managing.Domain.Trades
Fee = 0;
}
public decimal Fee { get; set; }
[Required]
public DateTime Date { get; private set; }
[Required]
public TradeDirection Direction { get; }
[Required]
public TradeStatus Status { get; private set; }
[Required]
public TradeType TradeType { get; }
[Required]
public Ticker Ticker { get; }
[Required]
public decimal Quantity { get; set; }
[Required]
public decimal Price { get; set; }
public decimal Leverage { get; }
[Required]
public string ExchangeOrderId { get; private set; }
public string Message { get; private set; }
[Required] public decimal Fee { get; set; }
[Required] public DateTime Date { get; set; }
[Required] public TradeDirection Direction { get; set; }
[Required] public TradeStatus Status { get; set; }
[Required] public TradeType TradeType { get; set; }
[Required] public Ticker Ticker { get; set; }
[Required] public decimal Quantity { get; set; }
[Required] public decimal Price { get; set; }
[Required] public decimal Leverage { get; set; }
[Required] public string ExchangeOrderId { get; set; }
[Required] public string Message { get; set; }
public void SetStatus(TradeStatus status)
{
@@ -71,4 +63,4 @@ namespace Managing.Domain.Trades
Price = Math.Round(price, precision);
}
}
}
}