|
14 | 14 |
|
15 | 15 | from webullsdkmdata.request.get_historical_bars_request import GetHistoricalBarsRequest
|
16 | 16 | from webullsdkmdata.request.get_snapshot_request import GetSnapshotRequest
|
| 17 | +from webullsdkmdata.request.get_eod_bars_request import GetEodBarsRequest |
| 18 | +from webullsdkmdata.request.get_corp_action_request import GetCorpActionRequest |
| 19 | + |
17 | 20 |
|
18 | 21 |
|
19 | 22 | class MarketData:
|
@@ -55,3 +58,68 @@ def get_snapshot(self, symbols, category):
|
55 | 58 | quote_request.set_category(category)
|
56 | 59 | response = self.client.get_response(quote_request)
|
57 | 60 | return response
|
| 61 | + |
| 62 | + def get_eod_bar(self, instrument_ids, date=None, count='1'): |
| 63 | + """ |
| 64 | + Only for Webull JP |
| 65 | +
|
| 66 | + Query end-of-day market information according to instrument_id. |
| 67 | +
|
| 68 | + :param instrument_ids: Instrument id collection, such as: 913256135,913303964. |
| 69 | + Multiple instrument_ids should be separated by ,. |
| 70 | + A single query supports up to 200 instrument_id |
| 71 | +
|
| 72 | + :param date: UTC time. Time format: yyyy-MM-dd, and the default check is conducted on the latest date |
| 73 | +
|
| 74 | + :param count: With “date” as the deadline, the end-of-day market data of the last “count” trading days: |
| 75 | + the default is 1, and the maximum limit is 800 |
| 76 | + """ |
| 77 | + eod_bar_request = GetEodBarsRequest() |
| 78 | + eod_bar_request.set_instrument_ids(instrument_ids) |
| 79 | + if date is not None: |
| 80 | + eod_bar_request.set_date(date) |
| 81 | + eod_bar_request.set_count(count) |
| 82 | + response = self.client.get_response(eod_bar_request) |
| 83 | + return response |
| 84 | + |
| 85 | + def get_corp_action(self, instrument_ids, event_types, start_date=None, end_date=None, page_number=None, |
| 86 | + page_size=None, last_update_time=None): |
| 87 | + """ |
| 88 | + Only for Webull JP |
| 89 | +
|
| 90 | + Supports the query of the corporate events for stock splits and reverse stock split, |
| 91 | + including past and upcoming events. |
| 92 | +
|
| 93 | + :param instrument_ids: Instrument id collection, such as: 913256135,913303964. |
| 94 | + Multiple instrument_ids should be separated by ,. |
| 95 | + A single query supports up to 100 instrument_id |
| 96 | +
|
| 97 | + :param event_types: Event type collection. Multiple event_types should be separated by , |
| 98 | +
|
| 99 | + :param start_date: Event start date, UTC time.Time format: yyyy-MM-dd |
| 100 | +
|
| 101 | + :param end_date: Event end date, UTC time.Time format: yyyy-MM-dd |
| 102 | +
|
| 103 | + :param page_number: The initial value, if not passed, the first page will be searched by default |
| 104 | +
|
| 105 | + :param page_size: Number of entries per page: default value is 20, and maximum value is 200. |
| 106 | + Integers can be filled |
| 107 | +
|
| 108 | + :param last_update_time: Incremental update time, UTC time. Time format: yyyy-MM-dd HH:mm:ss |
| 109 | +
|
| 110 | + """ |
| 111 | + eod_corp_action_request = GetCorpActionRequest() |
| 112 | + eod_corp_action_request.set_instrument_ids(instrument_ids) |
| 113 | + eod_corp_action_request.set_event_types(event_types) |
| 114 | + if start_date is not None: |
| 115 | + eod_corp_action_request.set_start_date(start_date) |
| 116 | + if end_date is not None: |
| 117 | + eod_corp_action_request.set_end_date(end_date) |
| 118 | + if page_number is not None: |
| 119 | + eod_corp_action_request.set_page_number(page_number) |
| 120 | + if page_size is not None: |
| 121 | + eod_corp_action_request.set_page_size(page_size) |
| 122 | + if last_update_time is not None: |
| 123 | + eod_corp_action_request.set_last_update_time(last_update_time) |
| 124 | + response = self.client.get_response(eod_corp_action_request) |
| 125 | + return response |
0 commit comments