Example #1
0
def assure_stock_order_book_id(id_or_symbols):
    if isinstance(id_or_symbols, Instrument):
        return id_or_symbols.order_book_id
    elif isinstance(id_or_symbols, six.string_types):
        return assure_stock_order_book_id(instruments(id_or_symbols))
    else:
        raise RQInvalidArgument(_(u"unsupported order_book_id type"))
Example #2
0
def assure_stock_order_book_id(id_or_symbols):
    if isinstance(id_or_symbols, Instrument):
        return id_or_symbols.order_book_id
    elif isinstance(id_or_symbols, six.string_types):
        return assure_stock_order_book_id(instruments(id_or_symbols))
    else:
        raise RQInvalidArgument(_(u"unsupported order_book_id type"))
Example #3
0
def symbol(order_book_id, split=", "):
    if isinstance(order_book_id, six.string_types):
        return "{}[{}]".format(order_book_id,
                               instruments(order_book_id).symbol)
    else:
        s = split.join(symbol(item) for item in order_book_id)
        return s
 def periodCheck(self, stocks):
     # 股票上市小于一个月的,不分析
     one_month = 20
     selected_stocks = []
     for stock in stocks:
         # 获取上市天数
         on_board_days = instruments(stock).days_from_listed()
         if on_board_days > one_month:
             selected_stocks.append(stock)
     self.logger.info('过滤新股后,剩余股票%s个' % len(selected_stocks))
     return selected_stocks
def assure_future_order_book_id(id_or_symbols):
    if isinstance(id_or_symbols, Instrument):
        if id_or_symbols.type != "Future":
            raise RQInvalidArgument(
                _(u"{order_book_id} is not supported in current strategy type"
                  ).format(order_book_id=id_or_symbols.order_book_id))
        else:
            return id_or_symbols.order_book_id
    elif isinstance(id_or_symbols, six.string_types):
        return assure_future_order_book_id(instruments(id_or_symbols))
    else:
        raise RQInvalidArgument(_(u"unsupported order_book_id type"))
Example #6
0
def assure_future_order_book_id(id_or_symbols):
    if isinstance(id_or_symbols, Instrument):
        if id_or_symbols.type != "Future":
            raise RQInvalidArgument(
                _(u"{order_book_id} is not supported in current strategy type").format(
                    order_book_id=id_or_symbols.order_book_id))
        else:
            return id_or_symbols.order_book_id
    elif isinstance(id_or_symbols, six.string_types):
        return assure_future_order_book_id(instruments(id_or_symbols))
    else:
        raise RQInvalidArgument(_(u"unsupported order_book_id type"))
Example #7
0
def assure_stock_order_book_id(id_or_symbols):
    if isinstance(id_or_symbols, Instrument):
        order_book_id = id_or_symbols.order_book_id
        """
        这所以使用XSHG和XSHE来判断是否可交易是因为股票类型策略支持很多种交易类型,比如CS, ETF, LOF, FenjiMU, FenjiA, FenjiB,
        INDX等,但实际其中部分由不能交易,所以不能直接按照类型区分该合约是否可以交易。而直接通过判断其后缀可以比较好的区分是否可以进行交易
        """
        if "XSHG" in order_book_id or "XSHE" in order_book_id or "INDX" in order_book_id:
            return order_book_id
        else:
            raise RQInvalidArgument(
                _(u"{order_book_id} is not supported in current strategy type"
                  ).format(order_book_id=order_book_id))
    elif isinstance(id_or_symbols, six.string_types):
        return assure_stock_order_book_id(instruments(id_or_symbols))
    else:
        raise RQInvalidArgument(_(u"unsupported order_book_id type"))
 def periodCheck(self, stocks):
     # 股票上市小于一年,且大于8个月的,不分析
     # 股票上市小于一个月的,不分析
     one_year = 250
     eight_month = 167
     one_month = 20
     selected_stocks = []
     for stock in stocks:
         # 获取上市天数
         on_board_days = instruments(stock).days_from_listed()
         if on_board_days < one_year:
             if on_board_days < eight_month:
                 if on_board_days > one_month:
                     selected_stocks.append(stock)
         else:
             selected_stocks.append(stock)
     self.logger.debug('过滤掉上市小于一个月或上市大于8个月且小于一年的股票,剩余%d只股票' % len(selected_stocks))
     return selected_stocks
Example #9
0
def symbol(order_book_id, split=", "):
    if isinstance(order_book_id, six.string_types):
        return "{}[{}]".format(order_book_id, instruments(order_book_id).symbol)
    else:
        s = split.join(symbol(item) for item in order_book_id)
        return s