从山证v2.3.0拷贝

This commit is contained in:
吴方海
2024-05-09 14:06:26 +08:00
parent 566ff33259
commit f9d8a256a6
4471 changed files with 1203456 additions and 9 deletions
@@ -0,0 +1,50 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using YLErp.DBModels;
namespace YLErp.Modules.DataProviderModule
{
[TestClass]
public class EodExchangeOptionPriceProviderTest : YLUnitTestBase
{
[TestMethod]
public void TestGetPrice()
{
var valueDate = new DateTime(1900, 1, 1);
const string optionCode = "RBTest-P-2650";
var insertModel = new eod_exchange_option_price
{
ClosePrice = 12.22,
DataSource = "单元测试",
HighPrice = 12.32,
LowPrice = 12.2,
SettlePrice = 12.24,
UnderlyingCode = optionCode,
ValueDate = valueDate
};
SetDBModelOpt(insertModel);
AddClearSQL<eod_exchange_option_price>($"ValueDate='{valueDate:yyyy-MM-dd}' and ContractCode='{optionCode}'");
DbContext.eod_exchange_option_price.Add(insertModel);
DbContext.SaveChanges();
var provider = new EodExchangeOptionPriceProvider(valueDate, true);
var price = provider.GetPrice("RBTest-P-2650");
Assert.AreEqual(price, 12.22);
var hasPrice = provider.TryGetPrice(optionCode, out price);
Assert.AreEqual(price, 12.22);
var priceModel = provider.GetPriceModel("RBTest-P-2650");
Assert.AreEqual(priceModel.SettlePrice, 12.24);
provider.TryGetPriceModel("RBTest-P-2650", out priceModel);
Assert.AreEqual(priceModel.HighPrice, 12.32);
}
}
}
@@ -0,0 +1,58 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using YLErp.BLL;
using YLErp.DBModels;
namespace YLErp.Modules.DataProviderModule
{
[TestClass]
public class ExchangeOptionPriceProviderTest : YLUnitTestBase
{
[TestMethod]
public void TestGetPrice()
{
var valueDate = valuedateBLL.ValueDate;
const string optionCode = "RBTest-P-2650";
var insertModel = new ExchangeListOption
{
ContractCode = optionCode,
ContractSize = 10,
CreateTime = DateTime.Now,
ExerciseMode = "European",
MarginRate = 0.05,
MarketCode = "TEST_TEST",
MaturityDate = valueDate.AddMonths(1),
OpenDate = valueDate.AddDays(-10),
OptionType = "看跌",
PrevClosePrice = 12.2,
Price = 12.32,
PriceTick = 0.1,
PriceTime = DateTime.Now,
Strike = 2650,
UnderlyingCode = "RBTest"
};
AddClearSQL<ExchangeListOption>($"ContractCode='{optionCode}'");
DbContext.exchange_list_option.Add(insertModel);
DbContext.SaveChanges();
var provider = new ExchangeOptionPriceProvider();
var price = provider.GetPrice("RBTest-P-2650");
Assert.AreEqual(price, 12.32);
var hasPrice = provider.TryGetPrice(optionCode, out price);
Assert.AreEqual(price, 12.32);
var priceModel = provider.GetPriceModel("RBTest-P-2650");
Assert.AreEqual(priceModel.Price, 12.32);
//场内期权没有取昨日收盘价
provider.TryGetPriceModel("RBTest-P-2650", out priceModel);
Assert.AreEqual(priceModel.PreClose, null);
}
}
}
@@ -0,0 +1,64 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using YLErp.DBModels;
using YLErp.DBModels.Consts;
namespace YLErp.Modules.DataProviderModule
{
[TestClass]
public class TradeHisDataProviderTest : YLUnitTestBase
{
[TestMethod]
public void Test1()
{
TradeHisData t;
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
var value = 0.1;
var datas = new TradeHisData[20];
var startDate = DateTime.Today.AddYears(1);
for (var i = 0; i < 20; i += 2)
{
datas[i] = new TradeHisData
{
TradeId = 1,
OptDate = DateTime.Now,
OptId = 0,
OptName = UserName,
Value = value + i * 0.05,
ValueDate = startDate.AddDays(i * 3),
ValueType = ConsTradeField.NoRiskRate
};
datas[i + 1] = datas[i].Clone();
datas[i + 1].ValueType = ConsTradeField.DividendRate;
}
DbContext.TradeHisData.AddRange(datas);
DbContext.SaveChanges();
for (var i = 0; i < 10; i += 2)
{
var provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(1));
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(2));
provider.Initialize();
Assert.AreEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
provider = new TradeHisDataProvider(datas[i].ValueDate.AddDays(6));
Assert.AreNotEqual(datas[i].Value.ToString("F4"), provider.GetNoRiskRate(1)?.ToString("F4"));
Assert.AreNotEqual(datas[i + 1].Value.ToString("F4"), provider.GetDividendRate(1)?.ToString("F4"));
}
DbContext.BulkDelete<TradeHisData>($"{nameof(t.TradeId)} in (1)");
}
}
}