Skip to content

Commit c85a32a

Browse files
author
方佳
committed
Merge branch 'main_merge_260624' into 'main'
feat:add market data api See merge request webull/webull-openapi-python-sdk!35
2 parents 5e76f26 + b2c1175 commit c85a32a

33 files changed

Lines changed: 1414 additions & 5 deletions

‎samples/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.11'
1+
__version__ = '2.0.12'

‎samples/data/data_client.py‎

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,123 @@
164164
res = data_client.option_market_data.get_option_snapshot("AAPL260522C00300000", Category.US_OPTION.name)
165165
if res.status_code == 200:
166166
print('get_option_snapshot:', res.json())
167+
168+
# Fundamentals - Capital Flow
169+
res = data_client.fundamentals.get_capital_flow("AAPL", Category.US_STOCK.name)
170+
if res.status_code == 200:
171+
print('get_capital_flow:', res.json())
172+
173+
# Fundamentals - Industry Comparison
174+
res = data_client.fundamentals.get_industry_comparison("AAPL", Category.US_STOCK.name)
175+
if res.status_code == 200:
176+
print('get_industry_comparison:', res.json())
177+
178+
# Fundamentals - SEC Filings
179+
res = data_client.fundamentals.get_sec_filings("AAPL", Category.US_STOCK.name)
180+
if res.status_code == 200:
181+
print('get_sec_filings:', res.json())
182+
183+
# Fundamentals - Earnings Calendar
184+
res = data_client.fundamentals.get_earnings_calendar("AAPL", Category.US_STOCK.name)
185+
if res.status_code == 200:
186+
print('get_earnings_calendar:', res.json())
187+
188+
# Fundamentals - Dividend Calendar
189+
res = data_client.fundamentals.get_dividend_calendar("TSLA", Category.US_STOCK.name)
190+
if res.status_code == 200:
191+
print('get_dividend_calendar:', res.json())
192+
193+
# Fundamentals - Fund Splits
194+
res = data_client.fundamentals.get_fund_splits("QQQ", Category.US_STOCK.name)
195+
if res.status_code == 200:
196+
print('get_fund_splits:', res.json())
197+
198+
# Fundamentals - Fund Rating
199+
res = data_client.fundamentals.get_fund_rating("QQQ", Category.US_STOCK.name)
200+
if res.status_code == 200:
201+
print('get_fund_rating:', res.json())
202+
203+
# Fundamentals - Fund Performance
204+
res = data_client.fundamentals.get_fund_performance("QQQ", Category.US_STOCK.name)
205+
if res.status_code == 200:
206+
print('get_fund_performance:', res.json())
207+
208+
# Fundamentals - Fund Net Value
209+
res = data_client.fundamentals.get_fund_net_value("QQQ", Category.US_STOCK.name)
210+
if res.status_code == 200:
211+
print('get_fund_net_value:', res.json())
212+
213+
# Fundamentals - Fund Holdings
214+
res = data_client.fundamentals.get_fund_holdings("QQQ", Category.US_STOCK.name)
215+
if res.status_code == 200:
216+
print('get_fund_holdings:', res.json())
217+
218+
# Fundamentals - Fund Files
219+
res = data_client.fundamentals.get_fund_files("QQQ", Category.US_STOCK.name)
220+
if res.status_code == 200:
221+
print('get_fund_files:', res.json())
222+
223+
# Fundamentals - Fund Dividends
224+
res = data_client.fundamentals.get_fund_dividends("QQQ", Category.US_STOCK.name)
225+
if res.status_code == 200:
226+
print('get_fund_dividends:', res.json())
227+
228+
# Fundamentals - Fund Brief
229+
res = data_client.fundamentals.get_fund_brief("QQQ", Category.US_STOCK.name)
230+
if res.status_code == 200:
231+
print('get_fund_brief:', res.json())
232+
233+
# Fundamentals - Fund Allocation
234+
res = data_client.fundamentals.get_fund_allocation("QQQ", Category.US_STOCK.name)
235+
if res.status_code == 200:
236+
print('get_fund_allocation:', res.json())
237+
238+
# Fundamentals - Financials Indicators
239+
res = data_client.fundamentals.get_financials_indicators("TSLA", Category.US_STOCK.name)
240+
if res.status_code == 200:
241+
print('get_financials_indicators:', res.json())
242+
243+
# Fundamentals - Financials Income
244+
res = data_client.fundamentals.get_financials_income("TSLA", Category.US_STOCK.name)
245+
if res.status_code == 200:
246+
print('get_financials_income:', res.json())
247+
248+
# Fundamentals - Financials Cashflow
249+
res = data_client.fundamentals.get_financials_cashflow("TSLA", Category.US_STOCK.name)
250+
if res.status_code == 200:
251+
print('get_financials_cashflow:', res.json())
252+
253+
# Fundamentals - Financials Balance Sheet
254+
res = data_client.fundamentals.get_financials_balance_sheet("TSLA", Category.US_STOCK.name)
255+
if res.status_code == 200:
256+
print('get_financials_balance_sheet:', res.json())
257+
258+
# Fundamentals - Financials Alert
259+
res = data_client.fundamentals.get_financials_alert("AAPL", Category.US_STOCK.name)
260+
if res.status_code == 200:
261+
print('get_financials_alert:', res.json())
262+
263+
# Fundamentals - Forecast EPS
264+
res = data_client.fundamentals.get_forecast_eps("AAPL", Category.US_STOCK.name)
265+
if res.status_code == 200:
266+
print('get_forecast_eps:', res.json())
267+
268+
# Screener - Market Sectors
269+
res = data_client.screener.get_market_sectors(Category.US_STOCK.name)
270+
if res.status_code == 200:
271+
print('get_market_sectors:', res.json())
272+
273+
# Screener - Market Sectors Detail
274+
res = data_client.screener.get_market_sectors_detail("6391", Category.US_STOCK.name)
275+
if res.status_code == 200:
276+
print('get_market_sectors_detail:', res.json())
277+
278+
# Screener - High Dividend Rank
279+
res = data_client.screener.get_high_dividend(Category.US_STOCK.name)
280+
if res.status_code == 200:
281+
print('get_high_dividend:', res.json())
282+
283+
# Screener - 52 Week High/Low
284+
res = data_client.screener.get_52whl(Category.US_STOCK.name, rank_type="NEW_HIGH")
285+
if res.status_code == 200:
286+
print('get_52whl:', res.json())

‎webull/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.0.11'
1+
__version__ = '2.0.12'

‎webull/core/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = '2.0.11'
1+
__version__ = '2.0.12'
22

33
import logging
44

‎webull/data/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# coding=utf-8
22

3-
__version__ = '2.0.11'
3+
__version__ = '2.0.12'

‎webull/data/data_client.py‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from webull.data.quotes.instrument import Instrument
2525
from webull.data.quotes.market_data import MarketData
2626
from webull.data.quotes.option_market_data import OptionMarketData
27+
from webull.data.quotes.fundamentals import Fundamentals
2728
from webull.data.quotes.screener import Screener
2829
from webull.data.quotes.watchlist import Watchlist
2930

@@ -38,6 +39,7 @@ def __init__(self, api_client):
3839
self.futures_market_data = FuturesMarketData(api_client)
3940
self.option_market_data = OptionMarketData(api_client)
4041
self.event_market_data = EventMarketData(api_client)
42+
self.fundamentals = Fundamentals(api_client)
4143
self.screener = Screener(api_client)
4244
self.watchlist = Watchlist(api_client)
4345

0 commit comments

Comments
 (0)