using System.Collections.Specialized; using YLErp.BLL.MarginCalculation; using YLErp.DBModels; namespace YLErp.Tests { class TestMargin : TestBase { public override void Execute() { string query = "trade%5BTradeDate%5D=2019-10-31&trade%5BStrike%5D=3435&trade%5BExerciseDate%5D=2019-11-14&trade%5BSpotPrice%5D=3435.00&trade%5BInitialSpotPrice%5D=3435.00&trade%5BTradeOpenVolatility%5D=0.175&trade%5BVolType%5D=%E6%8A%A5%E4%BB%B7Bid&trade%5BTradeType%5D=%E9%A6%99%E8%8D%89%E6%9C%9F%E6%9D%83&trade%5BIsMoneynessOption%5D=%E5%90%A6&trade%5BOptionType%5D=%E7%9C%8B%E6%B6%A8&trade%5BNotional%5D=1.00&trade%5BBuySell%5D=%E4%B9%B0%E5%85%A5&trade%5BClientId%5D=3&trade%5BUnderlyingInstrumentType%5D=CommodityFutures&trade%5BExerciseMode%5D=European&trade%5BMaturityDate%5D=2019-11-15&trade%5BNoRiskRate%5D=0.05&trade%5BUnderlyingId%5D=31766&trade%5BUnderlyingCode%5D=RB1911&trade%5BStartDate%5D=2019-10-31"; query = query.Replace("trade%5B", string.Empty).Replace("%5D", string.Empty); var nv = YieldChain.Helpers.UrlHelper.ParseQueryString(query, true); var dic = ToDictionary(nv); var json = JsonHelper.Serialize(dic); var trad = JsonHelper.Deserialize(json); trad.VolType = "报价Bid"; var initialMargin = MarginDefault.GetInitialMargin(trad, trad.id); Console.WriteLine("初始保证金:" + initialMargin); } private static IDictionary ToDictionary(NameValueCollection col) { var dict = new Dictionary(); foreach (var k in col.AllKeys) { dict.Add(k, col[k]); } return dict; } } }