diff --git a/notebooks/01-backtester_walkthrough.ipynb b/notebooks/01-backtester_walkthrough.ipynb
index 0735259..0bc457d 100644
--- a/notebooks/01-backtester_walkthrough.ipynb
+++ b/notebooks/01-backtester_walkthrough.ipynb
@@ -155,10 +155,10 @@
"id": "5fad7a26",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:09.631637Z",
- "iopub.status.busy": "2026-04-12T12:34:09.631557Z",
- "iopub.status.idle": "2026-04-12T12:34:09.954043Z",
- "shell.execute_reply": "2026-04-12T12:34:09.953819Z"
+ "iopub.execute_input": "2026-04-13T20:35:29.016181Z",
+ "iopub.status.busy": "2026-04-13T20:35:29.016021Z",
+ "iopub.status.idle": "2026-04-13T20:35:29.897584Z",
+ "shell.execute_reply": "2026-04-13T20:35:29.897374Z"
}
},
"outputs": [
@@ -326,10 +326,10 @@
"id": "12059fdc",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:09.955153Z",
- "iopub.status.busy": "2026-04-12T12:34:09.955086Z",
- "iopub.status.idle": "2026-04-12T12:34:10.272118Z",
- "shell.execute_reply": "2026-04-12T12:34:10.271851Z"
+ "iopub.execute_input": "2026-04-13T20:35:29.898784Z",
+ "iopub.status.busy": "2026-04-13T20:35:29.898716Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.351699Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.351468Z"
}
},
"outputs": [
@@ -469,10 +469,10 @@
"id": "7b80fa76",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.273473Z",
- "iopub.status.busy": "2026-04-12T12:34:10.273357Z",
- "iopub.status.idle": "2026-04-12T12:34:10.337766Z",
- "shell.execute_reply": "2026-04-12T12:34:10.337530Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.352853Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.352739Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.433723Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.433523Z"
}
},
"outputs": [
@@ -555,10 +555,10 @@
"id": "6e29665c",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.339008Z",
- "iopub.status.busy": "2026-04-12T12:34:10.338937Z",
- "iopub.status.idle": "2026-04-12T12:34:10.342163Z",
- "shell.execute_reply": "2026-04-12T12:34:10.341965Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.434742Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.434688Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.437939Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.437750Z"
}
},
"outputs": [
@@ -667,10 +667,10 @@
"id": "4cf11510",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.343164Z",
- "iopub.status.busy": "2026-04-12T12:34:10.343105Z",
- "iopub.status.idle": "2026-04-12T12:34:10.457268Z",
- "shell.execute_reply": "2026-04-12T12:34:10.457039Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.438851Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.438801Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.547542Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.547318Z"
}
},
"outputs": [
@@ -767,10 +767,10 @@
"id": "997ab14c",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.458414Z",
- "iopub.status.busy": "2026-04-12T12:34:10.458358Z",
- "iopub.status.idle": "2026-04-12T12:34:10.461017Z",
- "shell.execute_reply": "2026-04-12T12:34:10.460817Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.548596Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.548534Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.551183Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.550975Z"
}
},
"outputs": [
@@ -919,10 +919,10 @@
"id": "12848f7a",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.461965Z",
- "iopub.status.busy": "2026-04-12T12:34:10.461912Z",
- "iopub.status.idle": "2026-04-12T12:34:10.582316Z",
- "shell.execute_reply": "2026-04-12T12:34:10.582101Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.552231Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.552180Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.671562Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.671337Z"
}
},
"outputs": [
@@ -1047,10 +1047,10 @@
"id": "480469dd",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.583601Z",
- "iopub.status.busy": "2026-04-12T12:34:10.583509Z",
- "iopub.status.idle": "2026-04-12T12:34:10.586744Z",
- "shell.execute_reply": "2026-04-12T12:34:10.586526Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.672696Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.672636Z",
+ "iopub.status.idle": "2026-04-13T20:35:30.675762Z",
+ "shell.execute_reply": "2026-04-13T20:35:30.675547Z"
}
},
"outputs": [
@@ -1156,10 +1156,10 @@
"id": "2ccbdc6a",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:10.587756Z",
- "iopub.status.busy": "2026-04-12T12:34:10.587700Z",
- "iopub.status.idle": "2026-04-12T12:34:11.056671Z",
- "shell.execute_reply": "2026-04-12T12:34:11.056444Z"
+ "iopub.execute_input": "2026-04-13T20:35:30.676719Z",
+ "iopub.status.busy": "2026-04-13T20:35:30.676667Z",
+ "iopub.status.idle": "2026-04-13T20:35:31.134025Z",
+ "shell.execute_reply": "2026-04-13T20:35:31.133797Z"
}
},
"outputs": [
@@ -1286,10 +1286,10 @@
"id": "13638dbe",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:11.057831Z",
- "iopub.status.busy": "2026-04-12T12:34:11.057762Z",
- "iopub.status.idle": "2026-04-12T12:34:11.952225Z",
- "shell.execute_reply": "2026-04-12T12:34:11.951962Z"
+ "iopub.execute_input": "2026-04-13T20:35:31.135161Z",
+ "iopub.status.busy": "2026-04-13T20:35:31.135100Z",
+ "iopub.status.idle": "2026-04-13T20:35:32.011980Z",
+ "shell.execute_reply": "2026-04-13T20:35:32.011692Z"
}
},
"outputs": [
@@ -1447,10 +1447,10 @@
"id": "31b99906",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:11.953362Z",
- "iopub.status.busy": "2026-04-12T12:34:11.953302Z",
- "iopub.status.idle": "2026-04-12T12:34:11.955417Z",
- "shell.execute_reply": "2026-04-12T12:34:11.955216Z"
+ "iopub.execute_input": "2026-04-13T20:35:32.013184Z",
+ "iopub.status.busy": "2026-04-13T20:35:32.013126Z",
+ "iopub.status.idle": "2026-04-13T20:35:32.015337Z",
+ "shell.execute_reply": "2026-04-13T20:35:32.015131Z"
}
},
"outputs": [
@@ -1518,10 +1518,10 @@
"id": "03fd5b83",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:11.956435Z",
- "iopub.status.busy": "2026-04-12T12:34:11.956380Z",
- "iopub.status.idle": "2026-04-12T12:34:12.130280Z",
- "shell.execute_reply": "2026-04-12T12:34:12.130047Z"
+ "iopub.execute_input": "2026-04-13T20:35:32.016454Z",
+ "iopub.status.busy": "2026-04-13T20:35:32.016397Z",
+ "iopub.status.idle": "2026-04-13T20:35:32.187557Z",
+ "shell.execute_reply": "2026-04-13T20:35:32.187347Z"
}
},
"outputs": [
@@ -1646,10 +1646,10 @@
"id": "66ae85bc",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:12.131386Z",
- "iopub.status.busy": "2026-04-12T12:34:12.131305Z",
- "iopub.status.idle": "2026-04-12T12:34:12.133776Z",
- "shell.execute_reply": "2026-04-12T12:34:12.133570Z"
+ "iopub.execute_input": "2026-04-13T20:35:32.188602Z",
+ "iopub.status.busy": "2026-04-13T20:35:32.188519Z",
+ "iopub.status.idle": "2026-04-13T20:35:32.190922Z",
+ "shell.execute_reply": "2026-04-13T20:35:32.190694Z"
}
},
"outputs": [
@@ -1757,10 +1757,10 @@
"id": "71b627f4",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:12.134839Z",
- "iopub.status.busy": "2026-04-12T12:34:12.134753Z",
- "iopub.status.idle": "2026-04-12T12:34:12.137559Z",
- "shell.execute_reply": "2026-04-12T12:34:12.137365Z"
+ "iopub.execute_input": "2026-04-13T20:35:32.191937Z",
+ "iopub.status.busy": "2026-04-13T20:35:32.191868Z",
+ "iopub.status.idle": "2026-04-13T20:35:32.194618Z",
+ "shell.execute_reply": "2026-04-13T20:35:32.194427Z"
}
},
"outputs": [
diff --git a/notebooks/02-idc_and_metrics_walkthrough.ipynb b/notebooks/02-idc_and_metrics_walkthrough.ipynb
index a184735..32d6c5a 100644
--- a/notebooks/02-idc_and_metrics_walkthrough.ipynb
+++ b/notebooks/02-idc_and_metrics_walkthrough.ipynb
@@ -29,10 +29,10 @@
"execution_count": 1,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:15.868705Z",
- "iopub.status.busy": "2026-04-12T12:34:15.868643Z",
- "iopub.status.idle": "2026-04-12T12:34:16.326182Z",
- "shell.execute_reply": "2026-04-12T12:34:16.325940Z"
+ "iopub.execute_input": "2026-04-13T20:35:33.105440Z",
+ "iopub.status.busy": "2026-04-13T20:35:33.105243Z",
+ "iopub.status.idle": "2026-04-13T20:35:33.660824Z",
+ "shell.execute_reply": "2026-04-13T20:35:33.660570Z"
}
},
"outputs": [
@@ -122,10 +122,10 @@
"execution_count": 2,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.327425Z",
- "iopub.status.busy": "2026-04-12T12:34:16.327323Z",
- "iopub.status.idle": "2026-04-12T12:34:16.382045Z",
- "shell.execute_reply": "2026-04-12T12:34:16.381823Z"
+ "iopub.execute_input": "2026-04-13T20:35:33.662084Z",
+ "iopub.status.busy": "2026-04-13T20:35:33.661984Z",
+ "iopub.status.idle": "2026-04-13T20:35:33.722781Z",
+ "shell.execute_reply": "2026-04-13T20:35:33.722552Z"
}
},
"outputs": [
@@ -348,10 +348,10 @@
"execution_count": 3,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.383227Z",
- "iopub.status.busy": "2026-04-12T12:34:16.383171Z",
- "iopub.status.idle": "2026-04-12T12:34:16.565532Z",
- "shell.execute_reply": "2026-04-12T12:34:16.565246Z"
+ "iopub.execute_input": "2026-04-13T20:35:33.723844Z",
+ "iopub.status.busy": "2026-04-13T20:35:33.723792Z",
+ "iopub.status.idle": "2026-04-13T20:35:33.903421Z",
+ "shell.execute_reply": "2026-04-13T20:35:33.903197Z"
}
},
"outputs": [
@@ -474,10 +474,10 @@
"execution_count": 4,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.566700Z",
- "iopub.status.busy": "2026-04-12T12:34:16.566627Z",
- "iopub.status.idle": "2026-04-12T12:34:16.603931Z",
- "shell.execute_reply": "2026-04-12T12:34:16.603698Z"
+ "iopub.execute_input": "2026-04-13T20:35:33.904629Z",
+ "iopub.status.busy": "2026-04-13T20:35:33.904548Z",
+ "iopub.status.idle": "2026-04-13T20:35:33.939256Z",
+ "shell.execute_reply": "2026-04-13T20:35:33.939050Z"
}
},
"outputs": [
@@ -609,10 +609,10 @@
"execution_count": 5,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.605082Z",
- "iopub.status.busy": "2026-04-12T12:34:16.605014Z",
- "iopub.status.idle": "2026-04-12T12:34:16.658537Z",
- "shell.execute_reply": "2026-04-12T12:34:16.658284Z"
+ "iopub.execute_input": "2026-04-13T20:35:33.940341Z",
+ "iopub.status.busy": "2026-04-13T20:35:33.940286Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.002115Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.001887Z"
}
},
"outputs": [
@@ -630,7 +630,7 @@
"\n",
"Step 3: Algo places BUY at 50.00 EUR/MWh (below the ask — rests in book)\n",
" Immediate fills: 0 (order is resting, waiting for a seller)\n",
- " Resting algo orders: ['80329ae1-d866-4489-8d93-7071ba3f4c5a']\n",
+ " Resting algo orders: ['f60f65ba-fc56-48c8-9cd3-1c4ec661077f']\n",
"\n",
"Step 4: Historical TRADE at 49.80 EUR/MWh with aggressor_side='sell'\n",
" Fills: 1\n",
@@ -725,10 +725,10 @@
"execution_count": 6,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.659785Z",
- "iopub.status.busy": "2026-04-12T12:34:16.659708Z",
- "iopub.status.idle": "2026-04-12T12:34:16.662915Z",
- "shell.execute_reply": "2026-04-12T12:34:16.662677Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.003157Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.003106Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.005985Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.005798Z"
}
},
"outputs": [
@@ -826,10 +826,10 @@
"execution_count": 7,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.664018Z",
- "iopub.status.busy": "2026-04-12T12:34:16.663950Z",
- "iopub.status.idle": "2026-04-12T12:34:16.930183Z",
- "shell.execute_reply": "2026-04-12T12:34:16.929960Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.006918Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.006867Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.357501Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.357268Z"
}
},
"outputs": [
@@ -890,7 +890,7 @@
"
BUY | \n",
" 52.2 | \n",
" 1.0 | \n",
- " b34ca1c0-b54d-46f2-8501-120ebfd32ce9 | \n",
+ " 52ded529-4324-4f58-90d8-feaf34f62380 | \n",
" \n",
" \n",
" | 1 | \n",
@@ -899,7 +899,7 @@
" BUY | \n",
" 53.6 | \n",
" 1.0 | \n",
- " 37031ff2-4495-46c1-9771-26f1e541e97b | \n",
+ " e90be9ba-0eb0-4576-9efa-3fb69ee559e2 | \n",
"
\n",
" \n",
" | 2 | \n",
@@ -908,7 +908,7 @@
" BUY | \n",
" 51.8 | \n",
" 1.0 | \n",
- " bc5444f0-d6d7-4f40-ba2a-251480de1908 | \n",
+ " dfbdb192-cf17-4de0-b9cc-9ac9439aee49 | \n",
"
\n",
" \n",
" | 3 | \n",
@@ -917,7 +917,7 @@
" BUY | \n",
" 52.2 | \n",
" 1.0 | \n",
- " 56d0d8e1-2b11-425a-a176-f37ff16a35ae | \n",
+ " b75486d9-4c46-4980-a749-057b761fb882 | \n",
"
\n",
" \n",
" | 4 | \n",
@@ -926,7 +926,7 @@
" BUY | \n",
" 54.0 | \n",
" 1.0 | \n",
- " 92367f3c-842e-4bd4-9869-e1f29be49f6e | \n",
+ " 3bd3b913-cea7-4695-88b5-e168549967a4 | \n",
"
\n",
" \n",
" | 5 | \n",
@@ -935,7 +935,7 @@
" BUY | \n",
" 51.2 | \n",
" 1.0 | \n",
- " 6bb7d476-29aa-40df-9c95-d40c800d7227 | \n",
+ " 4d498cd1-d208-4adc-b0d8-b444de056a8a | \n",
"
\n",
" \n",
"\n",
@@ -951,12 +951,12 @@
"5 2026-03-01 00:15:00+00:00 NO1-QH-0830 BUY 51.2 1.0 \n",
"\n",
" order_id \n",
- "0 b34ca1c0-b54d-46f2-8501-120ebfd32ce9 \n",
- "1 37031ff2-4495-46c1-9771-26f1e541e97b \n",
- "2 bc5444f0-d6d7-4f40-ba2a-251480de1908 \n",
- "3 56d0d8e1-2b11-425a-a176-f37ff16a35ae \n",
- "4 92367f3c-842e-4bd4-9869-e1f29be49f6e \n",
- "5 6bb7d476-29aa-40df-9c95-d40c800d7227 "
+ "0 52ded529-4324-4f58-90d8-feaf34f62380 \n",
+ "1 e90be9ba-0eb0-4576-9efa-3fb69ee559e2 \n",
+ "2 dfbdb192-cf17-4de0-b9cc-9ac9439aee49 \n",
+ "3 b75486d9-4c46-4980-a749-057b761fb882 \n",
+ "4 3bd3b913-cea7-4695-88b5-e168549967a4 \n",
+ "5 4d498cd1-d208-4adc-b0d8-b444de056a8a "
]
},
"execution_count": 7,
@@ -995,10 +995,10 @@
"execution_count": 8,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:16.931278Z",
- "iopub.status.busy": "2026-04-12T12:34:16.931217Z",
- "iopub.status.idle": "2026-04-12T12:34:17.074750Z",
- "shell.execute_reply": "2026-04-12T12:34:17.074472Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.358540Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.358481Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.483678Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.483440Z"
}
},
"outputs": [
@@ -1106,10 +1106,10 @@
"execution_count": 9,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.075881Z",
- "iopub.status.busy": "2026-04-12T12:34:17.075814Z",
- "iopub.status.idle": "2026-04-12T12:34:17.080640Z",
- "shell.execute_reply": "2026-04-12T12:34:17.080403Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.484723Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.484666Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.488629Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.488435Z"
}
},
"outputs": [
@@ -1290,10 +1290,10 @@
"execution_count": 10,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.081739Z",
- "iopub.status.busy": "2026-04-12T12:34:17.081665Z",
- "iopub.status.idle": "2026-04-12T12:34:17.183671Z",
- "shell.execute_reply": "2026-04-12T12:34:17.183409Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.489505Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.489455Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.592557Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.592308Z"
}
},
"outputs": [
@@ -1402,10 +1402,10 @@
"execution_count": 11,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.184900Z",
- "iopub.status.busy": "2026-04-12T12:34:17.184832Z",
- "iopub.status.idle": "2026-04-12T12:34:17.189085Z",
- "shell.execute_reply": "2026-04-12T12:34:17.188855Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.593710Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.593647Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.598060Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.597823Z"
}
},
"outputs": [
@@ -1610,10 +1610,10 @@
"execution_count": 12,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.190066Z",
- "iopub.status.busy": "2026-04-12T12:34:17.190006Z",
- "iopub.status.idle": "2026-04-12T12:34:17.252096Z",
- "shell.execute_reply": "2026-04-12T12:34:17.251867Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.599094Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.599039Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.657444Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.657212Z"
}
},
"outputs": [
@@ -1700,10 +1700,10 @@
"execution_count": 13,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.253151Z",
- "iopub.status.busy": "2026-04-12T12:34:17.253088Z",
- "iopub.status.idle": "2026-04-12T12:34:17.335889Z",
- "shell.execute_reply": "2026-04-12T12:34:17.335668Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.658529Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.658474Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.738957Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.738720Z"
}
},
"outputs": [
@@ -1810,10 +1810,10 @@
"execution_count": 14,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.337068Z",
- "iopub.status.busy": "2026-04-12T12:34:17.336988Z",
- "iopub.status.idle": "2026-04-12T12:34:17.381372Z",
- "shell.execute_reply": "2026-04-12T12:34:17.381145Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.739984Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.739929Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.778086Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.777878Z"
}
},
"outputs": [
@@ -1897,10 +1897,10 @@
"execution_count": 15,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.382534Z",
- "iopub.status.busy": "2026-04-12T12:34:17.382463Z",
- "iopub.status.idle": "2026-04-12T12:34:17.385649Z",
- "shell.execute_reply": "2026-04-12T12:34:17.385425Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.779039Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.778986Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.781904Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.781708Z"
}
},
"outputs": [
@@ -2016,10 +2016,10 @@
"execution_count": 16,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.386766Z",
- "iopub.status.busy": "2026-04-12T12:34:17.386703Z",
- "iopub.status.idle": "2026-04-12T12:34:17.518612Z",
- "shell.execute_reply": "2026-04-12T12:34:17.518346Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.782884Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.782827Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.899235Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.899014Z"
}
},
"outputs": [
@@ -2130,10 +2130,10 @@
"execution_count": 17,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.519938Z",
- "iopub.status.busy": "2026-04-12T12:34:17.519857Z",
- "iopub.status.idle": "2026-04-12T12:34:17.600320Z",
- "shell.execute_reply": "2026-04-12T12:34:17.600077Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.900281Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.900227Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.983725Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.983503Z"
}
},
"outputs": [
@@ -2234,10 +2234,10 @@
"execution_count": 18,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.601475Z",
- "iopub.status.busy": "2026-04-12T12:34:17.601400Z",
- "iopub.status.idle": "2026-04-12T12:34:17.606894Z",
- "shell.execute_reply": "2026-04-12T12:34:17.606686Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.984768Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.984710Z",
+ "iopub.status.idle": "2026-04-13T20:35:34.989972Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.989772Z"
}
},
"outputs": [
@@ -2296,10 +2296,10 @@
"execution_count": 19,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.607807Z",
- "iopub.status.busy": "2026-04-12T12:34:17.607757Z",
- "iopub.status.idle": "2026-04-12T12:34:17.615306Z",
- "shell.execute_reply": "2026-04-12T12:34:17.615081Z"
+ "iopub.execute_input": "2026-04-13T20:35:34.990907Z",
+ "iopub.status.busy": "2026-04-13T20:35:34.990855Z",
+ "iopub.status.idle": "2026-04-13T20:35:35.000217Z",
+ "shell.execute_reply": "2026-04-13T20:35:34.999998Z"
}
},
"outputs": [
@@ -2311,7 +2311,7 @@
" daily_pnl.parquet 2,439 bytes\n",
" equity_curve.parquet 3,093 bytes\n",
" metadata.json 424 bytes\n",
- " trades.parquet 65,943 bytes\n",
+ " trades.parquet 65,997 bytes\n",
"\n",
"Equity curve from Parquet: 31 rows\n",
"Matches equity_curve_df(): True ✓\n"
@@ -2338,10 +2338,10 @@
"execution_count": 20,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:17.616285Z",
- "iopub.status.busy": "2026-04-12T12:34:17.616227Z",
- "iopub.status.idle": "2026-04-12T12:34:17.632110Z",
- "shell.execute_reply": "2026-04-12T12:34:17.631904Z"
+ "iopub.execute_input": "2026-04-13T20:35:35.001240Z",
+ "iopub.status.busy": "2026-04-13T20:35:35.001185Z",
+ "iopub.status.idle": "2026-04-13T20:35:35.010642Z",
+ "shell.execute_reply": "2026-04-13T20:35:35.010448Z"
}
},
"outputs": [
@@ -2349,7 +2349,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "HTML report generated: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpvbv8a3w2/report.html\n",
+ "HTML report generated: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpd06y5lva/report.html\n",
"File size: 19,177 bytes (18 KB)\n",
"\n",
"The report is self-contained — open it in any browser.\n",
diff --git a/notebooks/03-custom_signals_walkthrough.ipynb b/notebooks/03-custom_signals_walkthrough.ipynb
index c3495dd..bce78f0 100644
--- a/notebooks/03-custom_signals_walkthrough.ipynb
+++ b/notebooks/03-custom_signals_walkthrough.ipynb
@@ -24,10 +24,10 @@
"execution_count": 1,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.241642Z",
- "iopub.status.busy": "2026-04-12T12:34:13.241526Z",
- "iopub.status.idle": "2026-04-12T12:34:13.846697Z",
- "shell.execute_reply": "2026-04-12T12:34:13.846480Z"
+ "iopub.execute_input": "2026-04-13T20:35:35.977266Z",
+ "iopub.status.busy": "2026-04-13T20:35:35.976997Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.569383Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.569156Z"
}
},
"outputs": [
@@ -98,10 +98,10 @@
"execution_count": 2,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.847797Z",
- "iopub.status.busy": "2026-04-12T12:34:13.847717Z",
- "iopub.status.idle": "2026-04-12T12:34:13.849478Z",
- "shell.execute_reply": "2026-04-12T12:34:13.849266Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.570574Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.570491Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.572209Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.572020Z"
}
},
"outputs": [
@@ -149,10 +149,10 @@
"execution_count": 3,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.850449Z",
- "iopub.status.busy": "2026-04-12T12:34:13.850397Z",
- "iopub.status.idle": "2026-04-12T12:34:13.852375Z",
- "shell.execute_reply": "2026-04-12T12:34:13.852133Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.573131Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.573073Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.577416Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.577212Z"
}
},
"outputs": [
@@ -204,10 +204,10 @@
"execution_count": 4,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.853375Z",
- "iopub.status.busy": "2026-04-12T12:34:13.853321Z",
- "iopub.status.idle": "2026-04-12T12:34:13.855158Z",
- "shell.execute_reply": "2026-04-12T12:34:13.854962Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.578444Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.578384Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.582149Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.581945Z"
}
},
"outputs": [
@@ -263,10 +263,10 @@
"execution_count": 5,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.856112Z",
- "iopub.status.busy": "2026-04-12T12:34:13.856041Z",
- "iopub.status.idle": "2026-04-12T12:34:13.859332Z",
- "shell.execute_reply": "2026-04-12T12:34:13.859129Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.583210Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.583153Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.586539Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.586348Z"
}
},
"outputs": [
@@ -415,10 +415,10 @@
"execution_count": 6,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.860313Z",
- "iopub.status.busy": "2026-04-12T12:34:13.860251Z",
- "iopub.status.idle": "2026-04-12T12:34:13.894957Z",
- "shell.execute_reply": "2026-04-12T12:34:13.894744Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.587474Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.587419Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.622192Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.621970Z"
}
},
"outputs": [
@@ -496,10 +496,10 @@
"execution_count": 7,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.896006Z",
- "iopub.status.busy": "2026-04-12T12:34:13.895935Z",
- "iopub.status.idle": "2026-04-12T12:34:13.996856Z",
- "shell.execute_reply": "2026-04-12T12:34:13.996622Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.623236Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.623165Z",
+ "iopub.status.idle": "2026-04-13T20:35:36.727169Z",
+ "shell.execute_reply": "2026-04-13T20:35:36.726915Z"
}
},
"outputs": [
@@ -612,10 +612,10 @@
"execution_count": 8,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:13.997992Z",
- "iopub.status.busy": "2026-04-12T12:34:13.997911Z",
- "iopub.status.idle": "2026-04-12T12:34:14.289917Z",
- "shell.execute_reply": "2026-04-12T12:34:14.289659Z"
+ "iopub.execute_input": "2026-04-13T20:35:36.728296Z",
+ "iopub.status.busy": "2026-04-13T20:35:36.728224Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.057874Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.057558Z"
}
},
"outputs": [
@@ -623,7 +623,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running backtest with custom DataFrameSignalProvider...\n",
+ "Running backtest with custom DataFrameSignalProvider...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"\n",
"==============================================================\n",
" Backtest Results: 2026-03-01 to 2026-03-31 (31 days)\n",
@@ -748,10 +754,10 @@
"execution_count": 9,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:14.291036Z",
- "iopub.status.busy": "2026-04-12T12:34:14.290973Z",
- "iopub.status.idle": "2026-04-12T12:34:14.293564Z",
- "shell.execute_reply": "2026-04-12T12:34:14.293362Z"
+ "iopub.execute_input": "2026-04-13T20:35:37.059247Z",
+ "iopub.status.busy": "2026-04-13T20:35:37.059119Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.063146Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.062752Z"
}
},
"outputs": [
@@ -821,10 +827,10 @@
"execution_count": 10,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:14.294590Z",
- "iopub.status.busy": "2026-04-12T12:34:14.294536Z",
- "iopub.status.idle": "2026-04-12T12:34:14.684791Z",
- "shell.execute_reply": "2026-04-12T12:34:14.684572Z"
+ "iopub.execute_input": "2026-04-13T20:35:37.064791Z",
+ "iopub.status.busy": "2026-04-13T20:35:37.064712Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.526127Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.525890Z"
}
},
"outputs": [
@@ -832,7 +838,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running backtest with moving average signal algo...\n",
+ "Running backtest with moving average signal algo...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
" Fills: 520\n",
" VWAP alpha: +34483.91 EUR\n"
]
@@ -914,10 +926,10 @@
"execution_count": 11,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:14.685949Z",
- "iopub.status.busy": "2026-04-12T12:34:14.685892Z",
- "iopub.status.idle": "2026-04-12T12:34:14.722578Z",
- "shell.execute_reply": "2026-04-12T12:34:14.722347Z"
+ "iopub.execute_input": "2026-04-13T20:35:37.527289Z",
+ "iopub.status.busy": "2026-04-13T20:35:37.527224Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.561679Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.561462Z"
}
},
"outputs": [
@@ -1022,10 +1034,10 @@
"execution_count": 12,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:14.723677Z",
- "iopub.status.busy": "2026-04-12T12:34:14.723619Z",
- "iopub.status.idle": "2026-04-12T12:34:14.725799Z",
- "shell.execute_reply": "2026-04-12T12:34:14.725608Z"
+ "iopub.execute_input": "2026-04-13T20:35:37.562701Z",
+ "iopub.status.busy": "2026-04-13T20:35:37.562648Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.564755Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.564561Z"
}
},
"outputs": [
@@ -1081,10 +1093,10 @@
"execution_count": 13,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:14.726872Z",
- "iopub.status.busy": "2026-04-12T12:34:14.726820Z",
- "iopub.status.idle": "2026-04-12T12:34:14.729443Z",
- "shell.execute_reply": "2026-04-12T12:34:14.729252Z"
+ "iopub.execute_input": "2026-04-13T20:35:37.565689Z",
+ "iopub.status.busy": "2026-04-13T20:35:37.565638Z",
+ "iopub.status.idle": "2026-04-13T20:35:37.568185Z",
+ "shell.execute_reply": "2026-04-13T20:35:37.567987Z"
}
},
"outputs": [
diff --git a/notebooks/04-algo_decorator_walkthrough.ipynb b/notebooks/04-algo_decorator_walkthrough.ipynb
index 0bbf8aa..55d742b 100644
--- a/notebooks/04-algo_decorator_walkthrough.ipynb
+++ b/notebooks/04-algo_decorator_walkthrough.ipynb
@@ -27,13 +27,13 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 1,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:05.714010Z",
- "iopub.status.busy": "2026-04-12T12:34:05.713892Z",
- "iopub.status.idle": "2026-04-12T12:34:06.408362Z",
- "shell.execute_reply": "2026-04-12T12:34:06.408083Z"
+ "iopub.execute_input": "2026-04-13T20:35:38.531582Z",
+ "iopub.status.busy": "2026-04-13T20:35:38.531385Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.025379Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.025149Z"
}
},
"outputs": [
@@ -116,13 +116,13 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 2,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:06.422349Z",
- "iopub.status.busy": "2026-04-12T12:34:06.422226Z",
- "iopub.status.idle": "2026-04-12T12:34:06.542543Z",
- "shell.execute_reply": "2026-04-12T12:34:06.542278Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.026581Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.026470Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.104970Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.104734Z"
}
},
"outputs": [
@@ -153,13 +153,13 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 3,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:06.543676Z",
- "iopub.status.busy": "2026-04-12T12:34:06.543608Z",
- "iopub.status.idle": "2026-04-12T12:34:06.609358Z",
- "shell.execute_reply": "2026-04-12T12:34:06.609143Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.106097Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.106038Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.168430Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.168197Z"
}
},
"outputs": [
@@ -303,13 +303,13 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:06.610554Z",
- "iopub.status.busy": "2026-04-12T12:34:06.610473Z",
- "iopub.status.idle": "2026-04-12T12:34:06.612605Z",
- "shell.execute_reply": "2026-04-12T12:34:06.612412Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.169583Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.169500Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.171672Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.171468Z"
}
},
"outputs": [],
@@ -353,13 +353,13 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 5,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:06.613548Z",
- "iopub.status.busy": "2026-04-12T12:34:06.613481Z",
- "iopub.status.idle": "2026-04-12T12:34:07.000707Z",
- "shell.execute_reply": "2026-04-12T12:34:07.000473Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.172626Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.172565Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.550287Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.550045Z"
}
},
"outputs": [
@@ -367,7 +367,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running DA price logger (31-day backtest)...\n",
+ "Running DA price logger (31-day backtest)...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"\n",
"==============================================================\n",
" Backtest Results: 2026-03-01 to 2026-03-31 (31 days)\n",
@@ -455,13 +461,13 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 6,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.001847Z",
- "iopub.status.busy": "2026-04-12T12:34:07.001782Z",
- "iopub.status.idle": "2026-04-12T12:34:07.004093Z",
- "shell.execute_reply": "2026-04-12T12:34:07.003901Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.551438Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.551378Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.553715Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.553496Z"
}
},
"outputs": [
@@ -527,13 +533,13 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 7,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.005049Z",
- "iopub.status.busy": "2026-04-12T12:34:07.004995Z",
- "iopub.status.idle": "2026-04-12T12:34:07.007396Z",
- "shell.execute_reply": "2026-04-12T12:34:07.007160Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.554655Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.554592Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.556984Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.556793Z"
}
},
"outputs": [
@@ -611,13 +617,13 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 8,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.008425Z",
- "iopub.status.busy": "2026-04-12T12:34:07.008373Z",
- "iopub.status.idle": "2026-04-12T12:34:07.011113Z",
- "shell.execute_reply": "2026-04-12T12:34:07.010902Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.557959Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.557905Z",
+ "iopub.status.idle": "2026-04-13T20:35:39.560719Z",
+ "shell.execute_reply": "2026-04-13T20:35:39.560527Z"
}
},
"outputs": [
@@ -705,13 +711,13 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 9,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.012069Z",
- "iopub.status.busy": "2026-04-12T12:34:07.012015Z",
- "iopub.status.idle": "2026-04-12T12:34:07.605580Z",
- "shell.execute_reply": "2026-04-12T12:34:07.605336Z"
+ "iopub.execute_input": "2026-04-13T20:35:39.561618Z",
+ "iopub.status.busy": "2026-04-13T20:35:39.561564Z",
+ "iopub.status.idle": "2026-04-13T20:35:40.144445Z",
+ "shell.execute_reply": "2026-04-13T20:35:40.144212Z"
}
},
"outputs": [
@@ -719,24 +725,30 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running IDC spread scalper (v3)...\n",
+ "Running IDC spread scalper (v3)...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"\n",
"==============================================================\n",
" Backtest Results: 2026-03-01 to 2026-03-01 (1 days)\n",
" Exchange: nordpool | Algo: spread_scalper_v3\n",
"==============================================================\n",
"\n",
- " Total PnL: -17,791.40 EUR\n",
- " Market VWAP: 0.00 EUR/MWh\n",
- " Sharpe Ratio: -49.76\n",
- " Max Drawdown: -17,016.95 EUR (-17.0%)\n",
- " Profit Factor: 0.00\n",
+ " Total PnL: +784.78 EUR\n",
+ " Market VWAP: 50.83 EUR/MWh\n",
+ " Sharpe Ratio: 14.37\n",
+ " Max Drawdown: -647.63 EUR (-0.6%)\n",
+ " Profit Factor: N/A (no losses)\n",
"\n",
" Trades: 314\n",
- " Win Rate: 0.0%\n",
- " Avg Trade PnL: -56.66 EUR\n",
- " Best Trade: -4.93 EUR (NO1-QH-0815 2026-03-01 01:15)\n",
- " Worst Trade: -199.28 EUR (NO1-QH-0800 2026-03-01 00:50)\n",
+ " Win Rate: 100.0%\n",
+ " Avg Trade PnL: +2.50 EUR\n",
+ " Best Trade: +10.66 EUR (NO1-QH-0815 2026-03-01 00:45)\n",
+ " Worst Trade: +0.30 EUR (NO1-QH-0830 2026-03-01 02:42)\n",
"\n",
" Gate Closure NOP:\n",
" Products closed: 96\n",
@@ -745,17 +757,17 @@
"\n",
" Total Volume: 365.0 MW\n",
" Initial Capital: 100,000.00 EUR\n",
- " Final Equity: 82,208.60 EUR\n",
+ " Final Equity: 100,784.78 EUR\n",
"\n",
" Buys\n",
" Fills: 314\n",
" Volume: 365.0 MWh\n",
" Avg Price: 48.74 EUR/MWh\n",
- " vs VWAP: -48.74 EUR/MWh (bought above VWAP)\n",
- " EUR Alpha: -17791.40 EUR\n",
- " Win Rate: 0.0%\n",
+ " vs VWAP: +2.09 EUR/MWh (bought below VWAP ✓)\n",
+ " EUR Alpha: +784.78 EUR\n",
+ " Win Rate: 100.0%\n",
"\n",
- " Total Alpha: -17791.40 EUR\n",
+ " Total Alpha: +784.78 EUR\n",
" Total Fills: 314\n",
"==============================================================\n"
]
@@ -795,13 +807,13 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 10,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.606722Z",
- "iopub.status.busy": "2026-04-12T12:34:07.606647Z",
- "iopub.status.idle": "2026-04-12T12:34:07.884228Z",
- "shell.execute_reply": "2026-04-12T12:34:07.883996Z"
+ "iopub.execute_input": "2026-04-13T20:35:40.145633Z",
+ "iopub.status.busy": "2026-04-13T20:35:40.145567Z",
+ "iopub.status.idle": "2026-04-13T20:35:40.481468Z",
+ "shell.execute_reply": "2026-04-13T20:35:40.481241Z"
}
},
"outputs": [
@@ -809,12 +821,18 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running SimpleAlgo equivalent...\n",
+ "Running SimpleAlgo equivalent...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"\n",
"Metric @algo (per-event) SimpleAlgo (per-bar)\n",
"--------------------------------------------------------------------------\n",
"Total fills 314 0\n",
- "VWAP alpha (EUR) -17791.40 0.00\n"
+ "VWAP alpha (EUR) 784.78 0.00\n"
]
}
],
@@ -922,13 +940,13 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 11,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:07.885357Z",
- "iopub.status.busy": "2026-04-12T12:34:07.885295Z",
- "iopub.status.idle": "2026-04-12T12:34:08.511715Z",
- "shell.execute_reply": "2026-04-12T12:34:08.511482Z"
+ "iopub.execute_input": "2026-04-13T20:35:40.482491Z",
+ "iopub.status.busy": "2026-04-13T20:35:40.482432Z",
+ "iopub.status.idle": "2026-04-13T20:35:41.086790Z",
+ "shell.execute_reply": "2026-04-13T20:35:41.086569Z"
}
},
"outputs": [
@@ -936,7 +954,13 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Running signal-aware @algo...\n",
+ "Running signal-aware @algo...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"\n",
"==============================================================\n",
" Backtest Results: 2026-03-01 to 2026-03-31 (31 days)\n",
@@ -1049,13 +1073,13 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 12,
"metadata": {
"execution": {
- "iopub.execute_input": "2026-04-12T12:34:08.512846Z",
- "iopub.status.busy": "2026-04-12T12:34:08.512784Z",
- "iopub.status.idle": "2026-04-12T12:34:08.599727Z",
- "shell.execute_reply": "2026-04-12T12:34:08.599498Z"
+ "iopub.execute_input": "2026-04-13T20:35:41.087782Z",
+ "iopub.status.busy": "2026-04-13T20:35:41.087726Z",
+ "iopub.status.idle": "2026-04-13T20:35:41.172014Z",
+ "shell.execute_reply": "2026-04-13T20:35:41.171808Z"
}
},
"outputs": [
diff --git a/notebooks/05-validation_walkthrough.ipynb b/notebooks/05-validation_walkthrough.ipynb
index 3ec365b..3301f92 100644
--- a/notebooks/05-validation_walkthrough.ipynb
+++ b/notebooks/05-validation_walkthrough.ipynb
@@ -53,7 +53,14 @@
"cell_type": "code",
"execution_count": 1,
"id": "cell-setup",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:42.240560Z",
+ "iopub.status.busy": "2026-04-13T20:35:42.240316Z",
+ "iopub.status.idle": "2026-04-13T20:35:42.707474Z",
+ "shell.execute_reply": "2026-04-13T20:35:42.707240Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -113,7 +120,14 @@
"cell_type": "code",
"execution_count": 2,
"id": "cell-da-nordpool",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:42.708655Z",
+ "iopub.status.busy": "2026-04-13T20:35:42.708568Z",
+ "iopub.status.idle": "2026-04-13T20:35:43.248616Z",
+ "shell.execute_reply": "2026-04-13T20:35:43.248303Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -122,8 +136,8 @@
"────────────────────────────────────────────────────────────\n",
" simple_da_algo.py → NORDPOOL [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [PASS] (29ms)\n",
- "Step 2/6: Type Safety (mypy) [PASS] (417ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [PASS] (55ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (474ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [WARN] (0ms)\n",
" simple_da_algo.py:61: volume_mw is computed dynamically — unable to validate against exchange limits.\n",
@@ -142,7 +156,14 @@
"cell_type": "code",
"execution_count": 3,
"id": "cell-da-epex",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:43.249802Z",
+ "iopub.status.busy": "2026-04-13T20:35:43.249733Z",
+ "iopub.status.idle": "2026-04-13T20:35:43.630399Z",
+ "shell.execute_reply": "2026-04-13T20:35:43.630025Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -151,13 +172,13 @@
"────────────────────────────────────────────────────────────\n",
" simple_da_algo.py → EPEX_SPOT [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [PASS] (25ms)\n",
- "Step 2/6: Type Safety (mypy) [PASS] (339ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [PASS] (24ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (348ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [WARN] (0ms)\n",
" simple_da_algo.py:61: volume_mw is computed dynamically — unable to validate against exchange limits.\n",
"Step 5/6: Look-Ahead Bias [PASS] (0ms)\n",
- "Step 6/6: Resource Safety [PASS] (0ms)\n",
+ "Step 6/6: Resource Safety [PASS] (1ms)\n",
"\n",
"Result: PASSED (1 warning)\n"
]
@@ -194,7 +215,14 @@
"cell_type": "code",
"execution_count": 4,
"id": "cell-idc-nordpool",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:43.632109Z",
+ "iopub.status.busy": "2026-04-13T20:35:43.631945Z",
+ "iopub.status.idle": "2026-04-13T20:35:43.929486Z",
+ "shell.execute_reply": "2026-04-13T20:35:43.929195Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -203,9 +231,9 @@
"────────────────────────────────────────────────────────────\n",
" simple_idc_algo.py → NORDPOOL [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [WARN] (28ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [WARN] (22ms)\n",
" simple_idc_algo.py:16:1: I001 Import block is un-sorted or un-formatted\n",
- "Step 2/6: Type Safety (mypy) [PASS] (331ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (268ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [PASS] (0ms)\n",
"Step 5/6: Look-Ahead Bias [PASS] (0ms)\n",
@@ -223,7 +251,14 @@
"cell_type": "code",
"execution_count": 5,
"id": "cell-idc-epex",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:43.930558Z",
+ "iopub.status.busy": "2026-04-13T20:35:43.930484Z",
+ "iopub.status.idle": "2026-04-13T20:35:44.196815Z",
+ "shell.execute_reply": "2026-04-13T20:35:44.196547Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -232,13 +267,13 @@
"────────────────────────────────────────────────────────────\n",
" simple_idc_algo.py → EPEX_SPOT [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [WARN] (26ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [WARN] (21ms)\n",
" simple_idc_algo.py:16:1: I001 Import block is un-sorted or un-formatted\n",
- "Step 2/6: Type Safety (mypy) [PASS] (317ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (237ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [PASS] (0ms)\n",
"Step 5/6: Look-Ahead Bias [PASS] (0ms)\n",
- "Step 6/6: Resource Safety [PASS] (0ms)\n",
+ "Step 6/6: Resource Safety [PASS] (1ms)\n",
"\n",
"Result: PASSED (1 warning)\n"
]
@@ -272,7 +307,14 @@
"cell_type": "code",
"execution_count": 6,
"id": "cell-async-nordpool",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:44.198041Z",
+ "iopub.status.busy": "2026-04-13T20:35:44.197965Z",
+ "iopub.status.idle": "2026-04-13T20:35:44.561020Z",
+ "shell.execute_reply": "2026-04-13T20:35:44.560763Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -282,8 +324,8 @@
" async_spread_algo.py → NORDPOOL [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
"Step 1/6: Syntax & Style (ruff) [PASS] (27ms)\n",
- "Step 2/6: Type Safety (mypy) [PASS] (349ms)\n",
- "Step 3/6: Interface Compliance [PASS] (1ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (325ms)\n",
+ "Step 3/6: Interface Compliance [PASS] (2ms)\n",
"Step 4/6: Exchange Features [WARN] (0ms)\n",
" async_spread_algo.py:126: volume_mw is computed dynamically — unable to validate against exchange limits.\n",
"Step 5/6: Look-Ahead Bias [PASS] (1ms)\n",
@@ -323,7 +365,14 @@
"cell_type": "code",
"execution_count": 7,
"id": "cell-show-code",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:44.562202Z",
+ "iopub.status.busy": "2026-04-13T20:35:44.562136Z",
+ "iopub.status.idle": "2026-04-13T20:35:44.567661Z",
+ "shell.execute_reply": "2026-04-13T20:35:44.567467Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -500,7 +549,14 @@
"cell_type": "code",
"execution_count": 8,
"id": "cell-invalid-nordpool",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:44.568725Z",
+ "iopub.status.busy": "2026-04-13T20:35:44.568667Z",
+ "iopub.status.idle": "2026-04-13T20:35:44.871793Z",
+ "shell.execute_reply": "2026-04-13T20:35:44.871491Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -509,13 +565,13 @@
"────────────────────────────────────────────────────────────\n",
" invalid_algo.py → NORDPOOL [❌ FAILED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [FAIL] (22ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [FAIL] (24ms)\n",
" invalid_algo.py:113:18: F821 Undefined name `calculate_alpha`\n",
" invalid_algo.py:43:1: I001 Import block is un-sorted or un-formatted\n",
" invalid_algo.py:49:21: F401 `decimal.Decimal` imported but unused\n",
" invalid_algo.py:62:7: N801 Class name `badAlgo` should use CapWords convention\n",
- "Step 2/6: Type Safety (mypy) [PASS] (513ms)\n",
- "Step 3/6: Interface Compliance [FAIL] (1ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (270ms)\n",
+ "Step 3/6: Interface Compliance [FAIL] (2ms)\n",
" invalid_algo.py:66: badAlgo.on_setup() is missing parameter 'ctx' (expected: self, ctx).\n",
" invalid_algo.py:89: ctx.get_signal('wind_forecast') called but 'wind_forecast' was not subscribed via self.subscribe_signal() in on_setup. The signal may not be available.\n",
"Step 4/6: Exchange Features [FAIL] (0ms)\n",
@@ -558,7 +614,14 @@
"cell_type": "code",
"execution_count": 9,
"id": "cell-invalid-epex",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:44.873025Z",
+ "iopub.status.busy": "2026-04-13T20:35:44.872943Z",
+ "iopub.status.idle": "2026-04-13T20:35:45.162653Z",
+ "shell.execute_reply": "2026-04-13T20:35:45.162365Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -567,12 +630,12 @@
"────────────────────────────────────────────────────────────\n",
" invalid_algo.py → EPEX_SPOT [❌ FAILED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [FAIL] (25ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [FAIL] (23ms)\n",
" invalid_algo.py:113:18: F821 Undefined name `calculate_alpha`\n",
" invalid_algo.py:43:1: I001 Import block is un-sorted or un-formatted\n",
" invalid_algo.py:49:21: F401 `decimal.Decimal` imported but unused\n",
" invalid_algo.py:62:7: N801 Class name `badAlgo` should use CapWords convention\n",
- "Step 2/6: Type Safety (mypy) [PASS] (292ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (259ms)\n",
"Step 3/6: Interface Compliance [FAIL] (1ms)\n",
" invalid_algo.py:66: badAlgo.on_setup() is missing parameter 'ctx' (expected: self, ctx).\n",
" invalid_algo.py:89: ctx.get_signal('wind_forecast') called but 'wind_forecast' was not subscribed via self.subscribe_signal() in on_setup. The signal may not be available.\n",
@@ -615,7 +678,14 @@
"cell_type": "code",
"execution_count": 10,
"id": "cell-structured",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:45.163795Z",
+ "iopub.status.busy": "2026-04-13T20:35:45.163733Z",
+ "iopub.status.idle": "2026-04-13T20:35:45.453506Z",
+ "shell.execute_reply": "2026-04-13T20:35:45.453258Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -625,12 +695,12 @@
"error_count: 4\n",
"warning_count: 1\n",
"\n",
- "❌ [FAIL] Syntax & Style (ruff) (24 ms)\n",
- "✅ [PASS] Type Safety (mypy) (269 ms)\n",
- "❌ [FAIL] Interface Compliance (1 ms)\n",
+ "❌ [FAIL] Syntax & Style (ruff) (21 ms)\n",
+ "✅ [PASS] Type Safety (mypy) (259 ms)\n",
+ "❌ [FAIL] Interface Compliance (2 ms)\n",
"❌ [FAIL] Exchange Features (0 ms)\n",
"⚠️ [WARN] Look-Ahead Bias (0 ms)\n",
- "❌ [FAIL] Resource Safety (0 ms)\n"
+ "❌ [FAIL] Resource Safety (1 ms)\n"
]
}
],
@@ -668,32 +738,51 @@
"cell_type": "code",
"execution_count": 11,
"id": "cell-strict-valid",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:45.454716Z",
+ "iopub.status.busy": "2026-04-13T20:35:45.454648Z",
+ "iopub.status.idle": "2026-04-13T20:35:46.054435Z",
+ "shell.execute_reply": "2026-04-13T20:35:46.054185Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "=== Normal mode ===\n",
+ "=== Normal mode ===\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"────────────────────────────────────────────────────────────\n",
" simple_da_algo.py → NORDPOOL [✅ PASSED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [PASS] (23ms)\n",
- "Step 2/6: Type Safety (mypy) [PASS] (273ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [PASS] (25ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (260ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [WARN] (0ms)\n",
" simple_da_algo.py:61: volume_mw is computed dynamically — unable to validate against exchange limits.\n",
"Step 5/6: Look-Ahead Bias [PASS] (0ms)\n",
- "Step 6/6: Resource Safety [PASS] (0ms)\n",
+ "Step 6/6: Resource Safety [PASS] (1ms)\n",
"\n",
"Result: PASSED (1 warning)\n",
"\n",
- "=== Strict mode ===\n",
+ "=== Strict mode ===\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
"────────────────────────────────────────────────────────────\n",
" simple_da_algo.py → NORDPOOL [❌ FAILED]\n",
"────────────────────────────────────────────────────────────\n",
- "Step 1/6: Syntax & Style (ruff) [PASS] (23ms)\n",
- "Step 2/6: Type Safety (mypy) [PASS] (263ms)\n",
+ "Step 1/6: Syntax & Style (ruff) [PASS] (27ms)\n",
+ "Step 2/6: Type Safety (mypy) [PASS] (274ms)\n",
"Step 3/6: Interface Compliance [PASS] (1ms)\n",
"Step 4/6: Exchange Features [WARN -> FAIL (strict)] (0ms)\n",
" simple_da_algo.py:61: volume_mw is computed dynamically — unable to validate against exchange limits.\n",
diff --git a/notebooks/06-ml_models_walkthrough.ipynb b/notebooks/06-ml_models_walkthrough.ipynb
index e0bf86f..6bd0d52 100644
--- a/notebooks/06-ml_models_walkthrough.ipynb
+++ b/notebooks/06-ml_models_walkthrough.ipynb
@@ -37,14 +37,21 @@
"cell_type": "code",
"execution_count": 1,
"id": "3d8f5c62",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:46.948206Z",
+ "iopub.status.busy": "2026-04-13T20:35:46.948092Z",
+ "iopub.status.idle": "2026-04-13T20:35:47.397364Z",
+ "shell.execute_reply": "2026-04-13T20:35:47.397136Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IDC fixture directory: /Users/tommedhurst/Source/GitHub/nexa-backtest/tests/fixtures/nordpool\n",
- "Temporary model directory: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpfpv1dwet\n",
+ "Temporary model directory: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpldo9pvj4\n",
"All paths exist: True\n"
]
}
@@ -106,7 +113,14 @@
"cell_type": "code",
"execution_count": 2,
"id": "402391fb",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:47.398576Z",
+ "iopub.status.busy": "2026-04-13T20:35:47.398464Z",
+ "iopub.status.idle": "2026-04-13T20:35:47.441087Z",
+ "shell.execute_reply": "2026-04-13T20:35:47.440864Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -154,7 +168,14 @@
"cell_type": "code",
"execution_count": 3,
"id": "1fdf19e3",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:47.442160Z",
+ "iopub.status.busy": "2026-04-13T20:35:47.442099Z",
+ "iopub.status.idle": "2026-04-13T20:35:47.553042Z",
+ "shell.execute_reply": "2026-04-13T20:35:47.552785Z"
+ }
+ },
"outputs": [
{
"data": {
@@ -292,7 +313,14 @@
"cell_type": "code",
"execution_count": 4,
"id": "7229f8d1",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:47.554161Z",
+ "iopub.status.busy": "2026-04-13T20:35:47.554091Z",
+ "iopub.status.idle": "2026-04-13T20:35:47.581097Z",
+ "shell.execute_reply": "2026-04-13T20:35:47.580881Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -425,7 +453,14 @@
"cell_type": "code",
"execution_count": 5,
"id": "bfb2fe5d",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:47.582097Z",
+ "iopub.status.busy": "2026-04-13T20:35:47.582044Z",
+ "iopub.status.idle": "2026-04-13T20:35:47.717554Z",
+ "shell.execute_reply": "2026-04-13T20:35:47.717330Z"
+ }
+ },
"outputs": [
{
"data": {
@@ -567,7 +602,14 @@
"cell_type": "code",
"execution_count": 6,
"id": "a29c8721",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:47.718617Z",
+ "iopub.status.busy": "2026-04-13T20:35:47.718554Z",
+ "iopub.status.idle": "2026-04-13T20:35:48.711626Z",
+ "shell.execute_reply": "2026-04-13T20:35:48.711397Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -620,7 +662,14 @@
"cell_type": "code",
"execution_count": 7,
"id": "d1feea22",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:48.712721Z",
+ "iopub.status.busy": "2026-04-13T20:35:48.712621Z",
+ "iopub.status.idle": "2026-04-13T20:35:48.797603Z",
+ "shell.execute_reply": "2026-04-13T20:35:48.797350Z"
+ }
+ },
"outputs": [
{
"data": {
@@ -727,13 +776,20 @@
"cell_type": "code",
"execution_count": 8,
"id": "64ecda79",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:48.798631Z",
+ "iopub.status.busy": "2026-04-13T20:35:48.798575Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.257280Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.257037Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Model saved: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpfpv1dwet/idc_price_model.onnx\n",
+ "Model saved: /var/folders/t7/zj98q0q10hjdswg08sc9xsl80000gp/T/tmpldo9pvj4/idc_price_model.onnx\n",
"File size: 266 bytes\n",
"\n",
"ONNX model inputs:\n",
@@ -825,7 +881,14 @@
"cell_type": "code",
"execution_count": 9,
"id": "06464301",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.258551Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.258418Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.310824Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.310537Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -876,7 +939,14 @@
"cell_type": "code",
"execution_count": 10,
"id": "c04e017d",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.312098Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.312007Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.313949Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.313739Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -949,7 +1019,14 @@
"cell_type": "code",
"execution_count": 11,
"id": "bff41b32",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.314977Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.314916Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.318198Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.317972Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -1071,17 +1148,36 @@
"cell_type": "code",
"execution_count": 12,
"id": "b1183283",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.319202Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.319147Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.813317Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.813079Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Running NaiveAlgo (no model)...\n",
- " Fills: 127\n",
+ "Running NaiveAlgo (no model)...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Fills: 122\n",
" Alpha vs VWAP: -84.95 EUR\n",
"\n",
- "Running MLAlgo (with model)...\n",
+ "Running MLAlgo (with model)...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
" Fills: 21\n",
" Alpha vs VWAP: -29.04 EUR\n",
" Bars skipped by model: 72\n"
@@ -1127,7 +1223,14 @@
"cell_type": "code",
"execution_count": 13,
"id": "ad2a5985",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.814408Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.814351Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.817495Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.817266Z"
+ }
+ },
"outputs": [
{
"name": "stdout",
@@ -1136,16 +1239,16 @@
"================================================================\n",
"Metric NaiveAlgo MLAlgo\n",
"================================================================\n",
- "Fills 127 21\n",
+ "Fills 122 21\n",
"Total volume (MW) 93.0 21.0\n",
- "Avg fill price (EUR/MWh) 52.009 50.067\n",
+ "Avg fill price (EUR/MWh) 52.002 50.067\n",
"Market VWAP (EUR/MWh) 50.834 50.834\n",
- "Avg fill vs VWAP (EUR/MWh) +1.176 -0.767\n",
+ "Avg fill vs VWAP (EUR/MWh) +1.168 -0.767\n",
"Alpha vs VWAP (EUR) -84.950 -29.043\n",
"================================================================\n",
"\n",
- "MLAlgo filled at a lower average price by 1.943 EUR/MWh.\n",
- "Over 21 MW bought, approximately 40.80 EUR cheaper.\n"
+ "MLAlgo filled at a lower average price by 1.935 EUR/MWh.\n",
+ "Over 21 MW bought, approximately 40.63 EUR cheaper.\n"
]
}
],
@@ -1197,11 +1300,18 @@
"cell_type": "code",
"execution_count": 14,
"id": "013d63d9",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.818494Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.818438Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.907260Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.907018Z"
+ }
+ },
"outputs": [
{
"data": {
- "image/png": "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9BxVH0zKy8vdcxGsZYw4hnifRQN/hxgjjiPeZ7H4tyghCnNUvlYHAAAAAAAAAA8gWAt4WHpSR+uU3NFdAwAAAAAAIL7FfRkEIJa9f+zfot0FoN2qrq62qqqqaHcDiBvJycnm8/mi3Q0AANqNeJzP6hR27ZNOY6esD+MTimPIi3NUgrUAANRTUlJiK1asML/fz9gAIaJ6X1pJt1OnTowpAABhFq/zWe2Pgm3FxcXtrt59czA+LR8jL85RCdYCAFAvA0ET27S0NLdCKJNAIDSTYq26q/fWwIEDPZe9AABAPInn+azmFJs2bbKkpKS42q9QYXxaNkbixTkqwVoAAILolBj9B66JbceO1IsGQkXvqeXLl7v3mFcmwgAAxKN4ns8SjGR8Qn0MeXGOSrAW8LCpeQ/a+soS69Khk00ZOj7a3QHaFb6pB3hPAQAQy5jPArH5PkmMdgcANG72D2/bY0tfd9cA2q++ffva9ttv774BDthjjz1s/vz5W/zd3/3udzZv3rw29+H77793Bfivu+66OtuvvfZau/TSSy3UfvOb39iCBQvczy+//LINHTrUUlJSNnuuu+66y3baaSfbeeedbciQIfboo4/W3nfDDTfYrrvuWnvJyMiwCRMmNPh8H374oWtjt912s9dee82OPPJI++6779x9w4cPt+eee879fOaZZ9odd9xhXqXXQ9kBgX0+9dRTmzVW9a1evdqOOOIIdzqYfuedd96pve/GG2+0QYMGueMhMC7Br9sHH3wQpr0DAACxqr3NZ59//nnbYYcd3Hzsyy+/dNeqkRoYi4ULF242zwQCyKwFAGALCiZPDtsYdZs2rVmPq6iosAcffNB+//vft6j9f/zjHxYKDz30kB1yyCE2Y8YMu/rqq8P6DfTHH39sa9eutX333dfdVsBQz//UU0+5xTKCDR482N5//33LzMy0n376yQVb9XsDBgywq666yl0C45ebm1sneBnskUcesVNOOcUmTZrkbo8cOdJilfaxoYByU2NV35/+9CfbZ5997NVXX7VPPvnERo8ebcuWLXOr5Y4YMcJOOukkO/vsszf7PY33xRdfXCe4CwAAYkf1unVWXVRkvsxM83XtGtK229N89v7777fJkyfbySef7G4HgrNAc5BZCwBADNA3/soCKCsr2+y+xx57zPbee28XfNtll13sxRdfrL0v8G29gnPd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xc77TF8CKtCkkj4N1VyPB8FBNTA+bTmG9B7R+y07O9udURUQ/HOkxee7FogTCtTmlxVGuxsAALRrXbp0se22286WLFliX375pS1dutRtCzZ27FiXfTt//vwG20hJSXGX+vThIFKBQQUAWvN8idnZ1nHo0F9q1CYkmK9zZ1eztrqw0NJHjLDk/5VGiAetHaP2gvFhjDiGYuN9pt9VO4FLvGVFBvYp3vYtFBiflo9R4FL/fRfNuQCzEAAAtuCamSVhuzRH3759rXv37u6UtoB58+a5ScWll17qbitAtOuuuzY5KenXr58deuihdbZv6fda669//avddNNN7mdlIe61116244472uDBg+3yyy+vrQFVUlJiI0eOtJycnM2CX/UpQLb77rvbbrvtZjNmzLDf/e53bhzkzDPPtDvuuMP9fO2119aOixfp9PrMzEw37rocfPDBde6//vrrbcCAAe5y1VVXNdrO6tWr7YgjjrCBAwfaTjvtZO+8807tfcoEDbSv+3SsfPHFF+6+iRMn2mOPPRbGPYw/Ok51/GkhsT/96U9uLLXAWOAit99+uzsu41WnUaNcYNZqaqwqP99d67a2AwDix+r1NXbD4yVWUBTaep2hms/279/fzR3DPZ8N57xT+6EveH/44QcL59ylOcHs5cuXb3EO3hJHHnmkfffddw3ed8IJJ7h58JZcG4a5fKzNf8msBQAgBmhhoxdeeMFl78mDDz5oe+yxR7N//80333QTMQWZli1b5gK34bJx40a77bbbXAaidO3a1WbNmuUm1zotb8SIETZz5kw30dXpR1dccYVlZWXZ8OHDm2z36aeftj333NP+9re/udtnnXWWxSoFaJ977rnNtivg+vjjj7vXSadk7b///q426lFHHbXZYxU03GeffezVV1+1Tz75xEaPHu1eW43pRx99VGfcVCtVp/OLguUHHHCAnXjiiebz+cK8p7FJE/pjjjnGlT74+eefbcqUKW6sTj75ZHdqakOLiuk9Gs73VbQlpqZaxujRlj58uFUXFZkvMzMuSh8AAOp68t2N9sqnFdalU4JdcMyvpW+8NJ/VHFNzHs0twyWc886nnnrKnbGjeUa8eeWVV8yLLg+a/8bC2TPe7yEAAHATxIceesiNhBae+PDDD11WZXNpMnzOOee4FewD7TREE1JNHpVJcN1119X5Rv61115z2xX0O+igg+zrr79udHKrIGP6/2pbKiMhMJlW7SdlPuhbfNFp4YcccsgWv9FXcFeZi88++6z7fT23grsNBTyDaZyGDh1am2F633332ZboW3dlpqrfu+yyi7344otu+/vvv28777xznceqD88///wWx665nnjiCTv99NPd2Glszj77bBe8bYjqp5533nnuZ32YyM3NtbfffrvB1378+PG1t5XVoqzd119/vcX9ay9WrFjhArNaYOy3v/2tq2GmY0mB2vZOAdoOffsSqAWAOLRyXbW99FGFVVaZvfhRha1a/8siTF6azyrD9aSTTgrrfDbc8071T3PyALX9xz/+0YYNG+YC2tdcc40Leiq4qIxkJUEEfPrpp+6LfPVfZ65pflp/vzUvVP+D6Yt9zbkVHNccVwHjLdEcWM8T2J/AnFf90XNou64XLFhQ+zvqb+Cso2+//db1VWfWHX/88a5ef3P99NNPrr/bb7+9+wJdi381lHWrs/mUACKap3/wwQe19z3wwAMuOBuL81+CtQAAxAAFPxXgVJafgne/+c1vmp0VuXbtWpd9qUmhgnY6/ShQhiCYVrrXBEjZnZ999lmd1YN1yr1+/5FHHnFZn+eee647lUmncdWnU9EU7GzIypUrXTD36KOPbtH+n3HGGS4weeqpp7oJoEoqNMf06dNdlqR+R/unyf2W6NQ6Tba1gJQmpQpyV1RUuNdA15oky/fff+9O81LWa1Nj15D33nvPTXA1gQ2eLP/44491siw04dW2+jRh1WmEwRmeDT1WE10FcE877bQ62/fdd1+XnYKGKRNc7zW93grc6rYm+I3R+0AfQgAAiGVPv1duRWV+y81OtA1lfnv63XJPzmcVnNOcNFzz2XDOOzV/U4C1/lxZJRFUZuHf//633XXXXS5Y++6777rHTp482davX2+VlZU2ZswYd8aP+q+gqbKUVfJAz6ftmvcpMKsz3QL0u9rXf/3rX24e+8Ybb7jg8H//+98m9+fqq692AWDtj55PwW1RYoGeQ9vvvvvuRrOO9Th99vjqq69c0Dw4qUAZ1gq8N+bdd991CRQK+GpBVi3UuiUXX3yxC94G3HPPPXbhhRfG5PyXYC0AADFCEx4FWpVJoIzL5tLETKvbK3tV34736NHDZRXUp9qyym4IBAAVpAzQafX6tjqQWarJqybaDU3yFNzSc9Snb9P1zbhOQ2rJ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WAsAgMf17dvXunfv7la0DZg3b54lJCTYpZde2uo2Fy5c2KLfueOOO2zlypUN3nfkkUfaX//6182277LLLvbss8+6FVnfe++92u2/+93vXB8CNm3aZJ07d7alS5e628XFxdapUycbP358nfbmz59vHTt2tF133dWGDBliBxxwgH3xxRcWCsuXLzefz+faDlwC/ZGXXnrJtt9+exs4cKCNGTPGNmzY0GA7BQUFdswxx7j+7bDDDjZu3DjbuHGju2/27Nluu9recccd7aqrrjK/3x+S/gMAAHhROOaJus08EfGKYC0AADFgm222sRdeeKH29oMPPmh77LFHi9upqalxl9ZoKliryfKMGTPqbPv0008tPz/fBS4PPvhgF2gN0IQ8OzvbBUjlk08+saysLBswYIC7/cQTT9jQoUPdBL6kpKROu4MGDXKBZgVpFTQ966yzLFQ08VfbgUugP+qD9vG5556zxYsXW25url133XUNtnHDDTe4gK76t2jRIlu1alXt2IwYMaJO+2+88YZrEwAAIF6Fep741FNPMU9EXCNYCwBADFBA8qGHHnI/FxUV2YcffmhHHHFE7f1ffvmlyzLdfffdXcbm9ddfX3vftddea2PHjrWRI0faTjvt5CbGwe6++27bf//9XUaogrG//e1vba+99rKdd97Zrr76aveYadOm2c8//2wnnniiywqtn5V77LHH2k8//VQny1X9PeOMMyw5ObnOJFyP69q1qx111FG123StxwQHo6+44gobNmyYC9w2RmPw3XffWbjNmTPHdtttN5dZK3/4wx/s8ccfb/CxynhWxoeC4pWVlVZWVmZbb711bTA4MfGX6Vd5eblVVFS4xwMAAMSrUM8TFfi9/PLLmScibhGsBQAgBiiYquwCBUwVJPzNb37jTtkP0Klib775pn322WeWl5dnzzzzjAvoBixYsMBmzpxpX3/9tW211VZum4KJEyZMsLfeesvmzp1r3bp1c6fsX3DBBfbxxx/b559/7rIelL0wefJkl02qwKkCtQrYBtNE+/TTT68NKCsQqX4GTk/TBPuDDz5wwUuVcDjooIPcRT+Lrg855BD3s/qoibqCy/p9BW4bM2vWLJdZ0ZADDzywTkmD4Et1dXWDv1NaWmp77rmnC3orQB143I8//mh9+vSpM94Keuu0vPquueYaW7JkifXs2dOVr1ApBH1ICdA4KBCu+7TPxx13XKP7BwAAEAqlm8obvZRXVzb7sRs3VbT4uUM9T1yxYgXzRMS1pGh3AAAAr7v/69l2/7ezt/i4nbsOsH8ePKXOttPnTbUv1/1a97S+87YfbeftOLpZ/dAk9+GHH3anzf/rX/9ylwDVRFW2pwKpytxUsFM/77PPPrW1wnr06FGnvXPPPddliyqwq99RoFIBX522H6DT/5ubuaoJtybWN998sytfoCClLqLMUgWJP/roI5cdoezdfffd18477zxXi1cT9EBQVtfKtFAwWv3+/e9/b998801tW+pPIFi83Xbb2SOPPNJgf959911riV69etl///tfF0Rdu3atyyK+9dZbXeZGSyiArOxmBcCVVatA7T/+8Q9Xf032228/lwmtTGZlPKufyiAGAAAIl/6zxjZ634jcPexfh0ytvT34qVNsY3XDQdn9uu9ssw+/qcXPH8p54qmnnso8EXGNYC0AAFtQXFVm+WWFWxyn3LRum20rrNjQ5O+q7eZSAFMZnwpQqiZqsCuvvNJycnJcNmxSUpKr5aqshQAt1lWfJsyqmarSB8qaDSx0pYzc1NRUaykFKLfddlt78cUXXeZE/UUflDWhzAjVIbvrrrssLS3NBUYV3FSgtHfv3m5C/s9//tNlYDz22GPu9xTw1MT8lltuqVOzdkuUWatyBA1R9nFwZrKkpKS4/ojqop199tmuDwrWqmawxipAWc7qs8a6vnvvvdceeOAB177KHpxwwgluvwPB2gBlMisYrcxlgrUAACCehWqe+Oijj7p5YqBMFvNExCOCtQAAbEHn5DTrlZa9xXHKTslocFtTv6u2m0sB1enTp9fWTQ22bt06l52g4KEyTxVY3FIAUJm6ylrQaWWqyaqVeDVRvummm1ydW1HZBZVLUMZDRkaGq5fbFE28b7zxRrcIV/2Fs9T2lClT3IIRgeCxAsZaqCtQh0yLqPXv379OCQdl1Q4fPtzte0u0NLN29erVrkaaPgColqyyPpR5HKiNq/IQ3377rRt/BWRPOumkBttR/1999VWXQasPFa+99pobZ9HvK9iuTGYFkl9++WUXhAcAAAin7096ptH7fAl1K2R+9ZtfvjBvSKK1vtZ+qOaJmuNpzqu6/8wTEY8I1gIAsAUqU9DcUgX11S+LEIqFxhqihcAUfFVJAK2UG6jrtSXK+uzYsaMdfvjhLtNBpRVUx1YLkWkCnJ6ebn/7299csPbiiy+2c845x2U6qBxD/bq1otIBl156qbuun82rgKsm58r6DdAkXEFY1YcNPrUtmILQOjVO/VPGa7gok0O1eZURq1q0GsOrrrrK3acMWZUyOP744919Gp/g8gsai1deecUF1O+880532p7q0qrmrQK1l112mXucskB0UUBY92n862fcAgAAhFp6UmpYHtsSoZgnnnLKKXV+j3ki4lGCP3DOY5zasGGDZWZmukwgZQQBsWRV2Vqr9te4bzp7pIUvQAFsScHkyREdpG7/m5BFg0oHLFu2zGWZtqYUAICWvbfa61wt0vutDHllj+uUUmV2gzHiGOJ9Fmn8HYrcGMXzfFYhLH1xHsisBePT1mPIi3NUMmsBDyNACwAAAAAA0H7wtToAAAAAAAAAeADBWgAAAAAAAADwAMogAB42c/EcK6sqt7TkVDtj4KhodwcAAAAAAABhRLAW8LDbvnzc8ssKrVdaNsFaIMLifP1NIOJ4TwEAwP+9gNf4Pfi5j2AtAABBkpOT3aqgBQUF1q1bN1aZBUI0CdZ7Su8tvccAAED4xPN8VnOKTZs2WVJSUlztV6gwPi0bI/HiHJVgLQAAQXw+n2299da2YsUKW758OWMDhIgmwXpv6T0GAADCJ57nswq01dTUWGJiIsFaxickx5AX56gEawEAqKdTp042cOBAq6qqYmyAEFG2gpcmwQAAxLN4nc8qyFZYWGjZ2dku2AbGp63HkBfnqARrAQBogP7D9tp/2gAAAEB7ns8q0KbgWmpqKsFaxidujyFv9goAAAAAAAAA2hmCtQAAAAAAAADgAQRrAQAAAAAAAMADCNYCAAAAca563TqrWbHCXSP8Y125fDljDQAAWoUFxgAP6995K8tITrec1C7R7goAAIhBNeXlVjJnjm3My7PKtWttbVaWdRw61DqNGmWJqanR7l5cjnV5Xp7VlJVZYlqapTLWAAAgljJr77vvPhsyZIhlZGS4y7777mtz5sypvb+8vNwuuOACy87Otk6dOtnYsWNt1apV0ewyEFHPHjbd3jnmPncNAADQUgoels6dawmJiZbQo4e71m1tR3jG2nw+S87NddeMNQAAiKlg7dZbb2033XST5eXl2aeffmqHHHKIHXfccfbVV1+5+y+77DJ78cUX7amnnrK3337bfv75ZxszZkw0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2CeffMIQAgAAwNPIrAU8rHTTRiup2milyRuj3RUAADwnPT3dvv/+e8vOzt7svu7du9shhxziLlOmTLFXX33VfvrpJ9tzzz2j0lcAAACgOQjWAgAAICZNnz692Y894ogjwtoXAAAAIBQogwAAAAAAAAAAHkCwFgAAADFv1apVdvrpp1tubq4lJSWZz+ercwEAAABiAWUQAAAAEPPOPPNM+/HHH+2aa66xXr16WUJCQrS7BAAAALQYwVoAAADEvPfee8/effdd23XXXaPdFQAAAKDVKIMAAACAmNe7d2/z+/3R7gYAAADQJgRrAQAAEPPuuOMO+9Of/mTLly+PdlcAAACAVqMMAgAAAGJS165d69SmLS0ttQEDBlhaWpolJyfXeezatWuj0EMAAACgZQjWAh52814XWnl1haX6UqLdFQAAPJlNCwAAAMQTgrWAhx2+9V7R7gIAAJ41bty4aHcBAAAACClq1gIAACBmHXTQQTZt2jR79913raqqKtrdAQAAANqEYC0AAABiVr9+/WzGjBkuaNulSxcbMWKE3XDDDbZgwQKrrq6OdvcAAACAFiFYC3jYvwsX2ycF37hrAACwuYcfftiWLVtm33//vd1999221VZb2QMPPGD777+/W4Bs1KhR9pe//IWhAwAAQEwgWAt42Li3r7OjX5vorgEAQOP69u1rZ599tj3yyCP2ww8/2JIlS+ziiy+2Dz74wP70pz8xdAAAAIgJLDAGAACAuKAg7fz582svq1evtn322ceVSAAAAABiAcFaAAAAxKyZM2fWBmfXrFlj++23nwvOnnPOObbnnntacnJytLsIAAAANBvBWgAAAMSsM88807bZZhtX6mD8+PEEZwEAABDTqFkLAACAmHXvvfe6UgdTp0617t272zHHHGO33nqrffrpp+b3+6PdPQAAAKBFCNYCAAAgZp133nk2a9Ysy8/Pt/fff9+OPPJI+/jjj+2oo46yrl27uutbbrkl2t0EAAAAmoVgLQAAAOLCjjvuaOeff7498cQT9vnnn9uFF15o7733nl1xxRXR7hoAAADQLNSsBQAAQMxbvXq1zZs3r3axsf/85z+ufq1KJBx88MHR7h4AAADg/cza6dOnu1V6O3fu7GqMHX/88fbdd9/VeUx5ebldcMEFlp2dbZ06dbKxY8faqlWrotZnAAAAeMcf/vAHl1Hbq1cv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u/UO5L333tvscccee6y1Z/rgl1hV1ebgmH4/FKdleq2dQFuMUeyMTyjbitcxitfxCXWf4nGMFHxsa3A1lO2Euk9JaWnWoY0L6IaqP147hhAfCNYCAAAgpmlhseuuu67R+xMSEqy6ujqifQIAAABag2AtAAAAYvpUNgAAACBeNF6cAQAAAPC4yZMnW15eXrS7AQAAAIQEwVoAAADErBUrVtioUaNs6623tvPPP9/mzJljlZWV0e4WAAAA0CoEawEP27nrABuas727BgAAm3vooYds5cqV9vjjj1vnzp3t0ksvtZycHBs7dqzNnDnT1q5dy7ABAAAgZlCzFvCwfx48JdpdAADA8xITE+3AAw90l5tvvtm++eYbe/HFF+1vf/ubnXvuubbXXnvZscceayeffLJttdVW0e4uAAAA0CiCtQAAAIgrO+ywg7tcfvnltnr1anvppZfs+eefd/dNnDgx2t0DAAAAGkWwFgAAAHGre/fulpGRURusBQAAALyMmrUAAACIaZs2bbJFixbZf/7znzrbFaDdZZdd7NRTT41a3wAAAICWIFgLeNjp86baka/+0V0DAIDNKUi77bbbuqCsSh+MGTPGVq1aZQcddJCdffbZNmrUKFu6dClDBwAAgJhAGQTAw75ct9TyywqtV1p2tLsCAIAnXXHFFS5Y+9e//tUef/xxd9ECY+PHj7dXX33VOnbsGO0uAgAAAM1GZi0AAABi1ieffGK33HKLHX300Xbvvfe6bVdeeaVbSKy1gdprr73WEhIS6ly23357d9/atWvtoosuskGDBrn2t9lmG7v44outqKgopPsFAACA9onMWgAAAMSsNWvWWG5urvs5MzPT0tPTbZ999mlzu4MHD7a5c+fW3k5K+mXa/PPPP7uLAsQ77rij/fDDD3beeee5bU8//XSbnxcAAADtW6uCtf3793dZDNnZdU/NXr9+ve2+++72/fffh6p/AAAAQKOU9VpcXGypqanm9/vd7Y0bN9qGDRvqPC4jI6NFo6jgbM+ePTfbvtNOO9kzzzxTe3vAgAF2ww032GmnneYWOgsEdQEAAIDWaNVscvny5VZdXb3Z9oqKCvvvf//bqo4AAAAALaUA7XbbbVfn9m677VbntgK4Dc1dm7J48WKXsasg8L777mvTp093JQ8aohIICgYTqAUAAEBEg7UvvPBC7c+vvfaaO9Us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aLmECA9apP9eR3r/Io3//9Aejs/jjz/ennvuObvssstC0h4AAAAQDTEVrF2xYoUVFhZar169ot0VICIOf+USW12+zrqndrXXj7yTUQcAoBEDBw60adOm2fvvv29Dhw619PT0OvdffPHFjB0AAAA8L6rB2pKSEpclG6CFIRYuXGhZWVnuotpjY8eOtZ49e7qatZdffrltu+22NnLkyGh2G4gYBWrzywoZcQAAtuDBBx+0Ll26WF5enrsES0hIIFgLAACAmBDVYO2nn35qBx98cO3tQK3ZcePG2X333WdffPGFPfLII7Z+/XrLzc21ww8/3K677roGyxwAAACg/dKX/gAAAECsi2qwdvjw4eb3+xu9/7XXXotofwAAABD7AvNLZdQCAAAAsYQVtwAAABA3pRB22mknS01NdRf9/I9//CPa3QIAAADic4ExAAAAoCGTJ0+22267zS666CLbd9993bYFCxbYZZddZj/++KNbfAwAAADwOoK1AAAAiHla7+Dvf/+7nXzyybXbjj32WBsyZIgL4BKsBQAAQCygDAIAAABiXlVVle2xxx6bbR86dKht2rQpKn0CAAAAWopgLQAAAGLe6aef7rJr63vggQfs1FNPjUqfAAAAIql63TqrWbHCXYeircrly0PSFlqGMggAAACImwXGXn/9ddtnn33c7Y8++sjVqz3jjDNswoQJtY9TbVsAAIB4UVNebiVz5tjGvDyrXLvW1mZlWcehQ63TqFGWmJraqrbK8/KspqzMEtPSLLWVbaF1CNYCHnbNbmfbxk0V1jEpJdpdAQDA0xYtWmS77767+3np0qXuOicnx110X0BCQkLU+ggAABAOCq6Wzp1rvuxsS+jRwxKqq91tyRg9unVt5eRYcm6uVRcXt7ottA7BWsDDxvYbHu0uAAAQE+bNmxftLgAAAEScyhQoC1bBVResLS01X3q6vqG28s8+s/Thw83XtWuL20rKyXHbklJ+SR5raVtoPWrWAgAAAAAAADGouqjIlSvwde5cZ7tua7vuj0ZbaD2CtQAAAAAAAEAM8mVmurqyKlcQTLe1XfdHoy20HsFawMOWFK2wb9f/4K4BAAAAAACCqSyBFgCrXrPGXfyVlbU/p+6+e4vKFgS3tUltVVS469a0hdajZi3gYSe8eaXllxVar7RsWzhmZrS7AwAAAAAAPKbTqFHuemNenvkV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",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABWsAAAJOCAYAAADBFlXiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAs0RJREFUeJzs3Ql8U1X2wPGTpHtpC23ZKsgmuCC44AIKiIoiriyOo+KOMjrujH8dXEBQB8dRx2VcxhlFGUdx3wUVdxRQi4yi4gCCiBQopZQudCHJ/3Ouvkwa2tK0WV5ef9/PJyR5ebm57+al3Jycd57L7/f7BQAAAAAAAAAQV+74vjwAAAAAAAAAQBGsBQAAAAAAAAAbIFgLAAAAAAAAADZAsBYAAAAAAAAAbIBgLQAAAAAAAADYAMFaAAAAAAAAALABgrUAAAAAAAAAYAMEawEAAAAAAADABgjWAgAAAAAAAIANEKwFEHdr1qwRl8sljz/+eGDZzTffbJYF69mzp5x33nlR788HH3xgXluvE23cokVfQ19LXzP4/TjxxBMlFhLlPQEAwA70/8zLLrtM2qJYzRejZcSIEbLvvvtKImtoHu9UsXy/2tK4tpR+9tu1axfvbgCtRrAWQMwCfQ1d/vjHP0b89YLbd7vdUlBQIMcee6ztA33B/U5KSpLc3FwZNGiQXHnllfLtt99G7HUefPDBmAR4ndY3AACi7dlnnzXzgJdeemmnx/bbbz/z2Pvvv7/TY7vvvrscdthhvEFR8Kc//UlefvnlXa63adMm8/7ovC2ULtPHpk2bttNj55xzjiQnJ0tVVZVEg7arQb7mzoOtH8iti/atd+/epp8//PBDVPoYCaH9Dr3MmTNH7Mzr9ZrvLNrXuXPnit2EjmdmZqbss88+cuutt0Zt342mcD8XQKwlxfwVAbRZM2bMkF69etVbpr9E9+jRQ7Zv324mg5FyzDHHmEml3++X1atXmyDgUUcdJW+88YaMHj26yecOHz7c9CclJUViLbjfZWVl8p///EeeeOIJ0/8///nPMnny5MC6LR03bSs/Pz+srJOzzz5bTj/9dElNTZVoaqxv8XxPAACIlaFDh5rrBQsWyNixYwPLt23bJsuWLTM/5n7yySdy5JFHBh776aefzEX/n0Z0grWnnnqqjBkzpsn1OnXqJH379jXvXSh9z6z3rqHHDjjgAMnIyJBoBaWmT58eyAJtriuuuEIOPvhgqaurkyVLlsgjjzxi5tFff/21CSo25cYbb4xKQkY4/Q41ZMgQsbP33ntPioqKTGb4v//9711+X4kH63uKqqiokI8//lhuuukm833lueeek0TS0s8FECsEawHEjE46DjrooAYfS0tLi+hr9evXT84666zAff3CM3DgQLnnnnsanfxUV1ebYKBm40a6Py3tt7r99tvlpJNOkj/84Q+y1157yfHHH2+W66/a0e5nZWWl+eXc4/GYS7zE8z0BACBWNAimP2yHBvwWLlxofsj9zW9+s9Nj1n0r0Iv40fdg9uzZJpBlHYqtcykNZp122mny6quvmgxKa06lwTnNVj3llFNs97YNGzbMBKnV+eefb+aoGgjVJIIpU6Y0OW/UwLRe4t3vRPLkk0/KgQceKOeee65cf/31gbG0k9DvKRdffLHU1tbKiy++aL5HMVcHIocyCADaRO3VAQMGmIxNzbINPlRKD4nSX/932203k9GgmSuN1UddvHixCZR26NDBTJ40+HvvvffWW2f58uVmgqglDHTCosFpnZi3Rl5enumnTnpvu+22Jsdtw4YNZkLdrVs3kwXbtWtX8wXAqjWrv9Z/88038uGHHwYOY7J+TbbKVehjv//9702GiLbTWM1ay9tvvy3777+/2V49HEonbM2prxXaZlN9a+w90V/xtVREenq6eX91Avnzzz83WLtKl2tWjN7u2LGjXHPNNeYLEwAAdgv4ffnll+aIkuDsy/79+5sfnBctWiQ+n6/eY/p/5OGHH75TW3r4vh7FpHMCff68efN2Wkf/f7zgggukc+fOgfUee+yxeutY/w9rmQadi+j8QP/fP/roo2XlypW73KYff/zRzC323HNP83+2zm008Bw6r7DmBrpNejSR/n+tcy790b24uLjeuhq81kOwtS86h9NsY51HNNedd95pSkdoX7RPOp94/vnn662jfdGgmQYorblJU0cm6Xuncwt9j4Lnjzt27DDzDg3iLl26NPCYlWnbUKBdS2DpNum26Tz1jjvuqPe4BsmmTp1q+p2Tk2PGSQOVwWUydHx1DJVmEVrboHOzcOkRasqaS1vzO+3nmWeeaebH1nY0NvfTgOQhhxxitknX1yOndB4ZTEsA6Hbo9mRlZckJJ5wQ1vvaHLNmzTLbo3Nd3ed1/vrQQw81uK7254gj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t2+X/Px8mTBhgowaNcpk1bZFWuIgbdCgX2rU+v3i93jEu327eEtKJHPkSEogAAAAOCVY6/P5JDk5eaflukwfAwAAAGIlPT1dTj31VHNBfe1GjzbX2wsLxb95s/hzc02g1loOAAAABwRrtV7tlVdeacod6KFm1gkbrr76alO3FgAAAED8udPSJHvsWEkfPlyKV6+W3F69JDmoJAIAAAAccIKxv/3tb7Jt2zbp2bOn9OnTx1x69epllt1///2R7yUAAACAVpVEcHfrRukDAAAAJ2bWdu/eXZYsWWLq1i5fvtws0/q1I0eOjHT/AAAAAAAAAKBNCCuz9r333jMnEtMMWpfLZc68e/nll5vLwQcfLP3795ePP/44er0FAAAAAAAAAIcKK1h7zz33yEUXXSTZ2dk7PZaTkyO/+93vzBl5AQAAAAAAAABRDNb+5z//keOOO67Rx4899lgpLCwMswsAAABA6/3rX/+Sww8/3JwA98cffwwkG7zyyisMLwAAAJwXrN24caMkJyc3+nhSUpIUFxdHol8AAABAsz300EMyefJkOf7442Xr1q3i9XrN8vbt25uALQAAAOC4YO1uu+0my5Yta/Txr776Srp27RqJfgEQkcykdGmXnG6uAQBA4+6//375xz/+ITfccIN4PJ7A8oMOOki+/vprhg4AAAAJISmclTVT4aabbjKlENLS0uo9tn37dpk2bZqceOKJke4j0GZ9cvLf490FAAASwurVq+WAAw7YaXlqaqpUVlbGpU8AAABAVIO1N954o7z44ovSr18/ueyyy2TPPfc0y5cvXy4PPPCAOdxMsxkAAACAWOrVq5csXbpUevToUW/5vHnzZO+99+bNAAAAgPOCtZ07d5ZPP/1ULrnkEpkyZYr4/X6z3OVyyahRo0zAVtcBAAAAYknr1V566aVSXV1t5qifffaZPP300zJz5kz55z//yZsBAAAA5wVrlWYrvPnmm1JaWiorV640k+G+fftKhw4dotNDAAAAYBcuvPBCSU9PN0eCVVVVyZlnnikFBQVy7733yumnn874AQAAwJnBWosGZw8++ODI9gZAPdMLH5WttRXSPqWdTBs0kdEBAKAJEyZMMBcN1lZUVEinTp0YLwAAACQUd7w7AKBxL/34oTy16m1zDQAAmj7B2IoVK8ztjIyMQKBWl61Zs4ahAwAAQEIgWAsAAICE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",
"text/plain": [
""
]
@@ -1319,7 +1429,14 @@
"cell_type": "code",
"execution_count": 15,
"id": "83d24b70",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:49.908394Z",
+ "iopub.status.busy": "2026-04-13T20:35:49.908332Z",
+ "iopub.status.idle": "2026-04-13T20:35:49.983454Z",
+ "shell.execute_reply": "2026-04-13T20:35:49.983232Z"
+ }
+ },
"outputs": [
{
"data": {
diff --git a/notebooks/07-multi_algo_comparison_walkthrough.ipynb b/notebooks/07-multi_algo_comparison_walkthrough.ipynb
index 8bbdbc1..f93de6d 100644
--- a/notebooks/07-multi_algo_comparison_walkthrough.ipynb
+++ b/notebooks/07-multi_algo_comparison_walkthrough.ipynb
@@ -1,25 +1,4 @@
{
- "nbformat": 4,
- "nbformat_minor": 5,
- "metadata": {
- "kernelspec": {
- "display_name": "nexa-backtest-tAL5uWh0-py3.14",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.14.3"
- }
- },
"cells": [
{
"cell_type": "markdown",
@@ -82,10 +61,25 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 1,
"id": "cell-gen-fixtures",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:51.077575Z",
+ "iopub.status.busy": "2026-04-13T20:35:51.077354Z",
+ "iopub.status.idle": "2026-04-13T20:35:51.084039Z",
+ "shell.execute_reply": "2026-04-13T20:35:51.083586Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Fixtures already present.\n"
+ ]
+ }
+ ],
"source": [
"import subprocess\n",
"import sys\n",
@@ -102,9 +96,16 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"id": "cell-imports",
- "metadata": {},
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:51.085786Z",
+ "iopub.status.busy": "2026-04-13T20:35:51.085640Z",
+ "iopub.status.idle": "2026-04-13T20:35:51.467271Z",
+ "shell.execute_reply": "2026-04-13T20:35:51.466987Z"
+ }
+ },
"outputs": [],
"source": [
"from __future__ import annotations\n",
@@ -144,10 +145,25 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 3,
"id": "cell-strategy-classes",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:51.468572Z",
+ "iopub.status.busy": "2026-04-13T20:35:51.468485Z",
+ "iopub.status.idle": "2026-04-13T20:35:51.471564Z",
+ "shell.execute_reply": "2026-04-13T20:35:51.471335Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Strategies defined: ConservativeAlgo, ModerateAlgo, AggressiveAlgo\n"
+ ]
+ }
+ ],
"source": [
"class ConservativeAlgo(SimpleAlgo):\n",
" \"\"\"Buy when forecast is at least 8 EUR/MWh above clearing price.\"\"\"\n",
@@ -222,10 +238,32 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"id": "cell-run",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:51.472607Z",
+ "iopub.status.busy": "2026-04-13T20:35:51.472543Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.695128Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.694908Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Signal 'price_forecast' has no publication_offset. Values are available at their timestamp. This is correct for actuals but may introduce look-ahead bias for forecasts — consider whether your data is a forecast.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Run complete.\n"
+ ]
+ }
+ ],
"source": [
"engine = SharedReplayEngine(\n",
" algos={\n",
@@ -258,10 +296,43 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"id": "cell-print-summary",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.696277Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.696217Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.697612Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.697384Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==========================================================================\n",
+ " Comparison Results: 2026-03-01 to 2026-03-31 (31 days)\n",
+ " Exchange: nordpool | Products: NO1_DA\n",
+ "==========================================================================\n",
+ "\n",
+ " conservative moderate aggressive\n",
+ " Total PnL +106,857.05 EUR +103,261.12 EUR +84,388.84 EUR\n",
+ " vs VWAP 44.79 EUR/MWh 44.79 EUR/MWh 44.79 EUR/MWh\n",
+ " Sharpe 47.63 47.19 34.01\n",
+ " Max Drawdown -0.00 EUR -0.00 EUR -0.00 EUR\n",
+ " Profit Factor 14.51 7.64 3.19\n",
+ " Win Rate 82.6% 75.6% 64.9%\n",
+ " Trades 1480 1733 2168\n",
+ "\n",
+ " Best by PnL: conservative (+106,857.05 EUR)\n",
+ " Best risk-adjusted: conservative (Sharpe 47.63)\n",
+ "\n",
+ " Memory: 0 MB (saved ~0 MB vs separate backtests)\n",
+ "==========================================================================\n"
+ ]
+ }
+ ],
"source": [
"print(comparison.summary())"
]
@@ -284,10 +355,29 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"id": "cell-ranking-code",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.698539Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.698484Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.699975Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.699798Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "total_pnl : conservative > moderate > aggressive\n",
+ "sharpe_ratio : conservative > moderate > aggressive\n",
+ "profit_factor : conservative > moderate > aggressive\n",
+ "win_rate : conservative > moderate > aggressive\n",
+ "trades : aggressive > moderate > conservative\n"
+ ]
+ }
+ ],
"source": [
"for metric in ['total_pnl', 'sharpe_ratio', 'profit_factor', 'win_rate', 'trades']:\n",
" ranked = comparison.ranking(metric)\n",
@@ -307,10 +397,27 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"id": "cell-per-algo-code",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.700860Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.700793Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.702323Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.702134Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "conservative PnL: +106,857.05 EUR Trades: 1480 Sharpe: 47.63\n",
+ "moderate PnL: +103,261.12 EUR Trades: 1733 Sharpe: 47.19\n",
+ "aggressive PnL: +84,388.84 EUR Trades: 2168 Sharpe: 34.01\n"
+ ]
+ }
+ ],
"source": [
"for name, result in comparison.results.items():\n",
" pnl = result.pnl.total_alpha_eur\n",
@@ -332,10 +439,28 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"id": "cell-best-worst-code",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.703134Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.703085Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.704685Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.704497Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best: conservative (+106,857.05 EUR)\n",
+ "Worst: aggressive (+84,388.84 EUR)\n",
+ "\n",
+ "PnL difference: +22,468.21 EUR\n"
+ ]
+ }
+ ],
"source": [
"best_name, best_result = comparison.best\n",
"worst_name, worst_result = comparison.worst\n",
@@ -360,10 +485,32 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"id": "cell-export-code",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.705620Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.705569Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.717038Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.716791Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "HTML report: 30,240 bytes\n",
+ "JSON export: 1,374 bytes\n",
+ "\n",
+ "JSON top-level keys: ['start_date', 'end_date', 'exchange', 'products', 'peak_memory_bytes', 'estimated_separate_memory_bytes', 'algos']\n",
+ "Algo keys: ['conservative', 'moderate', 'aggressive']\n",
+ " conservative: PnL=+106,857.05 EUR trades=1480\n",
+ " moderate: PnL=+103,261.12 EUR trades=1733\n",
+ " aggressive: PnL=+84,388.84 EUR trades=2168\n"
+ ]
+ }
+ ],
"source": [
"import json\n",
"import tempfile\n",
@@ -433,10 +580,28 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"id": "cell-memory-code",
- "metadata": {},
- "outputs": [],
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-04-13T20:35:52.718279Z",
+ "iopub.status.busy": "2026-04-13T20:35:52.718186Z",
+ "iopub.status.idle": "2026-04-13T20:35:52.720013Z",
+ "shell.execute_reply": "2026-04-13T20:35:52.719825Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Peak shared memory: 0.2 MB\n",
+ "Estimated separate memory: 0.5 MB\n",
+ "Memory saved: 0.3 MB\n",
+ " (3 algos x 0.2 MB = 0.5 MB vs 0.2 MB shared)\n"
+ ]
+ }
+ ],
"source": [
"peak_mb = comparison.peak_memory_bytes / (1024 * 1024)\n",
"separate_mb = comparison.estimated_separate_memory_bytes / (1024 * 1024)\n",
@@ -472,5 +637,26 @@
"- Combine shared replay with signals and ML models for a full strategy comparison"
]
}
- ]
-}
\ No newline at end of file
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "nexa-backtest-tAL5uWh0-py3.14",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.14.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}