Predicting Foreign Exchange EUR/USD direction using machine learning

ArXiv ID: 2409.04471 “View on arXiv”

Authors: Unknown

Abstract

The Foreign Exchange market is a significant market for speculators, characterized by substantial transaction volumes and high volatility. Accurately predicting the directional movement of currency pairs is essential for formulating a sound financial investment strategy. This paper conducts a comparative analysis of various machine learning models for predicting the daily directional movement of the EUR/USD currency pair in the Foreign Exchange market. The analysis includes both decorrelated and non-decorrelated feature sets using Principal Component Analysis. Additionally, this study explores meta-estimators, which involve stacking multiple estimators as input for another estimator, aiming to achieve improved predictive performance. Ultimately, our approach yielded a prediction accuracy of 58.52% for one-day ahead forecasts, coupled with an annual return of 32.48% for the year 2022.

Keywords: Forex Prediction, Machine Learning, Principal Component Analysis, Meta-estimators, Time Series Forecasting

Complexity vs Empirical Score

  • Math Complexity: 4.0/10
  • Empirical Rigor: 8.0/10
  • Quadrant: Street Traders
  • Why: The paper uses standard machine learning algorithms and PCA with minimal advanced mathematical derivations, but includes comprehensive backtesting over nearly a decade with specific metrics like accuracy and annual returns, plus detailed data preparation steps.
  flowchart TD
    Start["<b>Research Goal</b><br>Predict EUR/USD Daily Direction"]
    
    Data["<b>Data Inputs</b><br>EUR/USD Historical Data"]
    
    Feat["<b>Feature Engineering</b><br>Decorrelated vs Non-decorrelated<br>using Principal Component Analysis"]
    
    Models["<b>ML Models</b><br>Individual Estimators +<br>Stacked Meta-Estimators"]
    
    Eval["<b>Evaluation</b><br>Directional Accuracy &<br>Backtested Returns"]
    
    Result["<b>Key Outcomes</b><br>Accuracy: 58.52%<br>Annual Return: 32.48% (2022)"]
    
    Start --> Data
    Data --> Feat
    Feat --> Models
    Models --> Eval
    Eval --> Result