{
  "fetched_at": "2026-10-19T19:20:51Z",
  "source_url": "https://www.kaggle.com/competitions/ensimag-if-2025/data",
  "pages": [
    {
      "name": "data-description",
      "content": "## Files\n\n*   **train.csv** - the training set (past data on which you train your model)\n*   **test.csv** - the test set (\"future\" data on which you have to predict the spread)\n*   **sample.csv** - a sample submission file in the correct format\n*   **imbalances.csv** - Imbalances price useful for cross-validation (Only on trainset dates)\n\n## Columns\n\n*   `wind` - German day-ahead wind power forecast (MW)\n*   `solar` - German day-ahead solar power forecast (MW)\n*   `load` - German day-ahead load forecast (MW)\n*   `spread` - Difference between Imbalances price and Day-Ahead price (€)\n*   `imbalances` - Imbalances price (€)\n*   `forecast` - Your forecasted spread (€)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "- Get the sample code and follow the instructions\nCode tab → ensimag-trading-if-2025 → Copy & edit notebook (top right on the ...)\n- You can code directly on Kaggle (online Jupyter notebook)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "The evaluation metric is the **Cumulated Profit and Loss**.\nBased on the spread forecast (Imbalances - DA), the strategy is as follows:\n- If spread >= 0, buy 50 MW on the Day-Ahead market (long position)\n- If spread < 0, sell 50 MW on the Day-Ahead market (short position)\n- If the Imbalances price is valued at more than 1000€, do not take a position (considered too risky)\n\nThen we calculate the cumulative profits and losses over the entire period, obtaining a metric in €.\n\n---\n\n## Submission File\nFor each ID in the test set, you must predict the spread. The file must follow this format (see sample.csv file for an example):\n\n>ID,forecast\n0,-0.748\n1,-0.616\n2,-0.343\n3,-0.221\n4,-0.131\n...",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "rules",
      "content": "- Use only data from the Data tab (no external data required)\n- Form teams of 2 or 3 people",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "abstract",
      "content": "The aim of this challenge is to provide an introduction to algorithmic trading on electricity markets. Your objective is to **predict the price difference (spread)** between the Day-Ahead Market and the Imbalances Market.\nThe principle is to predict whether, for each 15-minute period, the electricity grid will be more or less tight than expected and therefore whether the price of electricity will tend to fall or rise.\n\nWith this forecast, we simulate positions on the market using a basic algorithm that will calculate a Cumulated PnL (Profit and Loss) that you will need to maximize. Note that you don't have control over this algorithm, only over the spread forecast.\n\n### Details on the spread\nThe spread is equal to the difference between the imbalance price (settlement price) and the Day-Ahead price. Note that:\n- If spread > 0: the price rises, the grid is more tight than expected (there is an energy deficit) => It is better to buy on Day-Ahead (long position)\n- If spread < 0: the price falls, the network is less tight than expected (there is an energy surplus) => It is better to sell on Day-Ahead (short position)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}