Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import time
- import rqdatac as rq
- from vnpy.trader.object import BarData
- from vnpy.trader.constant import Exchange, Interval
- from vnpy.trader.database import database_manager
- USERNAME = ""
- PASSWORD = ""
- FIELDS = ["open", "high", "low", "close", "volume"]
- rq.init(USERNAME, PASSWORD, ("rqdatad-pro.ricequant.com", 16011))
- def generate_bar_from_row(row, symbol, exchange):
- """"""
- bar = BarData(
- symbol=symbol,
- exchange=Exchange(exchange),
- interval=Interval.MINUTE,
- open_price=row["open"],
- high_price=row["high"],
- low_price=row["low"],
- close_price=row["close"],
- volume=row["volume"],
- datetime=row.name.to_pydatetime(),
- gateway_name="DB"
- )
- return bar
- def download_minute_bar(vt_symbol):
- """下载某一合约的分钟线数据"""
- print(f"开始下载合约数据{vt_symbol}")
- symbol, exchange = vt_symbol.split(".")
- start = time()
- df = rq.get_price(
- symbol,
- frequency="1m",
- fields=FIELDS,
- start_date='20100416',
- end_date='20190416'
- )
- bars = []
- for ix, row in df.iterrows():
- bar = generate_bar_from_row(row, symbol, exchange)
- bars.append(bar)
- database_manager.save_bar_data(bars)
- end = time()
- cost = (end - start) * 1000
- print(
- "合约%s的分钟K线数据下载完成%s - %s,耗时%s毫秒"
- % (symbol, df.index[0], df.index[-1], cost)
- )
- if __name__ == "__main__":
- all_future_symbols = [
- 'IF88.CFFEX',
- 'TF88.CFFEX',
- 'T88.CFFEX',
- 'IC88.CFFEX',
- 'IH88.CFFEX',
- 'P88.DCE',
- 'V88.DCE',
- 'JD88.DCE',
- 'L88.DCE',
- 'PP88.DCE',
- 'ZC88.CZCE',
- 'FB88.DCE',
- 'BB88.DCE',
- 'TA88.CZCE',
- 'I88.DCE',
- 'J88.DCE',
- 'JM88.DCE',
- 'PM88.CZCE',
- 'CF88.CZCE',
- 'WH88.CZCE',
- 'SR88.CZCE',
- 'RI88.CZCE',
- 'OI88.CZCE',
- 'MA88.CZCE',
- 'JR88.CZCE',
- 'RM88.CZCE',
- 'FG88.CZCE',
- 'LR88.CZCE',
- 'SM88.CZCE',
- 'SF88.CZCE',
- 'C88.DCE',
- 'A88.DCE',
- 'B88.DCE',
- 'M88.DCE',
- 'Y88.DCE',
- 'CS88.DCE',
- 'WS88.CZCE',
- 'WT88.CZCE',
- 'RO88.CZCE',
- 'ER88.CZCE',
- 'ME88.CZCE',
- 'S88.DCE',
- 'RS88.CZCE',
- 'TC88.CZCE',
- 'IF888.CFFEX',
- 'TF888.CFFEX',
- 'IC888.CFFEX',
- 'T888.CFFEX',
- 'IH888.CFFEX',
- 'P888.DCE',
- 'V888.DCE',
- 'JD888.DCE',
- 'L888.DCE',
- 'PP888.DCE',
- 'ZC888.CZCE',
- 'FB888.DCE',
- 'TA888.CZCE',
- 'BB888.DCE',
- 'I888.DCE',
- 'J888.DCE',
- 'JM888.DCE',
- 'PM888.CZCE',
- 'CF888.CZCE',
- 'WH888.CZCE',
- 'SR888.CZCE',
- 'RI888.CZCE',
- 'OI888.CZCE',
- 'MA888.CZCE',
- 'JR888.CZCE',
- 'RM888.CZCE',
- 'FG888.CZCE',
- 'LR888.CZCE',
- 'SF888.CZCE',
- 'SM888.CZCE',
- 'C888.DCE',
- 'A888.DCE',
- 'B888.DCE',
- 'M888.DCE',
- 'Y888.DCE',
- 'CS888.DCE',
- 'WS888.CZCE',
- 'WT888.CZCE',
- 'RO888.CZCE',
- 'ME888.CZCE',
- 'ER888.CZCE',
- 'S888.DCE',
- 'TC888.CZCE',
- 'RS888.CZCE',
- 'CY88.CZCE',
- 'CY888.CZCE',
- 'AP88.CZCE',
- 'AP888.CZCE',
- 'SC88.INE',
- 'SC888.INE',
- 'TS88.CFFEX',
- 'TS888.CFFEX',
- 'AL88.SHFE',
- 'FU88.SHFE',
- 'CU88.SHFE',
- 'ZN88.SHFE',
- 'PB88.SHFE',
- 'BU88.SHFE',
- 'SN88.SHFE',
- 'NI88.SHFE',
- 'RU88.SHFE',
- 'AU88.SHFE',
- 'AG88.SHFE',
- 'RB88.SHFE',
- 'HC88.SHFE',
- 'WR88.SHFE',
- 'AL888.SHFE',
- 'FU888.SHFE',
- 'ZN888.SHFE',
- 'CU888.SHFE',
- 'PB888.SHFE',
- 'BU888.SHFE',
- 'SN888.SHFE',
- 'NI888.SHFE',
- 'RU888.SHFE',
- 'AU888.SHFE',
- 'AG888.SHFE',
- 'HC888.SHFE',
- 'RB888.SHFE',
- 'WR888.SHFE',
- 'SP88.SHFE',
- 'SP888.SHFE',
- 'EG88.DCE',
- 'EG888.DCE',
- 'CJ88.CZCE',
- 'CJ888.CZCE',
- ]
- for symbol in all_future_symbols:
- download_minute_bar(symbol)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement