33 lines
1.7 KiB
C#
33 lines
1.7 KiB
C#
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<trade>(json);
|
|
trad.VolType = "报价Bid";
|
|
var initialMargin = MarginDefault.GetInitialMargin(trad, trad.id);
|
|
Console.WriteLine("初始保证金:" + initialMargin);
|
|
}
|
|
|
|
private static IDictionary<string, string> ToDictionary(NameValueCollection col)
|
|
{
|
|
var dict = new Dictionary<string, string>();
|
|
foreach (var k in col.AllKeys)
|
|
{
|
|
dict.Add(k, col[k]);
|
|
}
|
|
return dict;
|
|
}
|
|
}
|
|
}
|