Efficient way to get interval HiLo price for a list of stocks with different date time interval

Given the exmaple dataframe below (real dataframe is more than few thousand rows), what is the most efficient way to obtain the maximum high price and minimum low price given the ricCode and startDate and endDate of each row of the dataframe ?
{'ricCode': {0: '0.0700.HK', 2: '0700.HK', 3: '9988.HK, 6: '2388.HK', 7: 'NVDA.O, 8: 'AMD.O'}, 'startDate': {0: '2023-03-13', 2: '2023-03-16', 3: '2023-05-03', 6: '2024-01-29', 7: '2025-01-06', 8: '2024-11-19'}, 'endDate': {0: '2023-03-13', 2: '2023-03-16', 3: '2023-05-03', 6: '2024-01-29', 7: '2025-01-06', 8: '2024-11-19'}}
Currently, I am using a for loop to iterate through each row of data frame. This is not only slow and it sometimes doesn't even return any output and just got stuck at times, Would appreciate a more efficient and error-prone way to do this, given the the start date and end date are different each row.
def get_rd_data(row):
try:
rd_out = rd.get_data(universe=row['ricCode'],fields=['MAX(TR.HIGHPRICE)','MIN(TR.LOWPRICE)'], parameters={'SDate':row[‘startDate'], 'EDate':row['endDate'], 'Frq':'D','Adjusted':1}) # adjusted already
except:
out = get_rd_data(row)
return out
output = pd.DataFrame()
for idx, row in data.iterrows():
output = pd.concat([output,get_rd_data(row)], axis=0)
Answers
-
Thank you for reaching out to us.
It looks like that the application retrieves data at different dates for each RIC. For example:
If this is correct, you need to call the get_data method for each row at a time.
Moreover, you need to add the retry logic in the try/except block. You can refer to the following discussions.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 685 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 252 ETA
- 556 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 652 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛