Ekion FX rate market data
Hi, I have an excel sheet with some details including Start date, end date, base currency (GBP) and local currency (USD,EUR etc). Im wanting to get an output with columns of Date,close FX rate, Base currency, Local currency. any help on how i can achieve this would be greatly appreciated.
Best Answer
-
I created an excel file with this information.
I used the openpyxl python package to load this excel file.
import pandas as pd
input_df = pd.read_excel(
"forex.xlsx",
engine='openpyxl',
)Then, initialize the Eikon Data API.
import eikon as ek
ek.set_app_key('<App key>')Next, I iterated all rows in the input_df data frame. For each row, I converted the base currency and local currency to a RIC. I am not sure about the RIC structure of currency RICs. I used the following methods.
- If a base currency is "GBP" and a local currency is "USD", RIC is "GBP="
- If a base currency is "USD", RIC is "<local currency>="
- If a base currency is not "USD", RIC is "<base currency><local currency>=R"
However, it is better to contact the content support team via MyRefinitiv regarding how to construct RICs from base currencies and local currencies.
Next, I called the get_timeseries method to get historical close prices and then added the returned data frame into an array.
df_array = []
for index, row in input_df.iterrows():
ric = ''
if row['Base Currency'] == 'GBP' and row['Local Currency'] == 'USD':
ric = 'GBP='
elif row['Base Currency'] == 'USD':
ric = row['Local Currency']+"="
else:
ric = row['Base Currency']+row['Local Currency']+"=R"
df = ek.get_timeseries(
ric,
start_date=row['Start Date'].strftime("%Y-%m-%d"),
end_date=row['End Date'].strftime("%Y-%m-%d"),
fields = ['CLOSE'],
interval='daily')
df['Base Currency'] = row['Base Currency']
df['Local Currency'] = row['Local Currency']
df_array.append(df.reset_index())Finally, I called the concat method to concatenate pandas objects in the array.
pd.concat(df_array)
The output is:
This is just a sample code. It doesn't cover all use-case scenarios. You need to test it before using it on production.
0
Answers
-
@Jirapongse thank you so much for this! Although it seems to only output one currency for me?
0 -
Please share the excel input file that you are using.0
Categories
- All Categories
- 6 AHS
- 39 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 370 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 60 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛