public CandleForDb(int ticker, int pointCost, CandleData candle) { this.ticker = ticker; time = candle.timeOpen; open = candle.open; HLC = candle.GetHlcOffset16(pointCost); }
private string MakeInsertCommand(CandleData candle, int ticker) { int pointCost; if (!pointCostByTicker.TryGetValue(ticker, out pointCost)) return string.Empty; return string.Format("exec {0} @ticker={1}, @date='{2:yyyyMMdd HH:mm}', " + "@open={3}, @HLC={4}", ProcUpsertQuoteRecord, ticker, candle.timeOpen, candle.open.ToStringUniform(), candle.GetHlcOffset16(pointCost)); //return string.Format("if exists (select * from QUOTE where ticker={0} and date='{1:yyyyMMdd HH:mm}') begin " + // " update QUOTE set [open]={2}, HLC={3} end else begin " + // "insert into QUOTE (ticker, date, [open], HLC) values (" + // "{0}, '{1:yyyyMMdd HH:mm}', {2}, {3}) end", // ticker, // candle.timeOpen, candle.open.ToStringUniform(), candle.GetHlcOffset(pointCost)); }
public void TestHlcFormat() { var candleData = new CandleData { open = (float) 1.2345, high = (float) 1.2355, low = (float) 1.2335, close = (float) 1.2344 }; var offset = candleData.GetHlcOffset(VersePointValue); Assert.AreEqual(0x7E7589, offset, "TestHlcFormat: GetHlcOffset error"); var line = candleData.GetHlcOffsetHEX(VersePointValue); Assert.AreEqual("7E7589", line, "TestHlcFormat: GetHlcOffsetHEX error"); var offset16 = candleData.GetHlcOffset16(VersePointValue); Assert.AreEqual(0x7F9B8063, offset16, "TestHlcFormat: GetHlcOffset16 error"); var line16 = candleData.GetHlcOffsetHEX16(VersePointValue); Assert.AreEqual("7F9B8063", line16, "TestHlcFormat: GetHlcOffsetHEX16 error"); var candle = new CandleData {open = candleData.open}; candle.MakeHlcFromOffset(offset, VersePointValue); Assert.AreEqual(candleData.high, candle.high, 0.00001, "TestHlcFormat: MakeHlcFromOffset error (high)"); Assert.AreEqual(candleData.low, candle.low, 0.00001, "TestHlcFormat: MakeHlcFromOffset error (low)"); Assert.AreEqual(candleData.close, candle.close, 0.00001, "TestHlcFormat: MakeHlcFromOffset error (close)"); candle.MakeHlcFromOffsetHEX(line, VersePointValue); Assert.AreEqual(candleData.high, candle.high, 0.00001, "TestHlcFormat: MakeHlcFromOffsetHEX error (high)"); Assert.AreEqual(candleData.low, candle.low, 0.00001, "TestHlcFormat: MakeHlcFromOffsetHEX error (low)"); Assert.AreEqual(candleData.close, candle.close, 0.00001, "TestHlcFormat: MakeHlcFromOffsetHEX error (close)"); candle.MakeHlcFromOffset16(offset16, VersePointValue); Assert.AreEqual(candleData.high, candle.high, 0.00001, "TestHlcFormat: MakeHlcFromOffset16 error (high)"); Assert.AreEqual(candleData.low, candle.low, 0.00001, "TestHlcFormat: MakeHlcFromOffset16 error (low)"); candle.MakeHlcFromOffsetHEX16(line16, VersePointValue); Assert.AreEqual(candleData.high, candle.high, 0.00001, "TestHlcFormat: MakeHlcFromOffset16 error (high)"); Assert.AreEqual(candleData.low, candle.low, 0.00001, "TestHlcFormat: MakeHlcFromOffset16 error (low)"); }