Trading bot grain (#33)
* Trading bot Grain * Fix a bit more of the trading bot * Advance on the tradingbot grain * Fix build * Fix db script * Fix user login * Fix a bit backtest * Fix cooldown and backtest * start fixing bot start * Fix startup * Setup local db * Fix build and update candles and scenario * Add bot registry * Add reminder * Updateing the grains * fix bootstraping * Save stats on tick * Save bot data every tick * Fix serialization * fix save bot stats * Fix get candles * use dict instead of list for position * Switch hashset to dict * Fix a bit * Fix bot launch and bot view * add migrations * Remove the tolist * Add agent grain * Save agent summary * clean * Add save bot * Update get bots * Add get bots * Fix stop/restart * fix Update config * Update scanner table on new backtest saved * Fix backtestRowDetails.tsx * Fix agentIndex * Update agentIndex * Fix more things * Update user cache * Fix * Fix account load/start/restart/run
This commit is contained in:
@@ -3,10 +3,9 @@ using System.ComponentModel.DataAnnotations;
|
||||
using Exilion.TradingAtomics;
|
||||
using Managing.Domain.Bots;
|
||||
using Managing.Domain.Candles;
|
||||
using Managing.Domain.Strategies.Base;
|
||||
using Managing.Domain.Indicators;
|
||||
using Managing.Domain.Trades;
|
||||
using Managing.Domain.Users;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
namespace Managing.Domain.Backtests;
|
||||
|
||||
@@ -14,16 +13,15 @@ public class Backtest
|
||||
{
|
||||
public Backtest(
|
||||
TradingBotConfig config,
|
||||
List<Position> positions,
|
||||
List<LightSignal> signals,
|
||||
List<Candle> candles = null)
|
||||
Dictionary<Guid, Position> positions,
|
||||
Dictionary<string, LightSignal> signals,
|
||||
HashSet<Candle> candles = null)
|
||||
{
|
||||
Config = config;
|
||||
Positions = positions;
|
||||
Signals = signals;
|
||||
Candles = candles != null ? candles : new List<Candle>();
|
||||
Candles = candles != null ? candles : new HashSet<Candle>();
|
||||
WalletBalances = new List<KeyValuePair<DateTime, decimal>>();
|
||||
IndicatorsValues = new Dictionary<IndicatorType, IndicatorsResultBase>();
|
||||
|
||||
// Initialize start and end dates if candles are provided
|
||||
if (candles != null && candles.Count > 0)
|
||||
@@ -44,16 +42,15 @@ public class Backtest
|
||||
[Required] public decimal GrowthPercentage { get; set; }
|
||||
[Required] public decimal HodlPercentage { get; set; }
|
||||
[Required] public TradingBotConfig Config { get; }
|
||||
[Required] public List<Position> Positions { get; }
|
||||
[Required] public List<LightSignal> Signals { get; }
|
||||
[Required] public List<Candle> Candles { get; set; }
|
||||
[Required] public Dictionary<Guid, Position> Positions { get; }
|
||||
[Required] public Dictionary<string, LightSignal> Signals { get; }
|
||||
[Required] public HashSet<Candle> Candles { get; set; }
|
||||
[Required] public DateTime StartDate { get; set; }
|
||||
[Required] public DateTime EndDate { get; set; }
|
||||
[Required] public PerformanceMetrics Statistics { get; set; }
|
||||
[Required] public decimal Fees { get; set; }
|
||||
[Required] public List<KeyValuePair<DateTime, decimal>> WalletBalances { get; set; }
|
||||
[Required] public User User { get; set; }
|
||||
[Required] public Dictionary<IndicatorType, IndicatorsResultBase> IndicatorsValues { get; set; }
|
||||
[Required] public double Score { get; set; }
|
||||
public string RequestId { get; set; }
|
||||
public object? Metadata { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user