public CandleForDb(int ticker, int pointCost, CandleData candle)
 {
     this.ticker = ticker;
     time = candle.timeOpen;
     open = candle.open;
     HLC = candle.GetHlcOffset16(pointCost);
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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)");
        }