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
- 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
- 616 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 中文论坛