59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
using YLErp.Modules.EodModule;
|
|
|
|
namespace YLErp.Modules.TradeRiskCalcModule
|
|
{
|
|
/// <summary>
|
|
/// 初始累计盈亏数据源
|
|
/// </summary>
|
|
class AccruedTotalPnlStartingDataSource<TEntity>
|
|
where TEntity : EodTradePosition
|
|
{
|
|
IEnumerable<TradePnlStatics> _list;
|
|
|
|
private AccruedTotalPnlStartingDataSource()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取值日
|
|
/// </summary>
|
|
public DateTime ValueDate { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 起算日
|
|
/// </summary>
|
|
public DateTime StartDate { get; private set; }
|
|
|
|
public void Reset()
|
|
{
|
|
_list = null;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="valueDate">取值日</param>
|
|
/// <param name="startDate">起算日</param>
|
|
public IEnumerable<TradePnlStatics> GetDatas(DateTime valueDate, DateTime startDate)
|
|
{
|
|
valueDate = valueDate.Date;
|
|
startDate = startDate.Date;
|
|
if (_list != null && ValueDate == valueDate && StartDate == startDate)
|
|
{
|
|
return _list;
|
|
}
|
|
ValueDate = valueDate;
|
|
StartDate = startDate;
|
|
return _list = new AccruedTotalPnlService<TEntity>(OptUserInfo.SystemUser).GetAccruedStartPnls(startDate, true);
|
|
}
|
|
|
|
public static readonly AccruedTotalPnlStartingDataSource<TEntity> Default;
|
|
|
|
static AccruedTotalPnlStartingDataSource()
|
|
{
|
|
Default = new AccruedTotalPnlStartingDataSource<TEntity>();
|
|
}
|
|
}
|
|
}
|