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