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 MARKET_STATE , ALL_SYMBOLS , ALL_SYMBOL_NAMES , BRIEF , \
17+ TIMELINE , KLINE , TRADE_TICK , OPTION_EXPIRATION , OPTION_CHAIN , FUTURE_EXCHANGE , OPTION_BRIEF , \
18+ OPTION_KLINE , OPTION_TRADE_TICK , FUTURE_KLINE , FUTURE_TICK , FUTURE_CONTRACT_BY_EXCHANGE_CODE , \
19+ FUTURE_TRADING_DATE , QUOTE_SHORTABLE_STOCKS , FUTURE_REAL_TIME_QUOTE , \
20+ FUTURE_CURRENT_CONTRACT , QUOTE_REAL_TIME , QUOTE_STOCK_TRADE , FINANCIAL_DAILY , FINANCIAL_REPORT , CORPORATE_ACTION , \
21+ INDUSTRY_LIST , INDUSTRY_STOCKS , STOCK_INDUSTRY , STOCK_DETAIL , GRAB_QUOTE_PERMISSION
1322from tigeropen .common .exceptions import ApiException
23+ from tigeropen .common .util .common_utils import eastern
24+ from tigeropen .common .util .contract_utils import extract_option_info
1425from tigeropen .fundamental .request .model import FinancialDailyParams , FinancialReportParams , CorporateActionParams , \
1526 IndustryParams
1627from tigeropen .fundamental .response .corporate_dividend_response import CorporateDividendResponse
1728from tigeropen .fundamental .response .corporate_earnings_calendar_response import EarningsCalendarResponse
1829from tigeropen .fundamental .response .corporate_split_response import CorporateSplitResponse
19- from tigeropen .fundamental .response .financial_report_response import FinancialReportResponse
2030from tigeropen .fundamental .response .financial_daily_response import FinancialDailyResponse
31+ from tigeropen .fundamental .response .financial_report_response import FinancialReportResponse
2132from tigeropen .fundamental .response .industry_response import IndustryListResponse , IndustryStocksResponse , \
2233 StockIndustryResponse
34+ from tigeropen .quote .request import OpenApiRequest
35+ from tigeropen .quote .request .model import MarketParams , MultipleQuoteParams , MultipleContractParams , \
36+ FutureQuoteParams , FutureExchangeParams , FutureTypeParams , FutureTradingTimeParams , SingleContractParams , \
37+ SingleOptionQuoteParams
2338from tigeropen .quote .response .future_briefs_response import FutureBriefsResponse
24- from tigeropen .quote .response .future_exchange_response import FutureExchangeResponse
2539from tigeropen .quote .response .future_contract_response import FutureContractResponse
40+ from tigeropen .quote .response .future_exchange_response import FutureExchangeResponse
2641from tigeropen .quote .response .future_quote_bar_response import FutureQuoteBarResponse
2742from tigeropen .quote .response .future_quote_ticks_response import FutureTradeTickResponse
2843from tigeropen .quote .response .future_trading_times_response import FutureTradingTimesResponse
44+ from tigeropen .quote .response .market_status_response import MarketStatusResponse
2945from tigeropen .quote .response .option_briefs_response import OptionBriefsResponse
3046from tigeropen .quote .response .option_chains_response import OptionChainsResponse
3147from tigeropen .quote .response .option_expirations_response import OptionExpirationsResponse
3248from tigeropen .quote .response .option_quote_bar_response import OptionQuoteBarResponse
3349from tigeropen .quote .response .option_quote_ticks_response import OptionTradeTickResponse
3450from tigeropen .quote .response .quote_bar_response import QuoteBarResponse
35- from tigeropen .quote .response .quote_timeline_response import QuoteTimelineResponse
3651from tigeropen .quote .response .quote_brief_response import QuoteBriefResponse
52+ from tigeropen .quote .response .quote_grab_permission_response import QuoteGrabPermissionResponse
53+ from tigeropen .quote .response .quote_ticks_response import TradeTickResponse
54+ from tigeropen .quote .response .quote_timeline_response import QuoteTimelineResponse
3755from tigeropen .quote .response .stock_briefs_response import StockBriefsResponse
3856from tigeropen .quote .response .stock_details_response import StockDetailsResponse
3957from tigeropen .quote .response .stock_short_interest_response import ShortInterestResponse
4058from tigeropen .quote .response .stock_trade_meta_response import TradeMetaResponse
4159from tigeropen .quote .response .symbol_names_response import SymbolNamesResponse
4260from tigeropen .quote .response .symbols_response import SymbolsResponse
4361from tigeropen .tiger_open_client import TigerOpenClient
44- from tigeropen .quote .request .model import MarketParams , MultipleQuoteParams , MultipleContractParams , \
45- FutureQuoteParams , FutureExchangeParams , FutureTypeParams , FutureTradingTimeParams , SingleContractParams , \
46- SingleOptionQuoteParams
47- from tigeropen .quote .request import OpenApiRequest
48- from tigeropen .quote .response .quote_ticks_response import TradeTickResponse
49- from tigeropen .quote .response .market_status_response import MarketStatusResponse
50- from tigeropen .common .consts .service_types import MARKET_STATE , ALL_SYMBOLS , ALL_SYMBOL_NAMES , BRIEF , \
51- TIMELINE , KLINE , TRADE_TICK , OPTION_EXPIRATION , OPTION_CHAIN , FUTURE_EXCHANGE , OPTION_BRIEF , \
52- OPTION_KLINE , OPTION_TRADE_TICK , FUTURE_KLINE , FUTURE_TICK , FUTURE_CONTRACT_BY_EXCHANGE_CODE , \
53- FUTURE_TRADING_DATE , QUOTE_SHORTABLE_STOCKS , FUTURE_REAL_TIME_QUOTE , \
54- FUTURE_CURRENT_CONTRACT , QUOTE_REAL_TIME , QUOTE_STOCK_TRADE , FINANCIAL_DAILY , FINANCIAL_REPORT , CORPORATE_ACTION , \
55- INDUSTRY_LIST , INDUSTRY_STOCKS , STOCK_INDUSTRY , STOCK_DETAIL
56- from tigeropen .common .consts import Market , Language , QuoteRight , BarPeriod
57- from tigeropen .common .util .contract_utils import extract_option_info
58- from tigeropen .common .util .common_utils import eastern
59- import logging
6062
6163
6264class QuoteClient (TigerOpenClient ):
@@ -74,7 +76,7 @@ def __fetch_data(self, request):
7476 response = super (QuoteClient , self ).execute (request )
7577 return response
7678 except Exception as e :
77- if THREAD_LOCAL .logger :
79+ if hasattr ( THREAD_LOCAL , 'logger' ) and THREAD_LOCAL .logger :
7880 THREAD_LOCAL .logger .error (e , exc_info = True )
7981 raise e
8082
@@ -1079,3 +1081,19 @@ def get_stock_industry(self, symbol, market=Market.US):
10791081 return response .stock_industry
10801082 else :
10811083 raise ApiException (response .code , response .message )
1084+
1085+ def grab_quote_permission (self ):
1086+ """
1087+ 抢占行情权限
1088+ :return: 是否抢占成功, bool 类型
1089+ """
1090+ request = OpenApiRequest (GRAB_QUOTE_PERMISSION )
1091+ response_content = self .__fetch_data (request )
1092+ if response_content :
1093+ response = QuoteGrabPermissionResponse ()
1094+ response .parse_response_content (response_content )
1095+ if response .is_success ():
1096+ return response .is_master
1097+ else :
1098+ raise ApiException (response .code , response .message )
1099+ return False
0 commit comments