* Start building with orlean

* Add missing file

* Serialize grain state

* Remove grain and proxies

* update and add plan

* Update a bit

* Fix backtest grain

* Fix backtest grain

* Clean a bit
This commit is contained in:
Oda
2025-07-30 11:03:30 +02:00
committed by GitHub
parent d281d7cd02
commit 3de8b5e00e
59 changed files with 2626 additions and 677 deletions

View File

@@ -1,10 +1,12 @@
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
using Managing.Domain.Users;
using Orleans;
using static Managing.Common.Enums;
namespace Managing.Domain.Trades
{
[GenerateSerializer]
public class Position
{
public Position(string identifier, string accountName, TradeDirection originDirection, Ticker ticker,
@@ -21,28 +23,53 @@ namespace Managing.Domain.Trades
User = user;
}
[Id(0)]
[Required] public string AccountName { get; set; }
[Id(1)]
[Required] public DateTime Date { get; set; }
[Id(2)]
[Required] public TradeDirection OriginDirection { get; set; }
[Id(3)]
[Required] public Ticker Ticker { get; set; }
[Id(4)]
[Required] public LightMoneyManagement MoneyManagement { get; set; }
[Id(5)]
[Required] [JsonPropertyName("Open")] public Trade Open { get; set; }
[Id(6)]
[Required]
[JsonPropertyName("StopLoss")]
public Trade StopLoss { get; set; }
[Id(7)]
[Required]
[JsonPropertyName("TakeProfit1")]
public Trade TakeProfit1 { get; set; }
[Id(8)]
[JsonPropertyName("TakeProfit2")] public Trade TakeProfit2 { get; set; }
[Id(9)]
[JsonPropertyName("ProfitAndLoss")] public ProfitAndLoss ProfitAndLoss { get; set; }
[Id(10)]
[Required] public PositionStatus Status { get; set; }
[Id(11)]
public string SignalIdentifier { get; set; }
[Id(12)]
[Required] public string Identifier { get; set; }
[Id(13)]
[Required] public PositionInitiator Initiator { get; set; }
[Id(14)]
[Required] public User User { get; set; }
public bool IsFinished()

View File

@@ -1,13 +1,18 @@
using static Managing.Common.Enums;
using Orleans;
using static Managing.Common.Enums;
namespace Managing.Domain.Trades
{
[GenerateSerializer]
public sealed class ProfitAndLoss
{
[Id(0)]
public decimal Realized { get; set; }
[Id(1)]
public decimal Net { get; set; }
[Id(2)]
public decimal AverageOpenPrice { get; private set; }
private const decimal _multiplier = 100000;

View File

@@ -1,8 +1,10 @@
using System.ComponentModel.DataAnnotations;
using Orleans;
using static Managing.Common.Enums;
namespace Managing.Domain.Trades
{
[GenerateSerializer]
public class Trade
{
public Trade(DateTime date, TradeDirection direction, TradeStatus status, TradeType tradeType, Ticker ticker,
@@ -21,16 +23,37 @@ namespace Managing.Domain.Trades
Fee = 0;
}
[Id(0)]
[Required] public decimal Fee { get; set; }
[Id(1)]
[Required] public DateTime Date { get; set; }
[Id(2)]
[Required] public TradeDirection Direction { get; set; }
[Id(3)]
[Required] public TradeStatus Status { get; set; }
[Id(4)]
[Required] public TradeType TradeType { get; set; }
[Id(5)]
[Required] public Ticker Ticker { get; set; }
[Id(6)]
[Required] public decimal Quantity { get; set; }
[Id(7)]
[Required] public decimal Price { get; set; }
[Id(8)]
[Required] public decimal Leverage { get; set; }
[Id(9)]
[Required] public string ExchangeOrderId { get; set; }
[Id(10)]
[Required] public string Message { get; set; }
public void SetStatus(TradeStatus status)