Skip to content

Instantly share code, notes, and snippets.

@qzm
Created May 4, 2019 08:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qzm/a67779459aa5643301a304cf48b0cf5f to your computer and use it in GitHub Desktop.
Save qzm/a67779459aa5643301a304cf48b0cf5f to your computer and use it in GitHub Desktop.
get all future data from rqdata
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment