webull-openapi-python-sdk 2.0.10__py3-none-any.whl → 2.0.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- samples/__init__.py +1 -1
- samples/data/data_client.py +120 -0
- samples/trade/trade_client_v3.py +4 -2
- webull/__init__.py +1 -1
- webull/core/__init__.py +1 -1
- webull/core/common/region.py +2 -0
- webull/core/data/endpoints.json +11 -1
- webull/core/http/initializer/client_initializer.py +2 -28
- webull/data/__init__.py +1 -1
- webull/data/data_client.py +2 -0
- webull/data/quotes/fundamentals.py +335 -0
- webull/data/quotes/screener.py +88 -0
- webull/data/request/get_capital_flow_request.py +35 -0
- webull/data/request/get_dividend_calendar_request.py +31 -0
- webull/data/request/get_earnings_calendar_request.py +31 -0
- webull/data/request/get_financials_alert_request.py +31 -0
- webull/data/request/get_financials_balance_sheet_request.py +39 -0
- webull/data/request/get_financials_cashflow_request.py +39 -0
- webull/data/request/get_financials_income_request.py +39 -0
- webull/data/request/get_financials_indicators_request.py +39 -0
- webull/data/request/get_forecast_eps_request.py +31 -0
- webull/data/request/get_fund_allocation_request.py +31 -0
- webull/data/request/get_fund_brief_request.py +31 -0
- webull/data/request/get_fund_dividends_request.py +39 -0
- webull/data/request/get_fund_files_request.py +31 -0
- webull/data/request/get_fund_holdings_request.py +31 -0
- webull/data/request/get_fund_net_value_request.py +39 -0
- webull/data/request/get_fund_performance_request.py +31 -0
- webull/data/request/get_fund_rating_request.py +31 -0
- webull/data/request/get_fund_splits_request.py +31 -0
- webull/data/request/get_industry_comparison_request.py +35 -0
- webull/data/request/get_sec_filings_request.py +31 -0
- webull/data/request/screener/get_52whl_request.py +47 -0
- webull/data/request/screener/get_high_dividend_request.py +43 -0
- webull/data/request/screener/get_market_sectors_detail_request.py +51 -0
- webull/data/request/screener/get_market_sectors_request.py +47 -0
- webull/data/request/screener/get_most_active_request.py +2 -2
- webull/trade/__init__.py +1 -1
- webull/trade/trade/v2/account_info_v2.py +3 -3
- webull/trade/trade/v3/order_opration_v3.py +7 -7
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/METADATA +1 -1
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/RECORD +46 -21
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/WHEEL +0 -0
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/licenses/LICENSE +0 -0
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/licenses/NOTICE +0 -0
- {webull_openapi_python_sdk-2.0.10.dist-info → webull_openapi_python_sdk-2.0.12.dist-info}/top_level.txt +0 -0
webull/data/quotes/screener.py
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
from webull.data.request.screener.get_gainers_losers_request import GetGainersLosersRequest
|
|
18
18
|
from webull.data.request.screener.get_most_active_request import GetMostActiveRequest
|
|
19
|
+
from webull.data.request.screener.get_market_sectors_request import GetMarketSectorsRequest
|
|
20
|
+
from webull.data.request.screener.get_market_sectors_detail_request import GetMarketSectorsDetailRequest
|
|
21
|
+
from webull.data.request.screener.get_high_dividend_request import GetHighDividendRequest
|
|
22
|
+
from webull.data.request.screener.get_52whl_request import Get52WHLRequest
|
|
19
23
|
|
|
20
24
|
|
|
21
25
|
class Screener:
|
|
@@ -114,3 +118,87 @@ class Screener:
|
|
|
114
118
|
request.set_direction(direction)
|
|
115
119
|
response = self.client.get_response(request)
|
|
116
120
|
return response
|
|
121
|
+
|
|
122
|
+
def get_market_sectors(self, category, agg_type=None, period=None, page_index=None, page_size=None, direction=None):
|
|
123
|
+
"""
|
|
124
|
+
Get all sector overview data.
|
|
125
|
+
|
|
126
|
+
:param category: Security category. Required. (e.g., 'US_STOCK')
|
|
127
|
+
:param agg_type: Statistics type, default is MARKET_VALUE. Enum: MARKET_VALUE, VOLUME.
|
|
128
|
+
:param period: Statistics period, default is D1. Enum: D1, D5, M01, M03.
|
|
129
|
+
:param page_index: Page index.
|
|
130
|
+
:param page_size: Number of records per page.
|
|
131
|
+
:param direction: Sorting direction. Enum: ASC (ascending), DESC (descending).
|
|
132
|
+
"""
|
|
133
|
+
request = GetMarketSectorsRequest()
|
|
134
|
+
request.set_category(category)
|
|
135
|
+
request.set_agg_type(agg_type)
|
|
136
|
+
request.set_period(period)
|
|
137
|
+
request.set_page_index(page_index)
|
|
138
|
+
request.set_page_size(page_size)
|
|
139
|
+
request.set_direction(direction)
|
|
140
|
+
response = self.client.get_response(request)
|
|
141
|
+
return response
|
|
142
|
+
|
|
143
|
+
def get_market_sectors_detail(self, sector_id, category, period=None, page_index=None, page_size=None, sort_by=None, direction=None):
|
|
144
|
+
"""
|
|
145
|
+
Get stock list and statistics for a specific sector.
|
|
146
|
+
|
|
147
|
+
:param sector_id: Sector ID. Required.
|
|
148
|
+
:param category: Security category. Required. (e.g., 'US_STOCK')
|
|
149
|
+
:param period: Statistics period, default is D1. Enum: D1, D5, M01, M03.
|
|
150
|
+
:param page_index: Page index.
|
|
151
|
+
:param page_size: Number of records per page.
|
|
152
|
+
:param sort_by: Sort field, default is CHANGE_RATIO. Enum: CHANGE_RATIO, RELATIVE_VOLUME_10D, MARKET_VALUE, CLOSE, PRICE, PE_TTM, HIGH, LOW, AMPLITUDE, TURNOVER, VOLUME, YIELD, DIVIDEND.
|
|
153
|
+
:param direction: Sorting direction. Enum: ASC (ascending), DESC (descending).
|
|
154
|
+
"""
|
|
155
|
+
request = GetMarketSectorsDetailRequest()
|
|
156
|
+
request.set_sector_id(sector_id)
|
|
157
|
+
request.set_category(category)
|
|
158
|
+
request.set_period(period)
|
|
159
|
+
request.set_page_index(page_index)
|
|
160
|
+
request.set_page_size(page_size)
|
|
161
|
+
request.set_sort_by(sort_by)
|
|
162
|
+
request.set_direction(direction)
|
|
163
|
+
response = self.client.get_response(request)
|
|
164
|
+
return response
|
|
165
|
+
|
|
166
|
+
def get_high_dividend(self, category, sort_by=None, page_index=None, page_size=None, direction=None):
|
|
167
|
+
"""
|
|
168
|
+
Get high dividend rank list.
|
|
169
|
+
|
|
170
|
+
:param category: Security category. Required. (e.g., 'US_STOCK')
|
|
171
|
+
:param sort_by: Sort field, default is YIELD. Enum: CHANGE_RATIO, RELATIVE_VOLUME_10D, MARKET_VALUE, CLOSE, PRICE, PE_TTM, HIGH, LOW, AMPLITUDE, TURNOVER, VOLUME, YIELD, DIVIDEND.
|
|
172
|
+
:param page_index: Page index.
|
|
173
|
+
:param page_size: Number of records per page.
|
|
174
|
+
:param direction: Sorting direction. Enum: ASC (ascending), DESC (descending).
|
|
175
|
+
"""
|
|
176
|
+
request = GetHighDividendRequest()
|
|
177
|
+
request.set_category(category)
|
|
178
|
+
request.set_sort_by(sort_by)
|
|
179
|
+
request.set_page_index(page_index)
|
|
180
|
+
request.set_page_size(page_size)
|
|
181
|
+
request.set_direction(direction)
|
|
182
|
+
response = self.client.get_response(request)
|
|
183
|
+
return response
|
|
184
|
+
|
|
185
|
+
def get_52whl(self, category, rank_type=None, sort_by=None, page_index=None, page_size=None, direction=None):
|
|
186
|
+
"""
|
|
187
|
+
Get 52 week high/low rank list.
|
|
188
|
+
|
|
189
|
+
:param category: Security category. Required. (e.g., 'US_STOCK')
|
|
190
|
+
:param rank_type: Index code. Enum: NEW_HIGH, NEAR_HIGH, NEW_LOW, NEAR_LOW.
|
|
191
|
+
:param sort_by: Sort field, default is CHANGE_RATIO_52W. Enum: CHANGE_RATIO, RELATIVE_VOLUME_10D, MARKET_VALUE, CLOSE, PRICE, PE_TTM, HIGH, LOW, AMPLITUDE, TURNOVER, VOLUME, YIELD, DIVIDEND.
|
|
192
|
+
:param page_index: Page index.
|
|
193
|
+
:param page_size: Number of records per page.
|
|
194
|
+
:param direction: Sorting direction. Enum: ASC (ascending), DESC (descending).
|
|
195
|
+
"""
|
|
196
|
+
request = Get52WHLRequest()
|
|
197
|
+
request.set_rank_type(rank_type)
|
|
198
|
+
request.set_category(category)
|
|
199
|
+
request.set_sort_by(sort_by)
|
|
200
|
+
request.set_page_index(page_index)
|
|
201
|
+
request.set_page_size(page_size)
|
|
202
|
+
request.set_direction(direction)
|
|
203
|
+
response = self.client.get_response(request)
|
|
204
|
+
return response
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetCapitalFlowRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/stock/capital-flow", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_count(self, count):
|
|
34
|
+
if count:
|
|
35
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetDividendCalendarRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/stock/dividend-calendar", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetEarningsCalendarRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/stock/earnings-calendar", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFinancialsAlertRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/financial/alert", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFinancialsBalanceSheetRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/financial/balance-sheet", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_type(self, type):
|
|
34
|
+
if type:
|
|
35
|
+
self.add_query_param("type", type)
|
|
36
|
+
|
|
37
|
+
def set_count(self, count):
|
|
38
|
+
if count:
|
|
39
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFinancialsCashflowRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/financial/cash-flow", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_type(self, type):
|
|
34
|
+
if type:
|
|
35
|
+
self.add_query_param("type", type)
|
|
36
|
+
|
|
37
|
+
def set_count(self, count):
|
|
38
|
+
if count:
|
|
39
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFinancialsIncomeRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/financial/income", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_type(self, type):
|
|
34
|
+
if type:
|
|
35
|
+
self.add_query_param("type", type)
|
|
36
|
+
|
|
37
|
+
def set_count(self, count):
|
|
38
|
+
if count:
|
|
39
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFinancialsIndicatorsRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/financial/indicators", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_type(self, type):
|
|
34
|
+
if type:
|
|
35
|
+
self.add_query_param("type", type)
|
|
36
|
+
|
|
37
|
+
def set_count(self, count):
|
|
38
|
+
if count:
|
|
39
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetForecastEpsRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/stock/forecast-eps", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundAllocationRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/allocation", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundBriefRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/brief", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundDividendsRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/dividends", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_page_index(self, page_index):
|
|
34
|
+
if page_index:
|
|
35
|
+
self.add_query_param("page_index", page_index)
|
|
36
|
+
|
|
37
|
+
def set_page_size(self, page_size):
|
|
38
|
+
if page_size:
|
|
39
|
+
self.add_query_param("page_size", page_size)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundFilesRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/files", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundHoldingsRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/holdings", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundNetValueRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/net-value", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|
|
32
|
+
|
|
33
|
+
def set_last_date(self, last_date):
|
|
34
|
+
if last_date:
|
|
35
|
+
self.add_query_param("last_date", last_date)
|
|
36
|
+
|
|
37
|
+
def set_count(self, count):
|
|
38
|
+
if count:
|
|
39
|
+
self.add_query_param("count", count)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright 2022 Webull
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
# coding=utf-8
|
|
16
|
+
|
|
17
|
+
from webull.core.request import ApiRequest
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class GetFundPerformanceRequest(ApiRequest):
|
|
21
|
+
def __init__(self):
|
|
22
|
+
ApiRequest.__init__(self, "/openapi/fundamentals/fund/performance", version='v2', method="GET",
|
|
23
|
+
query_params={})
|
|
24
|
+
|
|
25
|
+
def set_symbol(self, symbol):
|
|
26
|
+
if symbol:
|
|
27
|
+
self.add_query_param("symbol", symbol)
|
|
28
|
+
|
|
29
|
+
def set_category(self, category):
|
|
30
|
+
if category:
|
|
31
|
+
self.add_query_param("category", category)
|