Files
zszq-trs/YLErpDAL/BLL/Calculation/Engine/RangeAccrualEngineFactory.cs
T
2024-05-09 14:06:26 +08:00

38 lines
1.1 KiB
C#

using Qdp.Pricing.Base.Enums;
using Qdp.Pricing.Library.Common.Interfaces;
using Qdp.Pricing.Library.Options.MonteCarlo;
using Qdp.Pricing.Library.Options.Products.RangeAccrual.Engines.Analytical;
namespace YLErp.BLL.Calculation.Engine
{
class RangeAccrualEngineFactory : OptionEngineFactoryBase
{
public static RangeAccrualEngineFactory Instance
{
get
{
if (_instance == null)
{
_instance = new RangeAccrualEngineFactory();
}
return _instance;
}
}
protected RangeAccrualEngineFactory() { }
protected static RangeAccrualEngineFactory _instance;
public override IEngine GetEngine(string engineName = null, OptionExercise exercise = OptionExercise.European, params object[] additionalParams)
{
if (engineName?.ToUpper() == "GBMMONTECARLOENGINE")
{
return new GbmMonteCarloEngine(100000, 1e-3, 1e-6, 1);
}
else
{
return new AnalyticalRangeAccrualEngine();
}
}
}
}