forex-python icon indicating copy to clipboard operation
forex-python copied to clipboard

SSLV3_ALERT_HANDSHAKE_FAILURE when making requests to theforexapi.com

Open KornelPudlo opened this issue 1 year ago • 0 comments

I am using the forex_python library to convert currency values to USD using historical rates. However, I am encountering an SSL handshake failure when the library makes HTTPS requests to 'theforexapi.com'. The error message is as follows:

Error converting AUD for year 2022: HTTPSConnectionPool(host='theforexapi.com', port=443): Max retries exceeded with url: /api/2022-01-01?base=AUD&symbols=USD&rtype=fpy (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:997)')))

I have a csv file that contain multiple columns such as: symbol, date, year, open, currency.

Currency columns contain values such as: AUD, EUR, NZD, USD, GBP etc and trying to convert the $$$ from 'open' column to $USD based on a 'date' column.

Can someone try to help me? :)

Code below:

` import pandas as pd from forex_python.converter import CurrencyRates from datetime import datetime

def convert_to_usd(row, c): try: # Constructing a date object with the year from the row and default month and day date_obj = datetime(row['year'], 1, 1) rate = c.get_rate(row['currency'], 'USD', date_obj) return round(row['open'] * rate, 2) except Exception as e: print(f"Error converting {row['currency']} for year {row['year']}: {e}") return None

def main(): # Load the CSV file df = pd.read_csv('my_source_file_here_df.csv')

df['currency'] = df['currency'].str.strip().str.upper()

# Initialize currency converter
c = CurrencyRates()

# Convert prices to USD using historical rates
df['open_usd'] = df.apply(lambda row: convert_to_usd(row, c), axis=1)

# Save the updated dataframe to a new CSV file
df.to_csv('my_unpivoted_file_here_with_USD_df.csv', index=False)
print("Conversion completed and saved to 'converted_prices_with_historical_rates.csv'.")

if name == "main": main() `

KornelPudlo avatar Aug 29 '24 14:08 KornelPudlo