OHCL for customer interval through EIKON API in R

Is it possible to get OHCL data for customer intervals such as 45 days or 72 days instead of the standard daily, monthly, quarter, yearly etc.
rics <- list("BB.TO","AC.TO")
query_fields <- list("OPEN", "CLOSE", "HIGH", "LOW")
Want something like following in the interval parameters
mydata <- eikonapir::get_timeseries( rics, fields = query_fields, start_date = "2020-01-01T00:00:00", end_date = "2020-11-01T00:00:00", interval = "42days"
Best Answer
-
As requested, please find below the example
df = ek.get_timeseries('EUR=',['OPEN','HIGH','LOW','CLOSE'])
custom_int = '10D'
resampled_df = pd.DataFrame()
resampled_df['OPEN'] = df['OPEN'].resample(custom_int).ohlc()['open']
resampled_df['HIGH'] = df['HIGH'].resample(custom_int).max()
resampled_df['LOW'] = df['LOW'].resample(custom_int).min()
resampled_df['CLOSE'] = df['CLOSE'].resample(custom_int).ohlc()['close']
resampled_df0
Answers
-
Refer to the Eikon Data APIs for Python - Reference Guide, the possible values for the interval are tick, minute, hour, daily, weekly, monthly, quarterly, yearly.
This also applies to Eikon Data API R.
0 -
To add to the response by @Jirapongse, to create OHLC timeseries with a custom frequency such as 45 days, you could resample daily timeseries. In Python pandas offers pandas.Series.resample method, which makes this task very easy. I'm not sure if R offers similar capability. If not, I'm sure it can be developed fairly easily. Or you could use reticulate to utilize pandas methods.
0 -
0
-
Thank you @Alex Putkov.1 for sharing the code. I have tried to find the same function in R. The closest one is the to.period in XTS. However from my checking the date output looks strange.
Therefore, I have tried to implement the same function used to change the daily interval.
The function looks like:
ChangeDayIntervalMulRICs <- function(df, freq) {
TIMESTAMP = integer(0)
class(TIMESTAMP) <- "Date"
OPEN = c()
HIGH = c()
LOW = c()
CLOSE = c()
RIC = c()
for (p in unique(df$RIC)) {
oneRIC = df[df$RIC == p,]
firstDate = oneRIC[1,"TIMESTAMP"]
lastDate = oneRIC[nrow(oneRIC),"TIMESTAMP"]
intervalDate = firstDate + freq
while(firstDate <= lastDate){
temp = oneRIC[oneRIC$TIMESTAMP >= firstDate & oneRIC$TIMESTAMP < intervalDate,]
TIMESTAMP = c(TIMESTAMP, firstDate)
OPEN = c(OPEN, temp[1,"OPEN"])
HIGH = c(HIGH, max(temp$HIGH))
LOW = c(LOW, min(temp$LOW))
CLOSE = c(CLOSE, temp[nrow(temp),"CLOSE"])
RIC = c(RIC, p)
firstDate = intervalDate
intervalDate = intervalDate + freq
}
}
return(data.frame(TIMESTAMP,
OPEN,
HIGH,
LOW,
CLOSE,
RIC))
}The code to use the function is:
rics <- list("BB.TO","AC.TO")
query_fields <- list("TIMESTAMP","OPEN","HIGH","LOW","CLOSE")
mydata <- eikonapir::get_timeseries( rics, fields = query_fields,
start_date = "2020-01-01T00:00:00",
end_date = "2020-11-01T00:00:00",
interval = "daily")
mydata$TIMESTAMP <- as.Date(mydata$TIMESTAMP,"%Y-%m-%d")
mydata$HIGH <- as.numeric(mydata$HIGH)
mydata$LOW <- as.numeric(mydata$LOW)
mydata$OPEN <- as.numeric(mydata$OPEN)
mydata$CLOSE <- as.numeric(mydata$CLOSE)
colnames(mydata)[[6]] <- "RIC"
mydata$RIC <- as.character(mydata$RIC)
ChangeDayIntervalMulRICs(mydata, 42)This is the sample function so it is not fully tested. You need to verify the data before using it in the production.
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 中文论坛