using YLErp.BLL.Eod; using YLErp.Modules.DataProviderModule; using YLErp.Modules.EodModule; namespace YLErp.Web.Controllers { /// /// /// 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(); } /// /// 历史模拟法计算VaR /// 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("试算成功"); } /// /// 用简单Delta/Gamma法计算VaR /// 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); } } }