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:
@@ -1,18 +1,17 @@
|
||||
using Managing.Domain.MoneyManagements;
|
||||
using static Managing.Common.Enums;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Shared.Helpers
|
||||
{
|
||||
public static class RiskHelpers
|
||||
{
|
||||
public static decimal GetStopLossPrice(TradeDirection direction, decimal price, MoneyManagement moneyManagement)
|
||||
public static decimal GetStopLossPrice(TradeDirection direction, decimal price, LightMoneyManagement moneyManagement)
|
||||
{
|
||||
return direction == TradeDirection.Long ?
|
||||
price -= price * moneyManagement.StopLoss :
|
||||
price += price * moneyManagement.StopLoss;
|
||||
}
|
||||
|
||||
public static decimal GetTakeProfitPrice(TradeDirection direction, decimal price, MoneyManagement moneyManagement, int count = 1)
|
||||
public static decimal GetTakeProfitPrice(TradeDirection direction, decimal price, LightMoneyManagement moneyManagement, int count = 1)
|
||||
{
|
||||
decimal percentage = moneyManagement.TakeProfit * count;
|
||||
|
||||
|
||||
@@ -49,16 +49,16 @@ public static class TradingBox
|
||||
{
|
||||
private static readonly IndicatorComboConfig _defaultConfig = new();
|
||||
|
||||
public static Signal GetSignal(HashSet<Candle> newCandles, HashSet<IIndicator> strategies,
|
||||
HashSet<Signal> previousSignal, int? loopbackPeriod = 1)
|
||||
public static LightSignal GetSignal(HashSet<Candle> newCandles, HashSet<IIndicator> strategies,
|
||||
HashSet<LightSignal> previousSignal, int? loopbackPeriod = 1)
|
||||
{
|
||||
return GetSignal(newCandles, strategies, previousSignal, _defaultConfig, loopbackPeriod);
|
||||
}
|
||||
|
||||
public static Signal GetSignal(HashSet<Candle> newCandles, HashSet<IIndicator> strategies,
|
||||
HashSet<Signal> previousSignal, IndicatorComboConfig config, int? loopbackPeriod = 1)
|
||||
public static LightSignal GetSignal(HashSet<Candle> newCandles, HashSet<IIndicator> strategies,
|
||||
HashSet<LightSignal> previousSignal, IndicatorComboConfig config, int? loopbackPeriod = 1)
|
||||
{
|
||||
var signalOnCandles = new List<Signal>();
|
||||
var signalOnCandles = new List<LightSignal>();
|
||||
var limitedCandles = newCandles.ToList().TakeLast(600).ToList();
|
||||
|
||||
foreach (var strategy in strategies)
|
||||
@@ -126,13 +126,15 @@ public static class TradingBox
|
||||
data.Timeframe, config);
|
||||
}
|
||||
|
||||
public static Signal ComputeSignals(HashSet<IIndicator> strategies, HashSet<Signal> signalOnCandles, Ticker ticker,
|
||||
public static LightSignal ComputeSignals(HashSet<IIndicator> strategies, HashSet<LightSignal> signalOnCandles,
|
||||
Ticker ticker,
|
||||
Timeframe timeframe)
|
||||
{
|
||||
return ComputeSignals(strategies, signalOnCandles, ticker, timeframe, _defaultConfig);
|
||||
}
|
||||
|
||||
public static Signal ComputeSignals(HashSet<IIndicator> strategies, HashSet<Signal> signalOnCandles, Ticker ticker,
|
||||
public static LightSignal ComputeSignals(HashSet<IIndicator> strategies, HashSet<LightSignal> signalOnCandles,
|
||||
Ticker ticker,
|
||||
Timeframe timeframe, IndicatorComboConfig config)
|
||||
{
|
||||
if (strategies.Count == 1)
|
||||
@@ -194,7 +196,7 @@ public static class TradingBox
|
||||
var lastSignal = signals.LastOrDefault() ??
|
||||
trendSignals.LastOrDefault() ?? contextSignals.LastOrDefault();
|
||||
|
||||
return new Signal(
|
||||
return new LightSignal(
|
||||
ticker,
|
||||
finalDirection,
|
||||
averageConfidence,
|
||||
@@ -208,7 +210,7 @@ public static class TradingBox
|
||||
/// <summary>
|
||||
/// Calculates the average confidence level from a list of signals
|
||||
/// </summary>
|
||||
private static Confidence CalculateAverageConfidence(List<Signal> signals)
|
||||
private static Confidence CalculateAverageConfidence(List<LightSignal> signals)
|
||||
{
|
||||
if (!signals.Any())
|
||||
{
|
||||
@@ -231,7 +233,7 @@ public static class TradingBox
|
||||
/// <summary>
|
||||
/// Validates context strategies based on confidence levels indicating market condition quality
|
||||
/// </summary>
|
||||
private static bool ValidateContextStrategies(HashSet<IIndicator> allStrategies, List<Signal> contextSignals,
|
||||
private static bool ValidateContextStrategies(HashSet<IIndicator> allStrategies, List<LightSignal> contextSignals,
|
||||
IndicatorComboConfig config)
|
||||
{
|
||||
var contextStrategiesCount = allStrategies.Count(s => s.SignalType == SignalType.Context);
|
||||
|
||||
Reference in New Issue
Block a user