Skip to content

Commit f062de3

Browse files
committed
测试用例:增加回测时获取行情的测试用例
1 parent 07cf3ba commit f062de3

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

tqsdk/test/api/test_md_basic.py

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
#!/usr/bin/env python
22
# -*- coding: utf-8 -*-
3+
import json
34
import os
45
import random
56
import unittest
7+
from datetime import datetime
68
from tqsdk.test.api.helper import MockInsServer, MockServer
7-
from tqsdk import TqApi
9+
from tqsdk import TqApi, TqBacktest
810

911

1012
class TestMdBasic(unittest.TestCase):
@@ -72,9 +74,8 @@ def test_get_quote_normal(self):
7274
self.assertEqual(q.min_market_order_volume, 0)
7375
self.assertEqual(q.underlying_symbol, "")
7476
self.assertTrue(q.strike_price != q.strike_price) # 判定nan
75-
self.assertTrue(q.change != q.change)
76-
self.assertTrue(q.change_percent != q.change_percent)
7777
self.assertEqual(q.expired, False)
78+
self.assertEqual(q.ins_class, "FUTURE")
7879
self.assertEqual(q.margin, 16233.000000000002)
7980
self.assertEqual(q.commission, 11.594999999999999)
8081
self.assertEqual(repr(q.trading_time.day),
@@ -181,3 +182,28 @@ def test_get_tick_serial(self):
181182
self.assertRaises(KeyError, ticks.iloc[-1].__getitem__, "dur")
182183

183184
api.close()
185+
186+
187+
def test_get_quote_normal_backtest():
188+
"""
189+
回测获取行情报价
190+
191+
"""
192+
# 获取行情
193+
api = TqApi(backtest=TqBacktest(datetime(2019, 10, 15), datetime(2019, 10, 16)),
194+
_ins_url="https://openmd.shinnytech.com/t/md/symbols/2019-07-03.json")
195+
quote = api.get_quote("SHFE.cu2001")
196+
quote_data = {k: v for k, v in quote.items()}
197+
quote_data["trading_time"] = {k: v for k, v in quote_data["trading_time"].items()}
198+
199+
assert json.dumps(quote_data, sort_keys=True) == \
200+
'{"amount": NaN, "ask_price1": 47070.0, "ask_volume1": 1, "average": NaN, "bid_price1": 47050.0, "bid_volume1": 1, "close": NaN, "commission": 11.594999999999999, "datetime": "2019-10-14 23:59:59.999999", "delivery_month": 1, "delivery_year": 2020, "expire_datetime": 1579071600.0, "expired": false, "highest": NaN, "ins_class": "FUTURE", "last_price": 47060.0, "lower_limit": NaN, "lowest": NaN, "margin": 16233.000000000002, "max_limit_order_volume": 500, "max_market_order_volume": 0, "min_limit_order_volume": 0, "min_market_order_volume": 0, "open": NaN, "open_interest": 90714, "pre_close": NaN, "pre_open_interest": 0, "pre_settlement": NaN, "price_decs": 0, "price_tick": 10, "settlement": NaN, "strike_price": NaN, "trading_time": {"day": [["09:00:00", "10:15:00"], ["10:30:00", "11:30:00"], ["13:30:00", "15:00:00"]], "night": [["21:00:00", "25:00:00"]]}, "underlying_symbol": "", "upper_limit": NaN, "volume": 0, "volume_multiple": 5}'
201+
202+
# 其他取值方式
203+
assert quote["pre_close"] != quote.pre_close
204+
assert quote.get("pre_settlement") != quote.pre_settlement
205+
assert quote.get("highest") != quote.highest
206+
assert quote.get("lowest") != quote.lowest
207+
assert quote["open"] != quote.open
208+
assert quote["close"] != quote.close
209+
api.close()

0 commit comments

Comments
 (0)