public void TestGetSetPrice() { PbTickCodec codec = new PbTickCodec(); codec.Config.SetTickSize(0.2); codec.UseFlat(false); PbTick tick = new PbTick(); Assert.AreEqual <double>(0, codec.GetBidPrice(tick, 1)); Assert.AreEqual <double>(0, codec.GetBidPrice(tick, 4)); Assert.AreEqual <double>(0, codec.GetBidPrice(tick, 10)); codec.SetBidPrice(tick, 1, 1.0); codec.SetBidPrice(tick, 4, 2.4); codec.SetBidPrice(tick, 10, 5.8); Assert.AreEqual <double>(1, codec.GetBidPrice(tick, 1)); Assert.AreEqual <double>(2.4, codec.GetBidPrice(tick, 4)); Assert.AreEqual <double>(5.8, codec.GetBidPrice(tick, 10)); Assert.AreEqual <double>(0, codec.GetAskPrice(tick, 1)); Assert.AreEqual <double>(0, codec.GetAskPrice(tick, 4)); Assert.AreEqual <double>(0, codec.GetAskPrice(tick, 10)); codec.SetAskPrice(tick, 1, -1.0); codec.SetAskPrice(tick, 4, 2.4); codec.SetAskPrice(tick, 10, -5.8); Assert.AreEqual <double>(-1.0, codec.GetAskPrice(tick, 1)); Assert.AreEqual <double>(2.4, codec.GetAskPrice(tick, 4)); Assert.AreEqual <double>(-5.8, codec.GetAskPrice(tick, 10)); codec.SetAskCount(tick, 1, 4); codec.SetAskCount(tick, 4, 5); codec.SetAskCount(tick, 10, -9); Assert.AreEqual <double>(4, codec.GetAskCount(tick, 1)); Assert.AreEqual <double>(5, codec.GetAskCount(tick, 4)); Assert.AreEqual <double>(-9, codec.GetAskCount(tick, 10)); codec.SetSettlementPrice(tick, 1234.56); Assert.AreEqual <double>(1234.56, codec.GetSettlementPrice(tick), "SettlementPrice"); codec.SetTurnover(tick, 4567.8); Assert.AreEqual <double>(4567.8, codec.GetTurnover(tick), "Turnover"); }
public void MakeTick() { tick = new PbTick(); tick.Config = new ConfigInfo().Default(); CalcTickSize(); tick.Config.SetTickSize(TickSize); tick.Config.Time_ssf_Diff = 10; Codec.Config = tick.Config; Codec.UseFlat(false); int HH = int.Parse(time.Substring(0, 2)); int mm = int.Parse(time.Substring(3, 2)); int ss = int.Parse(time.Substring(6, 2)); tick.Time_HHmm = HH * 100 + mm; tick.Time_____ssf__ = ss * 10; tick.TradingDay = 20150120; //if() //{ //} int i = 0; foreach (var b in Bids) { ++i; Codec.SetBidPrice(tick, i, b.price); Codec.SetBidSize(tick, i, b.size); } i = 0; foreach (var a in Asks) { ++i; Codec.SetAskPrice(tick, i, a.price); Codec.SetAskSize(tick, i, a.size); } Codec.SetSymbol(tick, symbol); }
public void TestTickDiff() { PbTickCodec codec = new PbTickCodec(); codec.Config.SetTickSize(0.2); codec.Config.Time_ssf_Diff = 5; codec.UseFlat(false); PbTick tick1 = new PbTick(); tick1.Config = codec.Config; codec.SetLastPrice(tick1, 1234); codec.SetVolume(tick1, 1); codec.SetActionDay(tick1, DateTime.Today); codec.SetTradingDay(tick1, DateTime.Today.AddDays(-1)); //codec.Set codec.SetAskPrice(tick1, 1, 1234.2); codec.SetAskSize(tick1, 1, 1); //codec.SetAskPrice(tick1, 2, 1234.4); //codec.SetAskSize(tick1, 2, 1); //codec.SetAskPrice(tick1, 3, 1234.6); //codec.SetAskSize(tick1, 3, 3); //codec.SetAskPrice(tick1, 4, 1234.8); //codec.SetAskSize(tick1, 4, 4); //codec.SetAskPrice(tick1, 5, 1235.0); //codec.SetAskSize(tick1, 5, 5); //codec.SetAskPrice(tick1, 6, 1235.2); //codec.SetAskSize(tick1, 6, 6); codec.SetBidPrice(tick1, 1, 1234); codec.SetBidSize(tick1, 1, 1); //codec.SetBidPrice(tick1, 2, 1233.8); //codec.SetBidSize(tick1, 2, 2); //codec.SetBidPrice(tick1, 3, 1233.6); //codec.SetBidSize(tick1, 3, 3); //codec.SetBidPrice(tick1, 4, 1233.4); //codec.SetBidSize(tick1, 4, 4); //codec.SetBidPrice(tick1, 5, 1233.2); //codec.SetBidSize(tick1, 5, 5); //codec.SetBidPrice(tick1, 6, 1232.0); //codec.SetBidSize(tick1, 6, 6); codec.SetLowerLimitPrice(tick1, 123.4); codec.SetUpperLimitPrice(tick1, 567.8); codec.SetSettlementPrice(tick1, 123.4); codec.SetOpen(tick1, 10); codec.SetHigh(tick1, 10); codec.SetLow(tick1, 10); codec.SetClose(tick1, 10); codec.SetBarSize(tick1, 10); tick1.Time_HHmm = 1234; tick1.Time_____ssf__ = 567; tick1.Time________ff = 0; PbTick tick2 = new PbTick(); codec.SetLastPrice(tick2, 1234.2); codec.SetVolume(tick2, 2); codec.SetActionDay(tick2, DateTime.Today); codec.SetTradingDay(tick2, DateTime.Today.AddDays(-1)); codec.SetAskPrice(tick2, 1, 1234.2); codec.SetAskSize(tick2, 1, 1); codec.SetAskPrice(tick2, 2, 1234.4); codec.SetAskSize(tick2, 2, 2); codec.SetAskPrice(tick2, 3, 1234.6); codec.SetAskSize(tick2, 3, 3); codec.SetBidPrice(tick2, 1, 1234); codec.SetBidSize(tick2, 1, 1); codec.SetBidPrice(tick2, 2, 1233.8); codec.SetBidSize(tick2, 2, 2); codec.SetBidPrice(tick2, 3, 1233.6); codec.SetBidSize(tick2, 3, 3); codec.SetLowerLimitPrice(tick2, 123.4); codec.SetUpperLimitPrice(tick2, 567.8); codec.SetSettlementPrice(tick2, 123.4); codec.SetOpen(tick2, 10); codec.SetHigh(tick2, 10); codec.SetLow(tick2, 10); codec.SetClose(tick2, 10); codec.SetBarSize(tick2, 10); tick2.Time_HHmm = 1234; tick2.Time_____ssf__ = 572; tick2.Time________ff = 0; var diff = codec.Diff(tick1, tick2); Assert.AreEqual <int>(0, diff.ActionDay); Assert.AreEqual <int>(0, diff.TradingDay); Assert.AreEqual(null, diff.Static); Assert.AreEqual(null, diff.Bar); Assert.AreEqual <int>(0, diff.Depth1_3.AskPrice1, "AskPrice1"); Assert.AreEqual <int>(0, diff.Depth1_3.AskSize1, "AskSize1"); Assert.AreEqual <int>(0, diff.Depth1_3.AskPrice2, "AskPrice2"); Assert.AreEqual <int>(2, diff.Depth1_3.AskSize2, "AskSize2"); Assert.AreEqual <int>(0, diff.Depth1_3.AskPrice3, "AskPrice3"); Assert.AreEqual <int>(3, diff.Depth1_3.AskSize3, "AskSize3"); Assert.AreEqual <int>(0, diff.Time_____ssf__); var tick3 = codec.Restore(tick1, diff); Assert.AreEqual <int>(tick2.Depth1_3.AskPrice1, tick3.Depth1_3.AskPrice1); Assert.AreEqual <int>(tick2.Depth1_3.AskPrice2, tick3.Depth1_3.AskPrice2); Assert.AreEqual <int>(tick2.Depth1_3.AskPrice3, tick3.Depth1_3.AskPrice3); Assert.AreEqual <int>(tick2.Depth1_3.AskSize1, tick3.Depth1_3.AskSize1); Assert.AreEqual <int>(tick2.Depth1_3.AskSize2, tick3.Depth1_3.AskSize2); Assert.AreEqual <int>(tick2.Depth1_3.AskSize3, tick3.Depth1_3.AskSize3); Assert.AreEqual <int>(tick2.Depth1_3.BidPrice1, tick3.Depth1_3.BidPrice1); Assert.AreEqual <int>(tick2.Depth1_3.BidPrice2, tick3.Depth1_3.BidPrice2); Assert.AreEqual <int>(tick2.Depth1_3.BidPrice3, tick3.Depth1_3.BidPrice3); Assert.AreEqual <int>(tick2.Depth1_3.BidSize1, tick3.Depth1_3.BidSize1); Assert.AreEqual <int>(tick2.Depth1_3.BidSize2, tick3.Depth1_3.BidSize2); Assert.AreEqual <int>(tick2.Depth1_3.BidSize3, tick3.Depth1_3.BidSize3); Assert.AreEqual <double>(codec.GetLowerLimitPrice(tick1), codec.GetLowerLimitPrice(tick3)); Assert.AreEqual <double>(codec.GetUpperLimitPrice(tick1), codec.GetUpperLimitPrice(tick3)); Assert.AreEqual <double>(codec.GetSettlementPrice(tick1), codec.GetSettlementPrice(tick3)); Assert.AreEqual <double>(codec.GetOpen(tick1), codec.GetOpen(tick3)); Assert.AreEqual <double>(codec.GetHigh(tick1), codec.GetHigh(tick3)); Assert.AreEqual <double>(codec.GetLow(tick1), codec.GetLow(tick3)); Assert.AreEqual <double>(codec.GetClose(tick1), codec.GetClose(tick3)); Assert.AreEqual <int>(572, tick3.Time_____ssf__); }