Advertisement
Guest User

Untitled

a guest
May 14th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1. from time import time
  2.  
  3. import rqdatac as rq
  4.  
  5. from vnpy.trader.object import BarData
  6. from vnpy.trader.constant import Exchange, Interval
  7. from vnpy.trader.database import database_manager
  8.  
  9. USERNAME = ""
  10. PASSWORD = ""
  11. FIELDS = ["open", "high", "low", "close", "volume"]
  12.  
  13. rq.init(USERNAME, PASSWORD, ("rqdatad-pro.ricequant.com", 16011))
  14.  
  15.  
  16. def generate_bar_from_row(row, symbol, exchange):
  17. """"""
  18. bar = BarData(
  19. symbol=symbol,
  20. exchange=Exchange(exchange),
  21. interval=Interval.MINUTE,
  22. open_price=row["open"],
  23. high_price=row["high"],
  24. low_price=row["low"],
  25. close_price=row["close"],
  26. volume=row["volume"],
  27. datetime=row.name.to_pydatetime(),
  28. gateway_name="DB"
  29. )
  30. return bar
  31.  
  32.  
  33. def download_minute_bar(vt_symbol):
  34. """下载某一合约的分钟线数据"""
  35. print(f"开始下载合约数据{vt_symbol}")
  36. symbol, exchange = vt_symbol.split(".")
  37.  
  38. start = time()
  39.  
  40. df = rq.get_price(
  41. symbol,
  42. frequency="1m",
  43. fields=FIELDS,
  44. start_date='20100416',
  45. end_date='20190416'
  46. )
  47.  
  48. bars = []
  49. for ix, row in df.iterrows():
  50. bar = generate_bar_from_row(row, symbol, exchange)
  51. bars.append(bar)
  52.  
  53. database_manager.save_bar_data(bars)
  54.  
  55. end = time()
  56. cost = (end - start) * 1000
  57.  
  58. print(
  59. "合约%s的分钟K线数据下载完成%s - %s,耗时%s毫秒"
  60. % (symbol, df.index[0], df.index[-1], cost)
  61. )
  62.  
  63.  
  64. if __name__ == "__main__":
  65. all_future_symbols = [
  66. 'IF88.CFFEX',
  67. 'TF88.CFFEX',
  68. 'T88.CFFEX',
  69. 'IC88.CFFEX',
  70. 'IH88.CFFEX',
  71. 'P88.DCE',
  72. 'V88.DCE',
  73. 'JD88.DCE',
  74. 'L88.DCE',
  75. 'PP88.DCE',
  76. 'ZC88.CZCE',
  77. 'FB88.DCE',
  78. 'BB88.DCE',
  79. 'TA88.CZCE',
  80. 'I88.DCE',
  81. 'J88.DCE',
  82. 'JM88.DCE',
  83. 'PM88.CZCE',
  84. 'CF88.CZCE',
  85. 'WH88.CZCE',
  86. 'SR88.CZCE',
  87. 'RI88.CZCE',
  88. 'OI88.CZCE',
  89. 'MA88.CZCE',
  90. 'JR88.CZCE',
  91. 'RM88.CZCE',
  92. 'FG88.CZCE',
  93. 'LR88.CZCE',
  94. 'SM88.CZCE',
  95. 'SF88.CZCE',
  96. 'C88.DCE',
  97. 'A88.DCE',
  98. 'B88.DCE',
  99. 'M88.DCE',
  100. 'Y88.DCE',
  101. 'CS88.DCE',
  102. 'WS88.CZCE',
  103. 'WT88.CZCE',
  104. 'RO88.CZCE',
  105. 'ER88.CZCE',
  106. 'ME88.CZCE',
  107. 'S88.DCE',
  108. 'RS88.CZCE',
  109. 'TC88.CZCE',
  110. 'IF888.CFFEX',
  111. 'TF888.CFFEX',
  112. 'IC888.CFFEX',
  113. 'T888.CFFEX',
  114. 'IH888.CFFEX',
  115. 'P888.DCE',
  116. 'V888.DCE',
  117. 'JD888.DCE',
  118. 'L888.DCE',
  119. 'PP888.DCE',
  120. 'ZC888.CZCE',
  121. 'FB888.DCE',
  122. 'TA888.CZCE',
  123. 'BB888.DCE',
  124. 'I888.DCE',
  125. 'J888.DCE',
  126. 'JM888.DCE',
  127. 'PM888.CZCE',
  128. 'CF888.CZCE',
  129. 'WH888.CZCE',
  130. 'SR888.CZCE',
  131. 'RI888.CZCE',
  132. 'OI888.CZCE',
  133. 'MA888.CZCE',
  134. 'JR888.CZCE',
  135. 'RM888.CZCE',
  136. 'FG888.CZCE',
  137. 'LR888.CZCE',
  138. 'SF888.CZCE',
  139. 'SM888.CZCE',
  140. 'C888.DCE',
  141. 'A888.DCE',
  142. 'B888.DCE',
  143. 'M888.DCE',
  144. 'Y888.DCE',
  145. 'CS888.DCE',
  146. 'WS888.CZCE',
  147. 'WT888.CZCE',
  148. 'RO888.CZCE',
  149. 'ME888.CZCE',
  150. 'ER888.CZCE',
  151. 'S888.DCE',
  152. 'TC888.CZCE',
  153. 'RS888.CZCE',
  154. 'CY88.CZCE',
  155. 'CY888.CZCE',
  156. 'AP88.CZCE',
  157. 'AP888.CZCE',
  158. 'SC88.INE',
  159. 'SC888.INE',
  160. 'TS88.CFFEX',
  161. 'TS888.CFFEX',
  162. 'AL88.SHFE',
  163. 'FU88.SHFE',
  164. 'CU88.SHFE',
  165. 'ZN88.SHFE',
  166. 'PB88.SHFE',
  167. 'BU88.SHFE',
  168. 'SN88.SHFE',
  169. 'NI88.SHFE',
  170. 'RU88.SHFE',
  171. 'AU88.SHFE',
  172. 'AG88.SHFE',
  173. 'RB88.SHFE',
  174. 'HC88.SHFE',
  175. 'WR88.SHFE',
  176. 'AL888.SHFE',
  177. 'FU888.SHFE',
  178. 'ZN888.SHFE',
  179. 'CU888.SHFE',
  180. 'PB888.SHFE',
  181. 'BU888.SHFE',
  182. 'SN888.SHFE',
  183. 'NI888.SHFE',
  184. 'RU888.SHFE',
  185. 'AU888.SHFE',
  186. 'AG888.SHFE',
  187. 'HC888.SHFE',
  188. 'RB888.SHFE',
  189. 'WR888.SHFE',
  190. 'SP88.SHFE',
  191. 'SP888.SHFE',
  192. 'EG88.DCE',
  193. 'EG888.DCE',
  194. 'CJ88.CZCE',
  195. 'CJ888.CZCE',
  196. ]
  197. for symbol in all_future_symbols:
  198. download_minute_bar(symbol)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement