Update vitejs + fix bot saving
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
using Exilion.TradingAtomics;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Exilion.TradingAtomics;
|
||||
using Managing.Domain.Bots;
|
||||
using Managing.Domain.Candles;
|
||||
using Managing.Domain.MoneyManagements;
|
||||
using Managing.Domain.Strategies;
|
||||
using Managing.Domain.Strategies.Base;
|
||||
using Managing.Domain.Trades;
|
||||
using Managing.Domain.Users;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Managing.Domain.Strategies.Base;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Backtests;
|
||||
@@ -13,26 +14,18 @@ namespace Managing.Domain.Backtests;
|
||||
public class Backtest
|
||||
{
|
||||
public Backtest(
|
||||
Ticker ticker,
|
||||
string scenario,
|
||||
TradingBotConfig config,
|
||||
List<Position> positions,
|
||||
List<Signal> signals,
|
||||
Timeframe timeframe,
|
||||
List<Candle> candles,
|
||||
BotType botType,
|
||||
string accountName)
|
||||
List<Candle> candles)
|
||||
{
|
||||
Ticker = ticker;
|
||||
Config = config;
|
||||
Positions = positions;
|
||||
Signals = signals;
|
||||
Timeframe = timeframe;
|
||||
Candles = candles;
|
||||
Scenario = scenario;
|
||||
BotType = botType;
|
||||
AccountName = accountName;
|
||||
WalletBalances = new List<KeyValuePair<DateTime, decimal>>();
|
||||
StrategiesValues = new Dictionary<StrategyType, StrategiesResultBase>();
|
||||
|
||||
|
||||
// Initialize start and end dates if candles are provided
|
||||
if (candles != null && candles.Count > 0)
|
||||
{
|
||||
@@ -51,13 +44,9 @@ public class Backtest
|
||||
[Required] public int WinRate { get; set; }
|
||||
[Required] public decimal GrowthPercentage { get; set; }
|
||||
[Required] public decimal HodlPercentage { get; set; }
|
||||
[Required] public Ticker Ticker { get; }
|
||||
[Required] public string Scenario { get; set; }
|
||||
[Required] public TradingBotConfig Config { get; }
|
||||
[Required] public List<Position> Positions { get; }
|
||||
[Required] public List<Signal> Signals { get; }
|
||||
[Required] public Timeframe Timeframe { get; }
|
||||
[Required] public BotType BotType { get; }
|
||||
[Required] public string AccountName { get; }
|
||||
[Required] public List<Candle> Candles { get; set; }
|
||||
[Required] public DateTime StartDate { get; set; }
|
||||
[Required] public DateTime EndDate { get; set; }
|
||||
@@ -65,7 +54,6 @@ public class Backtest
|
||||
[Required] public decimal Fees { get; set; }
|
||||
[Required] public List<KeyValuePair<DateTime, decimal>> WalletBalances { get; set; }
|
||||
[Required] public MoneyManagement OptimizedMoneyManagement { get; set; }
|
||||
[Required] public MoneyManagement MoneyManagement { get; set; }
|
||||
[Required] public User User { get; set; }
|
||||
[Required] public Dictionary<StrategyType, StrategiesResultBase> StrategiesValues { get; set; }
|
||||
[Required] public double Score { get; set; }
|
||||
@@ -73,6 +61,6 @@ public class Backtest
|
||||
public string GetStringReport()
|
||||
{
|
||||
return
|
||||
$"{Ticker} | {Timeframe} | Positions: {Positions.Count} | Winrate: {WinRate}% | Pnl: {FinalPnl:#.##}$ | %Pnl: {GrowthPercentage:#.##}% | %Hodl: {HodlPercentage:#.##}%";
|
||||
$"{Config.Ticker} | {Config.Timeframe} | Positions: {Positions.Count} | Winrate: {WinRate}% | Pnl: {FinalPnl:#.##}$ | %Pnl: {GrowthPercentage:#.##}% | %Hodl: {HodlPercentage:#.##}%";
|
||||
}
|
||||
}
|
||||
22
src/Managing.Domain/Bots/TradingBotConfig.cs
Normal file
22
src/Managing.Domain/Bots/TradingBotConfig.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Managing.Domain.MoneyManagements;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Bots;
|
||||
|
||||
public class TradingBotConfig
|
||||
{
|
||||
[Required] public string AccountName { get; set; }
|
||||
[Required] public MoneyManagement MoneyManagement { get; set; }
|
||||
[Required] public Ticker Ticker { get; set; }
|
||||
[Required] public string ScenarioName { get; set; }
|
||||
[Required] public Timeframe Timeframe { get; set; }
|
||||
[Required] public bool IsForWatchingOnly { get; set; }
|
||||
[Required] public decimal BotTradingBalance { get; set; }
|
||||
[Required] public BotType BotType { get; set; }
|
||||
[Required] public bool IsForBacktest { get; set; }
|
||||
[Required] public int CooldownPeriod { get; set; }
|
||||
[Required] public int MaxLossStreak { get; set; }
|
||||
[Required] public bool FlipPosition { get; set; }
|
||||
[Required] public string Name { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user