Your task is to build a machine learning model to predict the weekly price direction (up, down or no change) of the EUR/USD exchange rate.
The primary goal is not to maximize accuracy, but to demonstrate your understanding of ML principles and processes, including data handling, feature engineering, model design, and evaluation.
You will be given a weekly time series dataset with the following daily variables:
- EUR/USD spot exchange rate
- US 2-Year Treasury Yield (USGG10YR)
- German 2-Year Bund Yield (GDBR10)
- EUR/USD implied volatility (EURUSDV1M)
- VIX (Volatility Index)
The dataset is provided in the file: Data_Scientist_Data.xlsx
- Formulate the target variable as the next-week direction of EUR/USD (+1 if the exchange rate goes up, -1 if it goes down, 0 if it doesn't change)
- Explain your reasoning for framing the problem as classification/regression
- Your assignment should cover:
- Exploratory Data Analysis
- Feature Engineering
- Model Development
- Model Evaluation
- Results and Interpretation
- Train at least two different ML models and compare their performance across key metrics
- Don't worry about accuracy score - you will not be assessed by the accuracy score at all. It's more about demonstrating good ML practices and reasoning
- Submit your Python Code or Jupyter Notebook
Develop a simple interactive dashboard to present and analyze the results of your EUR/USD weekly direction prediction model. This will allow a non-technical user to explore the data, run predictions, and understand the model outputs.
- You may use Streamlit, Dash, or any similar Python web framework
- Data upload: Allow a user to upload a CSV/Excel file in the same format as provided
- Model predictions: Run your trained model on the uploaded dataset (or on a subset of it)
- Visualizations:
- Plot the historical EUR/USD spot rate and highlight weekly predicted vs actual directions
- Show at least one model interpretability element (e.g., feature importance, SHAP summary, or coefficient weights)
- Performance summary: Display confusion matrix or classification metrics (precision/recall/F1) on test data
- The dashboard should be easy to use and logically structured
- Include clear labels, titles, and short descriptions for plots/tables
- Structure your code so that the ML logic (data loading, feature engineering, training, prediction) is separated from the dashboard app code
- Include comments or docstrings where necessary
- Source code for the dashboard (Python files)
- Instructions for how to run the app locally (e.g.,
streamlit run app.py) - (Optional) A requirements.txt file with dependencies
- Use pip for package management and dependency installation
- Create a
requirements.txtfile listing all necessary dependencies
- Complete this assignment within 2 days maximum
- Focus on demonstrating your approach and methodology rather than perfecting accuracy
- DO NOT commit your changes to GitHub
- Zip your entire project directory
- Send your completed assignment via email l
- All Python files (.py or .ipynb)
- requirements.txt file
- Brief documentation on how to run your code
- Any saved model files