63 lines
1.9 KiB
C#
63 lines
1.9 KiB
C#
using YLErp.BLL.Eod;
|
|
using YLErp.Modules.DataProviderModule;
|
|
using YLErp.Modules.EodModule;
|
|
|
|
namespace YLErp.Web.Controllers
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class eod_varController : BaseController
|
|
{
|
|
readonly YLContext db = new YLContext();
|
|
readonly UnderlyingDataProvider _umProvider = new UnderlyingDataProvider();
|
|
|
|
[MyAuthorize("风险控制-VaR计算")]
|
|
public ActionResult eod_var()
|
|
{
|
|
ViewBag.valueDate = EodOperationBase.GetLastSettlementDate(valuedateBLL.ValueDate).ToString("yyyy-MM-dd");
|
|
return View();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 历史模拟法计算VaR
|
|
/// </summary>
|
|
public JsonResult calcEodVaR(eod_varReq req)
|
|
{
|
|
var service = new EodVaRService(CurUser);
|
|
if (req.EndValueDate == null || req.EndValueDate.Value == req.ValueDate)
|
|
{
|
|
service.CalcEodVaR(req);
|
|
}
|
|
else
|
|
{
|
|
var dayCount = (req.EndValueDate.Value - req.ValueDate).TotalDays;
|
|
for (var i = 0; i <= dayCount; i++)
|
|
{
|
|
|
|
if (!QdpModule.QdpCalendarHelper.IsHoliday(req.ValueDate))
|
|
{
|
|
service.CalcEodVaR(req);
|
|
}
|
|
req.ValueDate = req.ValueDate.AddDays(1);
|
|
}
|
|
}
|
|
return JsonSuccess("试算成功");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 用简单Delta/Gamma法计算VaR
|
|
/// </summary>
|
|
public JsonResult calcSimpleDeltaGammaVaR(eod_varReq req)
|
|
{
|
|
new EodVaRService(CurUser).CalcSimpleDeltaGammaVaR(req);
|
|
return JsonSuccess("试算成功");
|
|
}
|
|
|
|
public JsonResult GetEodVaR(eod_varReq req)
|
|
{
|
|
var results = new EodVaRService(CurUser).GetEodVaR(req);
|
|
return Json(results);
|
|
}
|
|
}
|
|
} |