Files
TradeBlotter/Model/TradeResultModel.cs
2024-02-23 06:58:53 -05:00

129 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
namespace TradeBlotter.Model
{
public class TradeResultList : List<TradeResult>
{
public TradeResultList()
{
}
}
public class TradeResult : IComparable
{
private DateTime tradeDate;
private String buySell;
private String symbol;
private long shares;
private double price;
private double gainLoss;
private double exposure;
private double returnOnPosition;
private long daysHeld;
private String comment;
public TradeResult(DateTime tradeDate, String buySell, String symbol, long shares, double price, double gainLoss, double returnOnPosition,double exposure,long daysHeld, String comment)
{
this.tradeDate = tradeDate;
this.buySell = buySell;
this.symbol = symbol;
this.shares = shares;
this.price = price;
this.gainLoss = gainLoss;
this.daysHeld = daysHeld;
this.comment = comment;
this.exposure = exposure;
this.returnOnPosition = returnOnPosition;
}
public int CompareTo(Object o)
{
if (!o.GetType().Equals(typeof(TradeResult))) throw new Exception("Exected " + typeof(TradeResult));
TradeResult thatResult = (TradeResult)o;
return thatResult.TradeDate.CompareTo(tradeDate);
}
public DateTime TradeDate
{
get { return tradeDate; }
}
public String BuySell
{
get { return buySell; }
}
public String Symbol
{
get { return symbol; }
}
public long Shares
{
get { return shares; }
}
public double Price
{
get { return price; }
}
public double GainLoss
{
get { return gainLoss; }
}
public double Exposure
{
get { return exposure; }
}
public double Return
{
get { return returnOnPosition; }
}
public long DaysHeld
{
get { return daysHeld; }
}
public String Comment
{
get { return comment; }
}
}
public class TradeResultSummary
{
private double portfolioValue;
private double portfolioReturn;
private double averageGainLoss;
private double averageHoldingDays;
private double minimumHoldingDays;
private double maximumHoldingDays;
public TradeResultSummary()
{
}
public double PortfolioValue
{
get { return portfolioValue; }
set { portfolioValue = value; }
}
public double PortfolioReturn
{
get { return portfolioReturn; }
set { portfolioReturn = value; }
}
public double AverageGainLoss
{
get { return averageGainLoss; }
set { averageGainLoss = value; }
}
public double AverageHoldingDays
{
get { return averageHoldingDays; }
set { averageHoldingDays = value; }
}
public double MinimumHoldingDays
{
get { return minimumHoldingDays; }
set { minimumHoldingDays = value; }
}
public double MaximumHoldingDays
{
get { return maximumHoldingDays; }
set { maximumHoldingDays = value; }
}
}
}