44
55@author: gaoan
66"""
7- import re
87import enum
8+ import logging
9+ import re
10+
911import delorean
1012import six
1113
14+ from tigeropen .common .consts import Market , Language , QuoteRight , BarPeriod
1215from tigeropen .common .consts import THREAD_LOCAL , SecurityType , CorporateActionType , IndustryLevel
16+ from tigeropen .common .consts .service_types import GRAB_QUOTE_PERMISSION
17+ from tigeropen .common .consts .service_types import MARKET_STATE , ALL_SYMBOLS , ALL_SYMBOL_NAMES , BRIEF , \
18+ TIMELINE , KLINE , TRADE_TICK , OPTION_EXPIRATION , OPTION_CHAIN , FUTURE_EXCHANGE , OPTION_BRIEF , \
19+ OPTION_KLINE , OPTION_TRADE_TICK , FUTURE_KLINE , FUTURE_TICK , FUTURE_CONTRACT_BY_EXCHANGE_CODE , \
20+ FUTURE_TRADING_DATE , QUOTE_SHORTABLE_STOCKS , FUTURE_REAL_TIME_QUOTE , \
21+ FUTURE_CURRENT_CONTRACT , QUOTE_REAL_TIME , QUOTE_STOCK_TRADE , FINANCIAL_DAILY , FINANCIAL_REPORT , CORPORATE_ACTION , \
22+ ORDER_BOOK , INDUSTRY_LIST , INDUSTRY_STOCKS , STOCK_INDUSTRY , STOCK_DETAIL
1323from tigeropen .common .exceptions import ApiException
24+ from tigeropen .common .util .common_utils import eastern
25+ from tigeropen .common .util .contract_utils import extract_option_info
1426from tigeropen .fundamental .request .model import FinancialDailyParams , FinancialReportParams , CorporateActionParams , \
1527 IndustryParams
1628from tigeropen .fundamental .response .corporate_dividend_response import CorporateDividendResponse
1729from tigeropen .fundamental .response .corporate_earnings_calendar_response import EarningsCalendarResponse
1830from tigeropen .fundamental .response .corporate_split_response import CorporateSplitResponse
19- from tigeropen .fundamental .response .financial_report_response import FinancialReportResponse
2031from tigeropen .fundamental .response .financial_daily_response import FinancialDailyResponse
32+ from tigeropen .fundamental .response .financial_report_response import FinancialReportResponse
2133from tigeropen .fundamental .response .industry_response import IndustryListResponse , IndustryStocksResponse , \
2234 StockIndustryResponse
35+ from tigeropen .quote .request import OpenApiRequest
36+ from tigeropen .quote .request .model import MarketParams , MultipleQuoteParams , MultipleContractParams , \
37+ FutureQuoteParams , FutureExchangeParams , FutureTypeParams , FutureTradingTimeParams , SingleContractParams , \
38+ SingleOptionQuoteParams , OrderBookParams
2339from tigeropen .quote .response .future_briefs_response import FutureBriefsResponse
24- from tigeropen .quote .response .future_exchange_response import FutureExchangeResponse
2540from tigeropen .quote .response .future_contract_response import FutureContractResponse
41+ from tigeropen .quote .response .future_exchange_response import FutureExchangeResponse
2642from tigeropen .quote .response .future_quote_bar_response import FutureQuoteBarResponse
2743from tigeropen .quote .response .future_quote_ticks_response import FutureTradeTickResponse
2844from tigeropen .quote .response .future_trading_times_response import FutureTradingTimesResponse
45+ from tigeropen .quote .response .market_status_response import MarketStatusResponse
2946from tigeropen .quote .response .option_briefs_response import OptionBriefsResponse
3047from tigeropen .quote .response .option_chains_response import OptionChainsResponse
3148from tigeropen .quote .response .option_expirations_response import OptionExpirationsResponse
3249from tigeropen .quote .response .option_quote_bar_response import OptionQuoteBarResponse
3350from tigeropen .quote .response .option_quote_ticks_response import OptionTradeTickResponse
3451from tigeropen .quote .response .quote_bar_response import QuoteBarResponse
35- from tigeropen .quote .response .quote_timeline_response import QuoteTimelineResponse
3652from tigeropen .quote .response .quote_brief_response import QuoteBriefResponse
53+ from tigeropen .quote .response .quote_grab_permission_response import QuoteGrabPermissionResponse
54+ from tigeropen .quote .response .quote_order_book_response import OrderBookResponse
55+ from tigeropen .quote .response .quote_ticks_response import TradeTickResponse
56+ from tigeropen .quote .response .quote_timeline_response import QuoteTimelineResponse
3757from tigeropen .quote .response .stock_briefs_response import StockBriefsResponse
3858from tigeropen .quote .response .stock_details_response import StockDetailsResponse
3959from tigeropen .quote .response .stock_short_interest_response import ShortInterestResponse
4060from tigeropen .quote .response .stock_trade_meta_response import TradeMetaResponse
4161from tigeropen .quote .response .symbol_names_response import SymbolNamesResponse
4262from tigeropen .quote .response .symbols_response import SymbolsResponse
43- from tigeropen .quote .response .quote_order_book_response import OrderBookResponse
4463from tigeropen .tiger_open_client import TigerOpenClient
45- from tigeropen .quote .request .model import MarketParams , MultipleQuoteParams , MultipleContractParams , \
46- FutureQuoteParams , FutureExchangeParams , FutureTypeParams , FutureTradingTimeParams , SingleContractParams , \
47- SingleOptionQuoteParams , OrderBookParams
48- from tigeropen .quote .request import OpenApiRequest
49- from tigeropen .quote .response .quote_ticks_response import TradeTickResponse
50- from tigeropen .quote .response .market_status_response import MarketStatusResponse
51- from tigeropen .common .consts .service_types import MARKET_STATE , ALL_SYMBOLS , ALL_SYMBOL_NAMES , BRIEF , \
52- TIMELINE , KLINE , TRADE_TICK , OPTION_EXPIRATION , OPTION_CHAIN , FUTURE_EXCHANGE , OPTION_BRIEF , \
53- OPTION_KLINE , OPTION_TRADE_TICK , FUTURE_KLINE , FUTURE_TICK , FUTURE_CONTRACT_BY_EXCHANGE_CODE , \
54- FUTURE_TRADING_DATE , QUOTE_SHORTABLE_STOCKS , FUTURE_REAL_TIME_QUOTE , \
55- FUTURE_CURRENT_CONTRACT , QUOTE_REAL_TIME , QUOTE_STOCK_TRADE , FINANCIAL_DAILY , FINANCIAL_REPORT , CORPORATE_ACTION , \
56- ORDER_BOOK , INDUSTRY_LIST , INDUSTRY_STOCKS , STOCK_INDUSTRY , STOCK_DETAIL
57- from tigeropen .common .consts import Market , Language , QuoteRight , BarPeriod
58- from tigeropen .common .util .contract_utils import extract_option_info
59- from tigeropen .common .util .common_utils import eastern
60- import logging
6164
6265
6366class QuoteClient (TigerOpenClient ):
@@ -75,7 +78,7 @@ def __fetch_data(self, request):
7578 response = super (QuoteClient , self ).execute (request )
7679 return response
7780 except Exception as e :
78- if THREAD_LOCAL .logger :
81+ if hasattr ( THREAD_LOCAL , 'logger' ) and THREAD_LOCAL .logger :
7982 THREAD_LOCAL .logger .error (e , exc_info = True )
8083 raise e
8184
@@ -1130,3 +1133,19 @@ def get_stock_industry(self, symbol, market=Market.US):
11301133 return response .stock_industry
11311134 else :
11321135 raise ApiException (response .code , response .message )
1136+
1137+ def grab_quote_permission (self ):
1138+ """
1139+ 抢占行情权限
1140+ :return: 是否抢占成功, bool 类型
1141+ """
1142+ request = OpenApiRequest (GRAB_QUOTE_PERMISSION )
1143+ response_content = self .__fetch_data (request )
1144+ if response_content :
1145+ response = QuoteGrabPermissionResponse ()
1146+ response .parse_response_content (response_content )
1147+ if response .is_success ():
1148+ return response .is_master
1149+ else :
1150+ raise ApiException (response .code , response .message )
1151+ return False
0 commit comments