Esempio n. 1
0
def download_history_data(symbol, exchange):
    print(symbol, exchange)
    begin_date = datetime.strptime("2019-09-19", "%Y-%m-%d")

    for i in range(1):
        start_date = begin_date.replace(year=begin_date.year + i)
        # end_date = begin_date.replace(year=begin_date.year + i + 1)
        end_date = datetime.now()

        print(start_date, end_date)
        req = HistoryRequest(symbol=symbol,
                             exchange=Exchange(exchange),
                             interval=Interval("1m"),
                             start=start_date,
                             end=end_date)
        data = mddata_client.query_history(req)
Esempio n. 2
0
 def query_bar_from_rq(self, symbol: str, exchange: Exchange,
                       interval: Interval, start: datetime, end: datetime):
     """
     Query bar data from RQData.
     """
     req = HistoryRequest(symbol=symbol,
                          exchange=exchange,
                          interval=interval,
                          start=start,
                          end=end)
     # data = mddata_client.query_history(req)
     try:
         data = mddata_client.query_history(req)
     except Exception as ex:
         self.write_log(f"{symbol}.{exchange.value}合约下载失败:{ex.args}")
         return None
     return data
Esempio n. 3
0
    def run_downloading(
        self,
        vt_symbol: str,
        interval: str,
        start: datetime,
        end: datetime
    ):
        """
        Query bar data from RQData.
        """
        self.write_log(f"{vt_symbol}-{interval}开始下载历史数据")

        symbol, exchange = extract_vt_symbol(vt_symbol)

        req = HistoryRequest(
            symbol=symbol,
            exchange=exchange,
            interval=Interval(interval),
            start=start,
            end=end
        )

        contract = self.main_engine.get_contract(vt_symbol)

        try:
            # If history data provided in gateway, then query
            if contract and contract.history_data:
                data = self.main_engine.query_history(
                    req, contract.gateway_name
                )
            # Otherwise use RQData to query data
            else:
                data = mddata_client.query_history(req)

            if data:
                self.write_log(f"{vt_symbol}-{interval}历史数据下载完成, 共计:{len(data)}")
                database_manager.save_bar_data(data)
                self.write_log(f"{vt_symbol}-{interval}数据保存成功!")
            else:
                self.write_log(f"数据下载失败,无法获取{vt_symbol}的历史数据")
        except Exception:
            msg = f"数据下载失败,触发异常:\n{traceback.format_exc()}"
            self.write_log(msg)

        # Clear thread object handler.
        self.thread = None
Esempio n. 4
0
    def get_bars(self, vt_symbol: str, start_date: str, interval: Interval, use_df: bool = False) -> Sequence[BarData]:
        """"""
        contract = self.main_engine.get_contract(vt_symbol)
        if not contract:
            return []

        start = datetime.strptime(start_date, "%Y%m%d")

        req = HistoryRequest(
            symbol=contract.symbol,
            exchange=contract.exchange,
            start=start,
            interval=interval
        )

        try:
            data = mddata_client.query_history(req)
        except Exception as ex:
            self.write_log(f"{contract.symbol}.{contract.exchange.value}合约下载失败:{ex.args}")
            return None

        # return get_data(rqdata_client.query_history, arg=req, use_df=use_df)
        return data